|
|
5#

楼主 |
发表于 2017-6-1 15:56:11
|
只看该作者
今天发现,将dsp的可用内存空间调大后,编译出来的文件更大了,bld:
& `# [9 m* j( d5 ^+ I( J8 b/* Memory Map for ti.platforms.evmOMAPL1382 _. f. A" B, f; G, {
*9 E! a' l: D$ w1 E) Z) F
* C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory. A N+ ]% X, d# h% Z. P/ Q& i
* ------------------------------------------------------------------------
7 o# @, e9 `6 n9 { * C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux. n; y, G, O* E+ F
* C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)! N3 e' u; ^' d: p. u" k1 n: u
* C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)
0 p! f2 s0 Q% _2 F' K9 I, g. W' ~ * C280_0000 - C3FF_FFFF FF_0000 ( 24 MB)DSP_PROG (code, data): N9 t% s. t9 P- ~& N% i7 t
* C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux3 M1 l& l6 L, p7 z% v3 f" Z7 s- n4 A
*/
4 w- |! }- W8 \. X* x编译出来的文件达到26M,感觉elf格式的out文件是直接将dsp可用的全部内存都封进out文件了,有没有办法使得ccs5.5生成文件时,不要使用这种愚蠢的方式呢。记得以前使用IAR的时候,即使程序使用了很大的内存,但是如果代码和常量数据和初始化数据(初始化为0)很小的话,编译出来的程序都是很小的。
* ~1 K ^9 `" t. H' y. m0 ^ 程序里面只有代码和常量数据才是真正的数据,初始化数据一般都是初始化为0的,在程序启动过程的c_init函数可以做数据初始化的功能,原来IAR都是这么干的。至于调试信息等也才几百K到1M,程序代码数据也才不到1M,编译出来应该小于3M才对 |
|