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.

TMS320f28035, 在MCU的不同扇区做BootLoader和APP程序,如何配置BootLoader可以使MCU上电后先运行 在BootLoader中,APP该如何配置?

Other Parts Discussed in Thread: TMS320F28035

你好,

我用的MCU是TMS320F28035, 在MCU的不同扇区做BootLoader和APP程序,

BootLoader在H扇区,APP在A~G扇区,正在做基于CAN通讯的升级,即上电后运行在BootLoader,如果没有收到上位机刷新程序的指令,就跳转至APP中;如果收到上位机刷新程序的指令,就执行程序刷新;同时在APP正常运行后,当收到上位机刷新程序的指令后,程序应该从APP跳转到BootLoader中进行程序的刷新。

我的问题:

1. 想要MCU上电后运行在bootloader, 如何配置cmd文件和codestart.asm文件?

2. APP程序该如何配置才能跳转到BootLoader?

3. 若刷新过程中,突然断电,重新上电后是否可以从bootloader中正常启动?

  • “我用的MCU是TMS320F28035, 在MCU的不同扇区做BootLoader和APP程序,

    BootLoader在H扇区,APP在A~G扇区,正在做基于CAN通讯的升级,即上电后运行在BootLoader,如果没有收到上位机刷新程序的指令,就跳转至APP中;如果收到上位机刷新程序的指令,就执行程序刷新;同时在APP正常运行后,当收到上位机刷新程序的指令后,程序应该从APP跳转到BootLoader中进行程序的刷新。

    我的问题:

    1. 想要MCU上电后运行在bootloader, 如何配置cmd文件和codestart.asm文件?
    Eric:
    我当时的处理是bootloard和APP是分开的两个工程,然后有各自的cmd和codestart.
    如果要上电的时候跑bootloard, 只要将入口地址定位bootloader的地址,而C2000的入口地址又是在A扇区,所以我倒是建议你将bootloader直接放A扇区。
    BEGIN : origin = 0x3F7FF6, length = 0x000002 /* Part of FLASHA. Used for "boot to Flash" bootloader mode. */

    至于APP的入口地址,它的BEGIN, 你可以定义在B扇区的起始两个地址,然后bootloader如果不用升级,直接跳转到该地址就好。

    2. APP程序该如何配置才能跳转到BootLoader?
    ERIC:
    接受到升级指令,直接地址跳转到bootloader, 如bootloader 的_c_int00。

    3. 若刷新过程中,突然断电,重新上电后是否可以从bootloader中正常启动?”
    Eric:
    这个是可以的,因为bootloader没有被擦出。
    另外你可以参考我的相关升级的帖子:
    e2echina.ti.com/.../121859
  • hello Eric,

    谢谢 你的指点, 看了你的文章 ,收获很大 。

    按照你说的方法,现在bootloader 可以正常 启动 ,与 APP也可以 正常 跳转 。

    现在 还有 一个 问题:

    我 的APP更改 cmd文件后 ,生成的hex文件 中 有的 地址 是 RAM中的地址 :0x809a, 同时接着这个地址有些数据, 那么 烧写时 是不是 可以不考虑这个地址和数据?

    我不明白为什么生成这个地址的数据?