首先在F2812.CMD文件中,可以看到有关于加载FLASH到RAM的内容:
ramfuncs: LOAD = FLASHD,
以及在C文件中调用FLASH 到RAM的函数memcpy,将它放在系统初始化(InitSystem())之后运行。
InitSystem()
memcpy(&RamfuncsRunStart,
Initflash()
关于ramfuncs,则在系统初始化中定义即可。如:sysctrl.c中
file.obj//子目标文件名1
file2.obj
//子目标文件名2
file3.obj
//子目标文件名3
-
o
prog.out
//连接器 *** 作指令,用来指定输出文件
-
m
prog.m
//用来指定MAP文件
MEMORY
{
略
}
SECTIONS
在组织数据段和程序段的时候可以根据需要来分配内存,从而要更改cmd。比如通常DMA访问的内存块,和程序块的内存不要在同一块,这就需要组织好。再如有些数据可能为了块计算而需要
align
8,而有的变量只是
byte,这样也要在cmd中指定ram安排,以便更有效率。最后的mem分配,可以打开编译后的.map文件查看,以决定是否还需进一步优化mem分配。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)