DSP6678,开发环境CCS5.5。
TI工程师您好,
请问下,我有个.asm文件的汇编代码,想和.c,.h文件一起,封装成一个lib库。但是新的工程中,调用库文件编译后,发现.map文件中无汇编代码中定义的段,请问该怎么处理。如何正确的生成呢lib、ae66、或者le66等文件呢?
期待您的答复,谢谢!
Nancy Wang:
map文件通常是根据cmd文件生成的。您说的在汇编代码中定义的段是否在cmd中分配到指定的内存?
user6177772:
回复 Nancy Wang:
您好,感谢您的回复。
有指定的内存的,分配到msmsram中的。
在生成lib文件的时候,我把cmd文件以及asm文件和c文件.h文件放在了一起。cmd文件指定了asm中特定段的位置,编译完成生成lib文件后,将该库文件加入另一个工程。编译后无报错,但是map文件中无asm对应的段。是我的操作有问题吗还是?
未封装成lib库的源工程map中有生成对应段。
期待您的回复,谢谢!
user6177772:
回复 Nancy Wang:
您好,已经在cmd中分配了汇编中的段,请问应该怎么操作呢?
Nancy Wang:
回复 user6177772:
不能在新的工程中重新分配内存吗?
user6177772:
回复 Nancy Wang:
谢谢您的回复!
我尝试了只在static lib工程中分配内存,只在新的工程中分配内存,两工程均分配了,这三种方法,在map文件中均无对应的段分配。请问这个怎么解决呢?
期待您的答复,谢谢!
user6177772:
回复 user6177772:
另外,请问这个库文件和SYSBIOS内核是否有关?
Nancy Wang:
回复 user6177772:
1、请将asm文件和cmd文件中相关内容贴出来看一下。
2、没有关系,只是将工程生成静态库
user6177772:
回复 Nancy Wang:
您好,感谢您的回复。
asm文件就是实现将flash程序搬移到LL2和MSMCRAM,定义了一个.boot_sect段。
.title "flash boot"
.option D,T
.length 102
.width 140
.ref _c_int00
COPYTABLE .equ 0x70000400
.sect ".boot_sect"
.global _boot
_boot:
后面为
"搬移的汇编"
cmd文件仅仅定义了
SECTIONS
{
.boot_sect:load >MSMCRAM
}
这个asm和cmd文件已经在未封装的工程中成功使用。可以实现搬移启动的功能。
期待您的解答。谢谢!
Nancy Wang:
回复 user6177772:
试试看选出你需要某些文件并将它们编译成lib,将.asm文件直接添加到新的工程里面,再分配内存。只是不清楚这样是否符合你的需求。
software-dl.ti.com/…/ccs_project-management.html
user6177772:
回复 Nancy Wang:
谢谢您的回复。
直接添加进新的工程的话,可以在map文件中找到相关段的分配。但是我这边需要把这个asm封装下,请问CCS能否封装汇编代码呢?是否有相关手册和操作方法。
期待您的回复,谢谢!