一种基于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领域的应用会越来越广泛。
动态 链接 技术 软件 DSP TI TMS320 基于 相关文章:
- 实时系统中混合任务集的动态电压调节算法(06-18)
- 嵌入式LINUX系统的静/动态集成调试模式 (07-03)
- linux静态库和动态库分析(02-27)
- 基于DSP的物体重量实时动态监测的研究 (03-22)
- 基于GCC的嵌入式程序插装技术(02-18)
- 动态内存管理在面向嵌入式实时系统中的研究(06-28)