TI中文支持网
TI专业的中文技术问题搜集分享网站

关于dsp和arm使用内存分布的问题

hi 大家好

    我想使用tidvsdk0403自带的cs.64P的dsp可执行文件,但是没有成功。

    我板子dsp内存使用空间为 0x8440 0000 – 0x8800 0000 这段60M的空间linux没有管理。

    但是我看了cs.64P,DSP的coff文件内容如下:

Object File Information

File Name: /home/dm37xx/my_project/rootfs/opt/dvsdk/omap3530/cs.x64P
Format: TI-COFF Version 2
File Type: executable file
Time Stamp: Sun Jul 25 19:12:49 2010
Machine: TI C6x
Machine Endian: little endian
Entry Point: 0x87ecf0a0
Vendor: Texas Instruments, Inc.
Producer: Linker
Linker Version: 6.1.12
Number of Sections: 784
File Length: 7038969
Symbol Table File Offset: 0x005a7534
String Table File Offset: 0x00662c08
TI-COFF f_flags: 0x00001163
TI-COFF f_flag: F_RELFLG (relocation info stripped)
TI-COFF f_flag: F_SYMMERGE (debug type information merged)
CPU Generation: C6400+
Control Data Endian: little endian
Start of .text Section: 0x87c055c0
Start of .data Section: 0x87f0de80
Size of .text Section: 790944
Size of .data Section: 132
Size of .bss Section: 1406

    我简单画了一张示意图,如果dsp的程序cs.64P文件大小超过了2M(文件大小为6,7M)。这样一来dsplink启动着个文件是不是把linux的bank1的空间(0x8800 0000)覆盖掉了。会有这种情况吗?

 谢谢

lu edward:

这个coff文件是广州ema自己做好的,可以运行。

Chris Meng:

回复 lu edward:

Edward,

entry point是程序的入口地址,但程序不一定就是从这个才地址开始。建议你看看dsp的map文件,了解DSP的代码具体是如何分布的。

lu edward:

回复 Chris Meng:

谢谢 Meng,我想问下,dsplink去load程序的时候 是从高地址往下,还是低地址往上?

map文件我大致看了一下(没有细看,汇编也看不懂),文件大小应该是固定的,那么一定是有这么大的一段空间去装这么一段程序,如果load时候是动态安排空间。那么有什么规则吗?

谢谢

lu edward:

回复 Chris Meng:

看了PROC_Load我估计这个地方有问题,这个空间踩到cmem和dsp的其他空间了。

估计是algheap预留sdram空间引起的。

这个地址 加上32M超过了cmem。

lu edward:

回复 Chris Meng:

非常感谢

lu edward:

回复 Chris Meng:

我两张截图找不到了。

赞(0)
未经允许不得转载:TI中文支持网 » 关于dsp和arm使用内存分布的问题
分享到: 更多 (0)