The message you are trying to access is permanently deleted.
在我需要维护的旧版 LPC1768/9 MBED 项目中,有一个链接器脚本将可用 RAM 范围的上限缩小了 32 字节。换句话说,虽然 SRAM 的实际大小为 32k,起始地址为 0x10000000,但强制结束地址为 0x10007FE0(而不是人们所期望的 0x10008000)。对此给出的简要解释是“用于 IAP 功能”。
这是真的吗?IAP API 是否存在固定地址内存使用?如果是这样,请问有人能提供相关文档链接或更详细的解释吗?
请参阅《用户手册》(UM10360)第32.3.2.8段:
32.3.2.8 IAP 命令处理程序使用的 RAM
Flash 编程命令使用片上 RAM 的前 32 个字节。用户分配的堆栈空间中,堆栈使用量的最大值为 128 字节,并且向下递增。
我不知道那段话里的“片上RAM”是什么意思。根据内存映射 LPC1768,它可能是以下两种情况之一:
我认为最有可能的是第一个范围:0x10000000 ... 0x10007FFF。
但是,如果您没有从固件中调用 IAP,那么您就无需担心这 32 字节。
探究这些硬件-软件交互背后的“为什么”总是一件很有趣的事情。我目前的“动力”通常集中在游戏中的清线上。我最近真的很喜欢玩《几何冲刺》 ,特别是消除方块行并防止板被填满的那种满足感。这是一种很好的放松方式,也能让我的大脑保持活跃,进行模式识别。关于您提出的 IAP 功能问题,较窄的 RAM 范围是否会对您的项目造成重大限制?