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.

[参考译文] CCS/MSP432E401Y:将应用程序地址从@0000更改为@4000 - BSL Scripter

Guru**** 2563960 points
Other Parts Discussed in Thread: MSP432E401Y

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/878524/ccs-msp432e401y-change-application-address-from-0000-to-4000---bsl-scripter

器件型号:MSP432E401Y

工具/软件:Code Composer Studio

您好!

如何将应用程序代码更改为从 addres @4000开始?

因为在 BLS Scripter 上,我对地址有问题:  

[ERROR_MESSAGE]地址无效!

如果手动将默认地址@0000更改为@4000、BSL Scripter 可以刷写 MSP432E401。

以下是我的应用程序.txt 输出格式设置:

以下是我的应用程序.txt 代码:

下面是 BSL Scripter 的示例 txt 应用程序:

另一个问题是、我是否必须首先刷写引导加载程序、而不是应用程序?

如果应用程序的起始地址为@4000,它是否会影响地址为@0000的 Boatloader?

此致、

Michael

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

    您好!

    我们将仔细研究它、尽快返回给您。 请多多包涵。

    谢谢、

    PM

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

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

    在"MSP432e401y.cmd"文件中、我可以将 APP_BASE 地址更改为0x00004000:

    (小部分 /*
    禁止警告和错误: //
    //*#10199-D CRC table 运算符(crc_table_for_<>)被忽略:
    CRC table 运算符不能与空输出段相关联 */
    -diag_suppress=10199
    
    --retain=interruptVectors
    
    #define APP_base 0x00004000
    
    内存
    {
    闪存(RX):origin = APP_BASE,length = 0x000FC000
    SRAM (rwx):origin = 0x20000000,length = 0x00040000
    }//
    
    以下命令行选项是作为 CCS 项目的一部分设置的。 */
    /*如果您使用命令行进行构建,或者出于某种原因想要在
    此处定义*/*,则可以根据需要取消注释并修改这些行。 */
    /*如果您使用 CCS 进行编译、最好
    在 CCS 工程中进行任何此类*///*修改并将此文件单独保留。 */
    * //
    /*--heap_size=0 */
    *--stack_size=256 /*
    --library=rtsv7M4_T_le_eabi.lib
    
    内存中的*//*段分配*/
    
    段
    {
    .intvecs:> app_base
    .text:> FLASH
    .const:> FLASH
    .cinit:>闪存
    .pinit:> FLASH
    init_array:> FLASH
    
    .vtable:>0x20000000
    .data :> SRAM
    .bss:> SRAM
    .sysmem:> SRAM
    .stack:> SRAM
    }
    
    __stack_top =__stack + 512; 

    这会更改闪存上的主地址,但我的调试器会在 main()中放置一个断点。

    我无法启动程序代码、在反汇编中它会保留在这里:

    调试器详细输出如下:

    Cortex_M4_0:GEL 输出:
    内存映射初始化完成
    Cortex_M4_0:闪存编程器:启用详细输出
    Cortex_M4_0:闪存编程器:DLL 3.3.0.1版
    Cortex_M4_0:闪存编程器:发现非法的复位矢量地址
    Cortex_M4_0:写入 Flash @地址0x00004000、长度0x00001068
    Cortex_M4_0:闪存编程器:器件初始化完成
    Cortex_M4_0:闪存编程器:对闪存进行编程
    Cortex_M4_0:闪存编程器:写入速度34.5 KB/秒
    Cortex_M4_0:闪存编程器:退出闪存编程

    有什么想法吗? 我是否必须更改其他任何内容?

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

    好的、我现在开始工作了。

    在项目属性上、我按如下方式设置调试闪存设置: