Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
使用软件复位后保留RAM中的数据,复位后无法保存,断点打到SystemSoftwareReset这里,继续运行复位后发现可以保持,是什么原因呢?
RAM 是在 startup.S 内做 ECC 初始化时清除的
这块ram没有在link文件里面配置没有选择初始化的,大小配置了16个字节
Diga 方便看下现象吗,补充一下在APP执行软件复位前RAM数据存在,执行复位之后到Boot的Reset_Handler这里打的断点看数据已经被初始化了
这颗是 HA0 的芯片嘛
是的,YTM32B1HA01
HA0 内是有 ROM 的,ROM 内会执行 Secure Boot,Secure Boot 使用到 0x2005F000~0x2005FFFF,故会对其做 RAM 初始化以及赋值。 你可以再确认下地址
我这个使用的地址是0x2005DFC0 ~ 0x2005DFFF,不在这个Secure Boot 使用的0x2005F000~0x2005FFFF范围内,而且我在复位前打断点再执行到Boot RAM的数据是存在的
可以打一个数据断点,针对你说的这个地址,当被修改后,会进入断点,然后查看在哪儿进的
嗯,这个有试过,这样打断点现象就变成正常的了 RAM数据复位后是存在的
emmm,你是不是开 Cache 了
看看boot的ytlink配置,有没有跟app一样,把这块区域独立出来。boot的启动文件也会初始化RAM
这块区域是RAM的,不是ITCM和DTCM 应该不算Cache吧。Boot这块link文件也有独立出来,没有配置初始化 。复位之后断点打到boot的启动文件的Reset_Handler,还没有执行到Boot RAM初始化,RAM数据已经没有了。
看你的描述,除了你有别的应用程序去主动修改了这块儿 RAM, 看着有点像 这块RAM 被 Cache 了,对这些 RAM 写的值还留在 Cache 内,Cache 未命中就复位了,导致 RAM 值没写进去
复位前对这些数据做了判断,确定写入进去才进行复位的,应该在复位那一刻和进入到boot的启动文件前数据被初始化了
现在远程看一下?
可以啊,用向日葵吗?
腾讯会议,你发个会议链接
点击链接入会,或添加至会议列表: https://meeting.tencent.com/dm/kDbLHfpK8zY1
Diga 请问LE0系列是否不支持powerdown唤醒后保持RAM内容?即不支持INIT_POR模式?
快速上手云途开发生态
发帖前请查看
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...