我现在遇到这样的一个问题,我一个项目中需要把项目应用程序与Bootloader程序合并为一个out文档,这样做的目的是在生产过程中只需要烧录一个out文档就可以把bootloader和应用的APP同时烧录到28035。
我现在已经实现自己编写的代码可以放到指定的flash section,但是由于调用了标准的lib文件中的函数,我想问一下,我如何把这个标准函数定义到指定的Flash Section。
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.
楼主可以使用下面的方法:
如果只是制定到某个FLASH Section,若制定到FLASHB:
text1 : LOAD = FLASHB, PAGE = 1
{
-l rts2800_ml.lib <boot.obj> (.text)
}
如果只是制定到某个地址,如0X3F4000:
text1 : LOAD = 0x3F4000, PAGE = 1
{
-l rts2800_ml.lib <boot.obj> (.text)
}
具体PAGE=1还是PAGE=0要看.CMD文件中这个FLASH SECTION是在哪个PAGE里面。
我的处理方式
FLASHI : origin = 0x3F6000, length = 0x001800 /* on-chip FLASA */
Flash28_API:
{
-lFlash2803x_API_V100.lib(.text BootFlash)
-lFlash2803x_API_V100.lib(.econst BootFlash)
} LOAD = FLASHI,
RUN = RAML1,
LOAD_START(_Flash28_API_LoadStart),
LOAD_END(_Flash28_API_LoadEnd),
RUN_START(_Flash28_API_RunStart),
PAGE = 0
BootAPI:
{
-lrts2800_ml.lib(.cinit BootFlash)
-lrts2800_ml.lib(.text BootFlash)
-lExample_Flash2803x_API.obj(.cinit BootFlash)
} > FLASHI PAGE = 0
.cinit : > FLASHA PAGE = 0
.pinit : > FLASHA PAGE = 0
.text : > FLASHA PAGE = 0
codestart : > BEGIN PAGE = 0
ramfuncs : LOAD = FLASHI,
RUN = RAML1,
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
PAGE = 0
csmpasswds : > CSM_PWL_PROG PAGE = 0
csm_rsvd : > CSM_RSVD PAGE = 0
BootFlash : > FLASHI PAGE = 0
BootProcess : > FLASHBOOT PAGE = 0