下面是我对帮助文件的理解,有点乱,刚接触,给自己做记录、总结,内有不正确的地方请高手指点一下啊!!
注意:memory、sections 和segments 、manage和objects关系
首先明确“可视连接器”的优先级比BIOS要高,同时存在一个工程里时,前者的各项配置起作用。
general选项卡
Reuse Startup Code Space:是否重新使用启动代码(.sysinit段)所占用的空间
Argument Buffer Size:实际就是args段大小,这个段主要保存main函数参数argc/argv/envp,初始化时由启动文件负责向main传递。
Stack Size (MAUs):应用程序中所有函数可用堆,栈的上限,(注意配置环境的左上角,那里显示的是应用此时需要堆栈空间的大致数目)。
No Dynamic Memory Heaps:勾选此项之后,便不能从系统堆中动态的分配空间和涉及动态存储空间分配的各种操作如动态建立对象等。
Segment For DSP/BIOS Objects:存储动态建立的对象,下拉选项中可以选择在MEMORY中的那一部分,MEM_NULL代表没有空间存放对象,所以禁止了动态建立对象。
Segment For malloc() / free():和上一个基本相同,但只对两个函数起作用。
BIOS data 和BIOS code选项卡可以单独制定BIOS所需要各种的数据段及自身代码段在MEMORY的那个部分。
Compiler Sections tab
感觉此部分好像用来产生xxxcfg.cmd文件的,可以全部自己写,也可以用BIOS自动生成的常规段,至于段下载的具体位置由MEM对象地址决定的
Load Address tab
这个功能主要用在当程序必须下载到rom里,而对执行速度要求比较高,需要搬运到芯片内部RAM中运行时,连接器可以为这些段分配两次空间,在两个地方,大小相同,怎样搬运?自动还是需要自己写代码?
文章评论(0条评论)
登录后参与讨论