|
如题,192K的内存现在有点儿捉襟见肘了,想到充分利用CCM内存,所以想把UCOSIII系统内存放到CCM里面.
网上看别人的例子试着在.sct文件里面定义,但试了一遍,只有一下几个系统文件可以包含
sct文件总新增以下代码
CCM_IRAM 0x10000000 0x00010000{
os_cpu_c.o(+RW +ZI)
os_prio.o(+RW +ZI)
os_var.o(+RW +ZI)
os_cfg_app.o(+RW +ZI)
lib_mem.o(+RW +ZI)
}
MAP文件中会有以下变化
Execution Region CCM_IRAM (Base: 0x10000000, Size: 0x00001ec0, Max: 0x00010000, ABSOLUTE)
Base Addr Size Type Attr Idx E Section Name Object
0x10000000 0x00000004 Data RW 13820 .data lib_mem.o
0x10000004 0x00000004 Data RW 14624 .data os_prio.o
0x10000008 0x000000c4 Data RW 15176 .data os_var.o
0x100000cc 0x00000004 Data RW 15203 .data os_cpu_c.o
0x100000d0 0x00000c14 Zero RW 13819 .bss lib_mem.o
0x10000ce4 0x00000d80 Zero RW 14127 .bss os_cfg_app.o
0x10001a64 0x0000045c Zero RW 15175 .bss os_var.o
确实是定义到CCM里面了,但空间明显很少啊,才7K左右,应该还有大把的系统内存没定义过来,
随便又加了一个os_cfg_app.o文件,会有一下报警,其它的os打头的文件也都是提示以下报警:
.\Output\FTU_F429.sct(20): warning: L6314W: No section matches pattern os_cfg_app.o(RW).
.\Output\FTU_F429.sct(20): warning: L6314W: No section matches pattern os_cfg_app.o(ZI).
KEIL官网的解答如下
It seems that one linker directive specifies a module which either does not exist or it does not contain the RO/RW/ZI data which you are trying to locate into a specific memory area.
文件肯定是存在的,但说里面没有RW.ZI变量也不对啊,MAP文件中提示是有文件的啊
不知硬汉哥是否研究过这方面,在此先谢过. |
|