你(们)好
我在 RAM 中使用"搜索框"在应用程序和引导加载程序之间进行通信。
为此、我更改了两个.cmd 文件、以便排除最后128个字节。
#define RAM_base 0x20000000
#define RAM_SIZE 0x13F80 // RAM 总量为80K、0x14000。 RAM 的最后128个字节被保留用于邮箱。 *
然后、我使用指针来访问该区域:
#define mailbox_address ( 0x20000000 + 0x13F80)
因此、当应用程序想要指示引导加载程序执行某项操作时、它会使用字符串和 CRC32填充该128字节并进行复位。
复位时引导加载程序会检查此区域的一致性(CRC32必须匹配)、然后对写入此邮箱的字符串中给出的指令执行操作。
当我使用调试器(使用 Debugger Restart 命令,而不是 SysCtrlSystemReset())进行测试时,它可以正常工作, 但我不使用调试器、似乎(使用 LED 调试工具)这个 RAM 被0填充、就像 C 启动忽略.cmd 文件中的定义一样。
这是可行的吗?
如何将 C 启动代码添加到项目中以便进行调试?
谢谢