|
今天发现,将dsp的可用内存空间调大后,编译出来的文件更大了,bld:( U0 K- @6 P `# c
/* Memory Map for ti.platforms.evmOMAPL1389 F' _9 }, V8 _, C
*
/ ^% z! E [4 u5 z * C000_0000 - C7FF_FFFF 800_0000 ( 128 MB) External Memory
% [ y0 C @* t, u * ------------------------------------------------------------------------+ c0 d- i f+ t- O1 \' z% E5 s
* C000_0000 - C1FF_FFFF 200_0000 ( 32 MB) Linux1 {, E+ v) u4 d6 \/ u1 M) U+ T
* C200_0000 - C200_FFFF 1_0000 ( 64 KB) SR_0 (ipc)
3 }3 N% `5 Y% f/ I * C201_0000 - C202_FFFF 2_0000 ( 128 KB) SR_1 (data buffers)
: S$ N! `5 S0 L$ z1 f * C280_0000 - C3FF_FFFF FF_0000 ( 24 MB)DSP_PROG (code, data)
_) W2 u3 L$ Q! b* v+ q * C400_0000 - C7FF_FFFF 400_0000 ( 64 MB) Linux
9 |* a2 f- h1 ~( H, r5 P */7 c! A, G. n8 b" C0 r% ~4 }0 T
编译出来的文件达到26M,感觉elf格式的out文件是直接将dsp可用的全部内存都封进out文件了,有没有办法使得ccs5.5生成文件时,不要使用这种愚蠢的方式呢。记得以前使用IAR的时候,即使程序使用了很大的内存,但是如果代码和常量数据和初始化数据(初始化为0)很小的话,编译出来的程序都是很小的。6 u/ Z& @1 L$ ?, c4 D
程序里面只有代码和常量数据才是真正的数据,初始化数据一般都是初始化为0的,在程序启动过程的c_init函数可以做数据初始化的功能,原来IAR都是这么干的。至于调试信息等也才几百K到1M,程序代码数据也才不到1M,编译出来应该小于3M才对 |
|