我想在0xFFE0处的中断向量下面设置一个跳转表。 引导程序将指向跳转表,因此所有固件版本的引导程序都相同,希望我不会遇到BSL密码问题。 但是,有些跳跃毫无疑问将远远超出JMP的范围,我相信目前的PC是+/- 1024。 对于这些人来说,我不知道是否有任何巧妙的手法,可以“长”跳下去。 我曾想过将目的地址写入PC。 这样做是不是最好的办法,还是有更好的办法?
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.
我想在0xFFE0处的中断向量下面设置一个跳转表。 引导程序将指向跳转表,因此所有固件版本的引导程序都相同,希望我不会遇到BSL密码问题。 但是,有些跳跃毫无疑问将远远超出JMP的范围,我相信目前的PC是+/- 1024。 对于这些人来说,我不知道是否有任何巧妙的手法,可以“长”跳下去。 我曾想过将目的地址写入PC。 这样做是不是最好的办法,还是有更好的办法?
[报价用户="Clemens Ladisch"]
但为什么您遇到BSL密码问题? 要重写整个闪存,您不需要密码,您可以禁用“错误时擦除密码”功能,而对于调试,JTAG/SBW将更合适。
非常感谢您的回复。
这是我第一次参加BSL冒险活动,所以我可能不理解,也许你可以帮忙。 基本的问题是,在这个项目中,可能会有 许多固件版本可由不同的作者编写,最终用户将是“平民”,他们将能够跳转这些版本进行试用。 并非所有设备都要更新到最新版本,至少最初不是这样。 因此,密码问题在于了解用户的*从*更改哪个版本,以及需要为每个版本维护密码文件。 当然,如果所有用户都需要购买Launchpad和使用JTAG,那么所有这一切都可以避免,但如果可能,我只想通过在项目板上嵌入价格便宜得多的CP2102和USB插孔来避免这种情况。 然后,他们需要刷新新固件的唯一硬件是USB电缆。
我认为一个解决方案是使0xFFE0处的中断向量表,因此口令 对所有版本都是相同的,方法是 让这些向量指向 一个跳转表,该表将 指向 真正的服务例程。 只有跳转表的内容会在不同版本之间更改。 我很乐意考虑任何更好的解决办法。
但我可能对大规模擦除问题感到困惑。 我知道,如果0xFFDE处有一个空字,则会禁用erase-on-wrong-password功能。 但是,大容量擦除命令又如何呢? 我的理解是,即使在0xFFDE处使用空词, 批量擦除命令仍会擦除INFOA中的校准数据,而这是我必须使用的命令才能访问所有FF。 为了保留 INFOA, 我必须使用段擦除命令,当然,这些命令是受密码保护的命令。 我错了吗? 是否有办法在不知道密码的情况下清除除INFOA之外的所有内容?
将更便宜的CP2102和USB插孔嵌入到项目板上
这是否比使用带有USB BSL的MSP430F55xx更便宜?
质量擦除命令仍将擦除INFOA中的校准数据
MSP430使用启动加载器(BSL)进行编程的2.4 .4.4 部分说:
BSL版本2.01 及更高版本支持自动清除保护信息闪存的Locka位。 当从重置条件输入BSL时,BSL将清除Locka,以大量擦除闪存,包括信息存储器。 在应用程序中输入BSL时,用户软件应确保在启动BSL之前将Locka写入为1。 否则,在BSL大规模擦除期间不会擦除信息闪存。
这听起来好像您可以在进入BSL之前确保设置了Locka (即,不要切换它)。
[报价用户="Clemens Ladisch"]
将更便宜的CP2102和USB插孔嵌入到项目板上
这是否比使用带有USB BSL的MSP430F55xx更便宜?
质量擦除命令仍将擦除INFOA中的校准数据
MSP430使用启动加载器(BSL)进行编程的2.4 .4.4 部分说:
BSL版本2.01 及更高版本支持自动清除保护信息闪存的Locka位。 当从重置条件输入BSL时,BSL将清除Locka,以大量擦除闪存,包括信息存储器。 在应用程序中输入BSL时,用户软件应确保在启动BSL之前将Locka写入为1。 否则,在BSL大规模擦除期间不会擦除信息闪存。
这听起来好像您可以在进入BSL之前确保设置了Locka (即,不要切换它)。
[/引述]
我从未看过任何带USB的MSP430s,因此我不知道该选项。 此时,我们看到的是带有DIP处理器的通孔板。 CP2102将以预焊接模块的形式添加,安装在板上,成本为1.45美元。
到目前为止,将通过连接USB电缆并在/reset和测试时提供BSL输入模式来输入BSL。 我相信这将从重置条件进入。 因此,在BSL启动之前,我没有办法做任何事情。 我一直不清楚如何从我的申请中输入BSL。 我是否直接跳到0x0C00?