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.

bootloader例程,不知道如何设置FLASH的地址

我现在在尝试使用官网上下载的bootloader例程,不知道如何设置FLASH的地址,请指教,谢谢。

Boot_uart

MEMORY

{

    VECTORS    (X)   : origin=0x00000000 length=0x00000020

    FLASH_API  (RX)  : origin=0x00000020 length=0x000014E0

    FLASH0     (RX)  : origin=0x00001500 length=0x002FEB00   //LS31x Flash size is 0x300000

    SRAM       (RW)  : origin=0x08002000 length=0x0002D000

    STACK      (RW)  : origin=0x08000000 length=0x00002000

}

APP

MEMORY

{

    VECTORS (X)  : origin=0x00000000 length=0x00000020

    FLASH0  (RX) : origin=0x00000020 length=0x0017FFE0

    FLASH1  (RX) : origin=0x00180000 length=0x00180000

    STACKS  (RW) : origin=0x08000000 length=0x00001700

    RAM     (RW) : origin=0x08001700 length=0x0003e900

 

/* USER CODE BEGIN (2) */

/* USER CODE END */

}

1.按照Boot_uart的设置,APPVECTORS+FLASH0+FLASH1是否应该都在FLASH_API的范围之内? APPVECTORS+FLASH0+FLASH1 length总和是否应该等于Boot_uartFLASH_API的长度?那么Boot_uartFLASH_API长度只有14E0是不是太少了?应该如何调整?

2. Boot_uartAPPSRAMSTACKS是否是共用的?如何修改?

  • /*----------------------------------------------------------------------------*/
    /* TMS570LS212xFlashLnk.cmd                                                 */
    /*                                                                            */
    /* (c) Texas Instruments 2011, All rights reserved.                           */
    /*                                                                            */
    
    /* USER CODE BEGIN (0) */
    /* USER CODE END */
    
    
    /*----------------------------------------------------------------------------*/
    /* Linker Settings                                                            */
    --retain="*(.intvecs)"
    
    /*----------------------------------------------------------------------------*/
    /* Memory Map                                                                 */
    MEMORY{
        VECTORS (X)  : origin=0x00000000 length=0x00000020
        FLASH0  (RX) : origin=0x00000020 length=0x0017FFE0
        FLASH1  (RX) : origin=0x00180000 length=0x00080000
        STACKS  (RW) : origin=0x08000000 length=0x00001300
        RAM     (RW) : origin=0x08001300 length=0x0002ED00
    }
    
    /*----------------------------------------------------------------------------*/
    /* Section Configuration                                                      */
    SECTIONS{
        .intvecs : {} > VECTORS
        .text    : {} > FLASH0 | FLASH1
        .const   : {} > FLASH0 | FLASH1
        .cinit   : {} > FLASH0 | FLASH1
        .pinit   : {} > FLASH0 | FLASH1
        .bss     : {} > RAM
        .data    : {} > RAM
    }
    /*----------------------------------------------------------------------------*/
    

    C:\ti\ccsv6\ccs_base\arm\include

    在这个文件夹下有的,我看了一下都是上面的那种。没看到

    APP
    MEMORY

    你上面的脚本在哪儿找的。

  • 1. bootloader和app是两个完全独立的工程文件,分别对应一个link.cmd文件;

    2.flash API是flash 驱动库的存储地址空间。flash0是bootloader程序存储空间;

    3.app的vectors的起始地址应该在bootloader的flash0+length之后。