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.

28035Bootloader API库定位



我现在遇到这样的一个问题,我一个项目中需要把项目应用程序与Bootloader程序合并为一个out文档,这样做的目的是在生产过程中只需要烧录一个out文档就可以把bootloader和应用的APP同时烧录到28035。

我现在已经实现自己编写的代码可以放到指定的flash section,但是由于调用了标准的lib文件中的函数,我想问一下,我如何把这个标准函数定义到指定的Flash Section。

  • 在CMD中,将此库定位到Flash的ABCDEFG中的任何段中即可。

  • 楼主可以使用下面的方法:

    如果只是制定到某个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