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.

[参考译文] 编译器/TMS570LS0432:下载 UART 引导加载程序后新映像的链接器命令文件配置。

Guru**** 2457760 points
Other Parts Discussed in Thread: TMS570LS0432

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/642511/compiler-tms570ls0432-linker-command-file-configuration-for-new-image-after-downloading-uart-bootloader

器件型号:TMS570LS0432

工具/软件:TI C/C++编译器

大家好,我已经将 UART 引导加载程序加载到 TMS570ls0432较低的闪存中。 我还附加了内存配置。  

但我对要加载的其他新映像的链接器命令文件感到困惑。  

下面是 bootloader 的 linker.cmd  

存储器

向量(X):origin=0x00000000 length=0x00000200
BOOT_LOAD (RX):origin=0x00000200 length=0x00001000
Flash_API (RX):origin=0x00001200 length=0x00001000
FLASH0 (RX):origin=0x00002200 length=0x00050000
SRAM (RW):origin=0x08002000 length=0x0005c000
栈(RW):origin=0x08000000 length=0x00001FF0

这里是新的应用 项目链接器 cmd 文件  

存储器

向量(X):origin=0x00002000 length=0x00000200
FLASH0 (RX):origin=0x00002200 length=0x0005FFE0
堆栈(RW):origin=0x08000000 length=0x00001500
RAM (RW):origin=0x08001500 length=0x00006B00

但它不起作用。  

我不清楚如何配置新的链接器命令文件。

我是否需要在 新项目中再次添加引导程序(X)? (两个复位矢量必须相同)

当我使用 CCS 加载具有上述配置的新项目以进行测试时,它将擦除引导加载程序。

谢谢。  

Indrajit。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Indrajit、

    应用程序的 linker.cmd 看起来正常。 您希望将应用程序放置在0x2000处的闪存中。 引导加载程序的代码大小是多少? 扇区0 (0x00~0x1FFF)是否足够大、可用于引导加载程序?

    是的、您需要将矢量放置到应用程序的起始地址(设置中为0x2000)。 您还需要修改引导加载程序工程的 sys_intvecs.asm、以便将中断正确地输出到您的应用程序:

    ================================================================================================

    引导加载程序的//sys_intvecs.asm

    .sect ".intvecs"

    .ref _c_int00

    ;中断向量
    b _c_int00;0x00

    b #0x1FF8; ;0x1FF8 =您的应用程序起始地址- 0x8 (0x2000-0x8)
    b #0x1FF8  ;软件中断
    B #0x1FF8  ;中止(预取)
    B #0x1FF8  ;中止(数据)
    保留尝试
    b reservedEntry;0x14
    LDR PC、[PC、#-0x1b0];0x18
    LDR PC、[PC、#-0x1b0];0x1C

    ========================================================================

    当您在 CCS 中将项目加载到闪存中时、CCS 闪存实用程序将首先擦除闪存。 因此、引导加载程序会被 CCS 擦除。