我用的LPC2365+MDK3.20,片内flash256K,想把5~7扇区(0x5000~0x10000)作为非易失存储空间。 用MDK自己生成的sct: LR_IROM1 0x00000000 0x00020000 ; load region size_region { ER_IROM1 0x00000000 0x00020000 { *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) }
RW_IRAM1 0x40000000 0x00008000 ; RW data { .ANY (+RW +ZI) } } 程序能跑,也不会飞的。 可是改做如下,很快就飞 LR_IROM1 0x00000000 0x00020000 ; load region size_region { ER_IROM1 0x00000000 0x00005000 { *.o (RESET, +First) *(InRoot$$Sections) }
ER_IROM2 0x00010000 0x00018000 { .ANY (+RO) }
RW_IRAM1 0x40000000 0x00008000 ; RW data { .ANY (+RW +ZI) } } 这么改后,编译时未提示空间不足,能完成编译并烧写的,带硬件仿真时也能进入main()。Option fot target里的IROM1 设置成Start 0x0,Size 0x20000,并勾上前面的勾,与IROM1,IROM2前都勾上,IROM1设置成Start 0x0,Size 0x5000, IROM1设置成Start 0x10000,Size 0x18000。这2种设置都试了之后,分别编译并烧写,仿真时都是快速飞掉。为了实现我的想法,这个sct文件该怎么写? |