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.
工具与软件:
您好!
我会对我正在使用的 MSP430F6775A 器件有一些问题。 引导顺序是否可修改? 具体来说、以@17Fx 开头的地址和关联的序列是否是永久的?
在 low_level...asm 文件中定义的 BSL_action 函数中、存在值0xBEEF 和0xDEAD、它们与寄存器 R13和 R14进行比较。 我找不到任何这样的值被移动到该位置、至少没有移动到那个程序集中。
此外、在 BSL_ENTRY_JMP 函数中、C_Branch JMP 指令首先出现、然后是 BSL_Action。 是否曾经被处理过 BSL_Action、或者它是否简单地跳转到 C 语言初始化函数?
此外、在中断向量存储器段(包括复位向量)中构建之后 TI-hex 中存在数据的原因是该区域不应该被清除、或者我应该修改链接器文件以便不会在这些.int 段中生成任何内容。 在发布的图像中没有类似的东西。
谢谢!
具有 Low_level_code.asm 文件的代码可在以下位置找到: MSPBSL_CustomBSL430 1_02_00_01 - TI.com
将 Low_level_code.asm 文件构建到 Z 区域中。 Z 区是存储器中一个特殊部分、旨在以受控方式公开访问受保护的 BSL。 Z 区是位于地址0x1000和0x100F 之间的可跳转到外部应用程序代码并从中读取的 BSL 存储器部分。 Z 区用作网关、可从该网关跳转到 BSL 存储器中的任何位置。 默认 TI BSL 使用此区域跳转到 BSL 的开头以及跳转到 BSL 公共函数中。
通常、此处所需的定制仅限于:
•更改 BSL_PROTECT 函数以在不同条件下调用 BSL。
•将非0xFFFF 的值写入最终 BSL 映像的 JTAG 密钥位置。
•向 Z 区域添加附加函数、使它们可由用户代码执行。
好的、我知道、但这是曾经执行过的 BSL_ACTION0函数。 之后是 C_Branch、当我调用 C_Branch 时、执行主代码。 我错了吗? 此外、当我 在从未执行 C_Branch C_Branch C_Branch C_Branch 之前放置 bsl_function 时、BSL 绝不会启动、直到我不会将#0xDEAD 和#BE牛肉 移动到 arg2和 arg3寄存器。 所以,什么是目的,因为它看起来有些诡计对我来说,即使在 SLAU 中有一些解释。 看起来它更像是没有任何功能。 我的意思是、在参数开始之前、先检查#0xDEAD 和#0xBEF 等神奇关键字应该如何进入这些寄存器、以便对其进行比较?
您好、Gary、
我试着把 BSL_Action0
之前 C_Branch
,我也修改了 BSL_Action
函数。 但是、这种方法不起作用、直到我在比较前将这些关键字#0xBEEF ...移动到寄存器中、或者直到我将它们从代码中省略。 我之所以提出这个问题、是因为我想通过删除不必要的代码来节省一些内存空间。 然而、我仍不确定这一点、正因如此、我想要澄清。
对于所调用函数、应在 ROM 中无法修改的启动代码中进行处理。 如果你想保存一些数据、我建议把它保存在信息存储器中、如果你使用 BSL 代码的话、不要修改它。
好的、但我需要 BSL 存储器、这样我就可以在 BSL 中使用更多的函数或添加进一步的验证。
好的、但建议不要对 Z 区域进行任何修改、您可以尝试删除一些不需要的核心命令。