您的位置 首页 软件

DSP编程技巧-揭开编译器奥秘面纱之链接器的根本选项

在我们对DSP编程的时候,相信没有人会把所有的代码都放在同一个源文件里面:光各种寄存器的初始化代码就有几百上千行了,再加上我们自己书写的代码,想想假如一个.c文件里面有一万行,该如何管理、调试呢?所以

  在咱们对DSP编程的时分,信任没有人会把一切的代码都放在同一个源文件里边:光各种寄存器的初始化代码就有几百上千行了,再加上咱们自己书写的代码,想想假设一个.c文件里边有一万行,该怎么办理、调试呢?所以要依照功用、寄存器分类等进行区分,这样一个工程就包含了许多的头文件、源程序等等,每个源程序通过编译、汇编之后都会发生独自的方针文件。由于关于程序的任何一点修正,都需求编译器进行编译,假如每次都把一切的程序进行从头编译的话,是对时间和资源的极大糟蹋:特别是那些根据Eclipse的编译环境,由于根据Java这样的技能,自身就很慢,假如一次编译的文件许多,编译进程是十分苦楚的等候,乃至常常置疑编译环境是不是现已挂掉了?所以为了进步功率,咱们能够运用增量编译技能只对有修正的文件进行从头编译和汇编,而没有修正的则不需求更新方针文件。可是由于编译器和汇编器对每个源文件是独自汇编的,它们并不知道某个模块中的数据和程序相关于另一个模块而言,具体位置在哪里,所以接下来咱们就需求运用链接器把一切的方针文件给“拼接”起来,终究生成一个能够独立运转的文件,即可履行文件。它的功用包含三个首要的过程:

  (1)将代码和数据放入“设想”中的内存:链接器根据.cmd文件中对存储器地址的区分,依照不同的段把代码和数据别离装入对应的地址中;当然这完全是在电脑上完结的,不需求实践的DSP和RAM“出头”。

  (2)为数据和指令分配内存地址:最简略的比如,为函数中止的进口拟定一个地址,这样在进中止的时分,程序指针直接跳转到中止进口的地址就行了。

  (3)修正内部和外部的引证:链接器运用每个方针文件中的重定位信息和符号表,来解析某个方针文件中未界说的符号,由于它有可能是在其他方针文件中界说的。

  为了更好地舆解链接器的行为,咱们就需求了解一下它的装备选项。链接器的装备选项也许多,可是和程序优化的那些选项比较,其意义要更简单了解一些。表1是链接器的最基本选项,界说了链接器正常作业所有必要的参数。

  链接器的文件查找选项则是链接器用来寻觅文件时运用的,例如查找某个和FPU运转有关的浮点库函数,如表2所示。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/ruanjian/226844.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部