一种基于TI TMS320 DSP的软件动态链接技术
文中通过分析指令格式的低位比特位,可以判断出指令属于上述指令中的哪一类。以指令0x0200007E为例,将指令表示为二进制:(0000 0010 0000 0000 0000 0000 0111 1110)b,指令的2~3位为11,在图4中查找2~3位为11的指令,可以发现该指令是一条STW存储指令,指令的ucst15比特域表示了其需要重定位的地址。
2.2.3 模块动态链接的实现
动态链接器的功能主要包括模块的动态链接和动态卸载,模块动态链接的主要流程如图5所示。动态链接器在收到加载模块请求时,首先检查模块文件的完整性,并根据加载模块的依赖信息在系统符号表中查找对应的函数和变量。当模块通过完整性和依赖性检查后,动态链接器首先根据模块大小声明,在系统的存储空间中分配空间,将模块文件加载到系统存储空间。接着动态链接器根据COFF文件信息,搜索COFF文件代码段中的重定位语句,并根据指令格式确定指令中地址域信息,最后将综合模块被加载的地址和指令索引的符号的地址,计算地址信息,并将此信息填入可重定位指令的地址域,完成指令的重定位。在代码段重定位完成后,动态链接器将模块名称、模块对外提供的函数名称、模块入口地址等信息注册到系统符号表中,并调用模块加载函数,完成模块对系统资源的申请。最后,如果该模块所提供的函数或者变量替换了系统已有的函数或者变量,动态链接器还需要将所有引用该函数或变量的其他模块进行重定位,以反映系统状态的更新。
2.2.4 模块动态卸载的实现
模块动态卸载是加载过程的逆过程,动态链接器在收到卸载模块请求时,首先在系统中搜索是否有模块引用了将要被卸载的模块,若存在则警告用户,并等待用户确实是否强制卸载。若是,动态链接器将卸载模块对外提供的函数和变量从系统符号表中删除,并收回卸载模块占用的系统空间。完整的模块动态卸载流程如图6所示。
3 结论
文中设计的DSP动态链接器为传统的DSP系统带来新的应用功能,已在某多功能通信系统中获得了成功的应用。动态链接技术作为DSP系统的重配置技术之一,其应用要比传统的DSP全系统重构技术或叠加技术更为灵活和高效。同时,本文提出的动态链接技术相对于文献,文献提出的函数查找表的实现方式更加富有效率。尽管目前动态链接技术在DSP领域的应用很少,但随着DSP应用向多功能发展,相信动态链接技术在DSP领域的应用会越来越广泛。
动态链接 TI TMS320 DSP COFF文件 重定位 相关文章:
- 控制linux动态链接库导出函数(11-22)
- Linux标准趋向统一(11-12)
- 巴西的新电视机顶盒采用意法半导体(ST)的最先进的解码器技术(03-24)
- 基于TMS320C62X DSP的混合编程研究(07-12)
- 视频跟踪算法在Davinci SOC上的实现与优化(10-06)
- 展望未来 多核DSP技术不仅仅是小把戏(04-03)