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.

[参考译文] MSPM0G1507:基于闪存的 UART 插件主 SWP 设置

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1529249/mspm0g1507-flash-based-uart-plugin-main-swp-setting

部件号:MSPM0G1507
Thread 中讨论的其他器件:UNIFLASH

工具/软件:

Hallo、

我`m 将 BSL 与基于闪存的 UART 插件配合使用、通过 RS485 物理接口使用 BSL。  

我`ve 将闪存插件的开头放置在闪存的末尾-> 0x0001E000、以便使用最后八个扇区。 为什么是八个?   这是因为 FLASHSWP1
只能设置 8 个带有一位的扇区。 MSP0G1507 具有 128KB 的闪存、因此最后一个扇区从 0x0001E000 开始、到 0x0001FFFF 结束。

为了保护最后一个扇区、我必须设置正确的位、根据我的计算位 15 -> 1111 1111 1111 1111 1111 0111 1111 1111 1111 -> 0xFFFF7FFF

我`ve 设置其他位和换行符、并将文件上传到控制器。 在´m 发送批量擦除命令之前、闪存插件会正常工作(可以来回发送命令)。  

我´ve 了示例代码中的写保护、并且有效、但示例中使用的扇区位于较低区域(又名 FLASHSWP0)  

我`ven´t 设置位低于或高于位 15、这也不起作用。

那么必须设置哪个位? 也许我误解了这些文档...

谢谢!

此致

Steffen

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

    尊敬的 Steffen:

    为了保护最后一个扇区、我必须设置正确的位、该位应该由我的计算位 15 -> 1111 1111 1111 1111 1111 1111 1111 1111 1111 -> 0xFFFF7FFF

    看起来很好。

    您能否检查 41C00048h 中存储器地址的显示情况? 可能您的 NONMAIN 未更新。

    另一个问题是、您是否重置了器件? NONMAIN 配置应至少重置一次器件。

    B.R.

    Sal

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

    尊敬的 Sal:

    如果写入 NONMAINn`t、则闪存插件也n`t 起作用。 n`t 这不可能是问题的原因。

    我的编程工作流程:

    1.Uniflash 9.1.0 ->恢复出厂设置自动

    2.设备电源切换和 uniflash 重新启动

    3.刷写闪存插件并选中 Uniflash ->擦除 MAIN 和 NONMAIN 存储器选项  

    4. 设备电源切换  

    5. LED 指示灯亮起

    6.通过 uniflash 发送批量擦除自动命令  

    7、LED 指示灯熄灭->批量擦除我的闪存插件

    该代码使用了闪存插件 BSL 示例的原始地址。 我只更改了地址。 n`t 我认为内存保护工作正常或我的设置有误。

    我´ve 在第 5 点后将存储器内容与 hexfile 进行比较->它们是相同的!

    我`ve 附上我的项目。

    此致

    Steffen

    e2e.ti.com/.../6354.MSPM0_2D00_BL.zip

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

    好的、我´ve 找到问题:

    -通过 BSL 的批量擦除命令不会触摸  FLASHSWP0/1 定义的扇区

    -无论 FLASHSWP0/1 的设置如何、通过 Uniflash 执行的批量擦除命令都会擦除整个 NONMAIN

    这是一种意图功能吗? 我觉得这很有问题。

     

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

    尊敬的 Steffen:

     TRM 中提到了这一点:

    UNIFLASH 批量擦除是 DSSM 命令、无论您如何设置 NONMAIN 静态保护、该命令都将重新启动闪存。

    B.R.

    Sal

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

    谢谢!