主题中讨论的其他器件: MSPBSL
您好!
你好。 我有一位客户正在使用 MSP430F5438A。 请查看下面他的查询以供您参考。 非常感谢。
我能够从以下位置下载 BSL 源代码: www.ti.com/.../MSPBSL_CUSTOMBSL430 zip 文件随附 MSP430F5438A 的代码、但它用于 UART。 该 zip 文件还附带 MSP430F5222x_I2C 的代码、但用于另一个微控制器。 我假设 TI 不会为每个微控制器和外设组合提供项目。
因此、我假设我需要使用 I2C 项目并使其适用于 MSP430F5438A。 我将继续查看文档。 对于如何将项目转换为我的芯片组、您是否可以提供任何建议?
跟踪上次查询的当前状态。 我基于522x I2C 项目创建了一个 CCS 项目。 在项目属性中、我将芯片更改为 MSP430F5438A。 此外、属性->调试-> MSP430闪存设置->下载选项下的设置:我选中了"允许对 BSL 存储器的读取/写入/擦除访问"。 后续步骤必须与文件有关。 我在为 UART MSP430F5438A 下载的 zip 文件中使用了示例项目中 BSL UART 项目的链接器文件。 最后要做的是更改 BSL_Device_File.h、以便为我们的项目使用正确的端口/引脚。 这需要将一些预处理器指令(#defines)从 P4更改为 P3、并将中断寄存器 UCB0更改为 UCB1。 我能够编译代码并将其单步执行到函数 pi_receivePacket()中,它在其中等待 UCZIV 通过 I2C 接收字节。 为了验证代码是否正确、我们正在编写 I2C 主设备代码以将映像发送到 BSL。
问题、BSL 被设置为从器件-我的经理问了一个问题、它是否应该是主器件。 原因是我们的项目使用 MSP430F5438A 作为主器件、但当固件更新可用时(通过 I2C 进行外部通信)、通过关闭中断并跳转到0x1000 (文档中的2行代码_ disable_interrupts ()来调用 SW BSL; 跳转至0x1000)。 此时、我们的 MSP430F5438A 成为从器件。 我不认为这是个问题、但我想得到一个可靠的答案、让管理层回答这个问题、为什么这不是个问题。
一个重要问题- MSP430闪存器件引导加载程序(BSL) slau319ae.pdf 文档提供了有关引导加载程序协议- F5xx 和 F6xx 系列的部分。 BSL 数据包分层结构与包装器格式 Header、Length (NL)、Length (NH)、BSL Core Command、CKL 一起提供 和 CKH。 遗憾的是、我无法找到在 I2C 主设备和 BSL 从设备之间提供 BSL 命令的任何源代码示例。 这将对此处需要与 I2C BSL 连接并提供固件更新的开发人员有所帮助。
此致、
Ray Vincent