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.

客户咨询MSP432P401R中,Bootloader存放的地址范围,主程序存放的起始地址如何设置,及中断向量如何进行配置。

Other Parts Discussed in Thread: MSP-FET

Dear all,

我们有客户使用MSP432P401R,关于bootloader有问题咨询。

希望确认一下,MSP432P401R是否可以像ST的MCU那样,在flash中存储booloader及主程序,如果可以,希望确认一下booloader占用的地址范围是哪些,主程序的入口地址如何指定,另外中断向量表是否需要认为设置中断入口和返回的偏移量。

目前客户使用的软件开发环境是IAR。

我从网上了解到一些ST的MCU的相关设置,请参考:blog.csdn.net/.../82774808

对于帖子中提到的配置,MSP432P401R在IAR环境中是否有类似的配置,希望能获取指导。

Best Regards.

Kevin Chen

  • 您可以看一下

    以及

    http://www.ti.com/lit/ug/slau356h/slau356h.pdf

    1 MSP32的BSL代码的起始地址可以通过Flash Mailbox中的BSL Start Address寄存器修改,Flash中的代码内容也是用户可以自定义修改的

    2 其BSL外设默认端口引脚可以通过TLV进行配置

    同时,MSP432P401R支持用户自定义配置,如BSL功能使能,I2C slave address及BSL invocation引脚及状态配置等。这些自定义配置通过Boot override flash mailbox实现。 

    MSP432P401R BSL有3中进入方式:

    a 空片自动进入BSL:指复位向量为全F时(MSP430FR235x/215x为0xFFFF,MSP432P401R为0xFFFFFFFF),BSL会被Bootcode自动唤醒。

    b 软件调用

    其BSL程序的入口地址默认为0x00202000,同时其入口函数支持参数配置。需要注意的是,MSP432调用BSL程序前,也需要禁用总中断。例程代码如下:

    #define BSL_PARAM 0xFC48FFFF // I2C slave address = 0x48, Interface selection = Auto

    #define BSL_API_TABLE_ADDR 0x00202000 // Address of BSL API table

    #define BSL_ENTRY_FUNCTION (*((uint32_t *)BSL_API_TABLE_ADDR))

    MAP_Interrupt_disableMaster();

    NVIC->ICER[0] = 0xFFFF;

    NVIC->ICPR[0] = 0xFFFF;

    NVIC->ICER[1] = 0xFFFF;

    NVIC->ICPR[1] = 0xFFFF;

    ((void (*)())BSL_ENTRY_FUNCTION)((uint32_t)BSL_PARAM); // Call the BSL with given BSL parameters

    c 硬件时序进入

    可以通过启动阶段用户指定的IO的电平状态来唤醒BSL。需要用户提前对mailbox进行配置。以P1.0脚高电平唤醒为例,其时序图如图

  • Hi Susan,
    感谢您的解答。我们有个很基本的问题需要确认,在使用BSL更新程序是,板卡和PC之间一定要用特定的硬件连接吗?比如MSP430-BSL PROGRAMMER ("BSL Rocket"),或者MSP-FET,这两个调试工具是必须的吗?

    因为看到有软件模拟时序的方法,因为不确定只用软件是否可行,另外,客户用script脚本也没成功。因此咨询您一下,使用BSL时是否还是要连接硬件调试器。

    如果不用硬件调试器,加入我用UART接口模拟BSL的通信时序,PC端通过USB转串口,客户板卡通过串口走BSL定义,您看是否只需要PC模拟出通信时序,有没有特定的软件可以使用呢?

    期待您的解答。

    Best Regards.

    Kevin Chen
  • 不需要特定仿真器的。只要符合bsl时序要求就可以。
    很多用串口转ttl工具做msp430的bsl烧写的。
  • 谢谢楼上的回答

    即使是软件可以模拟时序,也是需要硬件来支持的。您可以看一下http://www.ti.com/lit/ug/slau622h/slau622h.pdf的说明

    The MSP432 BSL is implemented on UART, I2C, and SPI serial interfaces.

  • Hi Susan,

    感谢您的解答,不知道方便留个电话吗?我们对BSL这种程序升级方式的使用还存在很多的疑问,不知道您是否有时间跟我们客户开个电话会议,帮忙解答一下BSL的问题。

    我们目前了解到的信息是BSL方式升级程序,需要在MCU和PC之间增加一个MSPFET或MSP430-BSL PROGRAMMER ("BSL Rocket")硬件,也有说法是不用硬件。

    关于BSL,是否必须要用TI官网提供的这两个MSPFET或MSP430-BSL PROGRAMMER ("BSL Rocket"),我如果不用这两个,单纯使用一个USB转UART(3.3V)的转换模块,USB接PC,UART按BSL要求连MCU,这样可以实现BSL更新程序吗?

    另外,BSL更新程序,是否还要对MCU的RESET或其他引脚进行控制?网上包括官网都仅仅提到如何进入BSL,如何判断是否成功进入BSL没有说明,进入BSL之后如何进行程序升级也没有说明。

    客户以前没有使用过MSP系列MCU,这些基础问题正是存在疑惑的地方,并且文档的一些介绍都不清晰,很难摸清BSL具体要怎么用,我们也是希望能给客户提供更加具体的能解决问题的指导和帮助。

    期待您的答复。

    Best Regards.
    Kevin Chen
  • 关于bsl,ti有提供详细的讲解、例程和工具

    http://www.ti.com.cn/tool/cn/mspbsl