This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

如何将大于32K的代码烧录进28335? FLASHA已满



用的CCS4,芯片是28335.写的程序比较多,编译的时候出现两个错误:

1,"*****.out”not build.   ****是工程名

2,placement  fails for object ".cinit ",unusize 0x4c2(page 0)   Available ranges FLASHA size:0x7f80,sed 0x2c6  max hole 0x2c6.

看map文件 FLASHA已经将近满了,而剩下的FLASHC, FLASHD等6个FLASH空间几乎没有写入东西( FLASHD只用了很少,而其他几个没写入东西。而且没有出现FLASHB)。

.cinit 段显示 failed to allocate

如果删掉一些程序就不会出现这种情况。

这是为什么呢,难道只能用 FLASHA这32K的空间写代码?不会吧。

除了精简程序之外,请问怎么写入大于32K的代码呢?

  • 可以在CMD中修改把相邻的FLASH空间合并,比如,建议到网上搜一下,有很多关于CMD文件使用的说明。

    比如:

      FLASHB      : origin = 0x330000, length = 0x008000     /* on-chip FLASH */

        FLASHA      : origin = 0x338000, length = 0x007F80     /* on-chip FLASH */

    改成

      FLASHA      : origin = 0x330000, length = 0x00FF80     /* on-chip FLASH */