|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2011-9-2 14:50:48
|
显示全部楼层
回复【16楼】aozima
回复【13楼】flor 独臂老人
-----------------------------------------------------------------------
默认elf32pic32mx.x中会include procdefs.ld
每个型号都有一个私有的procdefs.ld,里面的size等都不同.
而elf32pic32mx.x是公用的.里面的内容一般不建议随意修改,除非确认修改是无误的.
工程文件所在目录处在搜索目录中靠前,所以当工程目录中有procdefs.ld时,会优先使用工程目录中的.不然会根据型号选择对应的.
而且procdefs.ld比较简单,且size是在这里设置的.比较合适.
所以建议使用自定义 procdefs.ld 来实现添加section.
-----------------------------------------------------------------------
谢谢,很详细。
但是我在ld文件中增加
__fsymtab_start = .;
....
....
__vsymtab_end = .;
把finsh中所有C文件加入到工程中,打开finsh,编译提示 finsh_var.c:100: undefined reference to 'strdup'
这是不是说这个函数被优化掉了?
还有连个提示:ld.exe: small-data section exceeds 64KB; lower small-data size limit (see option -G)
和
relocation truncated to fit: R_MIPS_GPREL16 against '__fsymtab_start'等
这也不明白。 |
|