完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在用S32K324开发ECU时遇到了两个问题。
1. 在用PEmicro和S32DS调试软件时,通过上位机(CAN协议)发送报文复位程序。无论我使用哪种复位方法(API mcu_performreset() 或 watchdog timeout),在第九次复位时,程序总是死在一个 ram 固定地址(这个地址可以找到,实际上变量存在于那里)。即使我在启动函数处标记了一个断点,程序也无法停止。为什么会出现这个问题?当芯片不在debug模式时,没有这个问题。 2. 重新烧写flash地址后,我想计算烧写数据的crc值,看看是否写对了。但是,当我启用缓存功能时,每次读取数据的全局变量都不是最新的,实际上我什至不知道变量是如何改变的,因为数据与闪存中的数据不相同,也不与闪存中的数据相同最后的数据。使 CRC 值与主机上的值不匹配。最后我尝试使用 API sys_m7_cache_clean() 在读取闪存数据之前清理缓存数据,在这种情况下,可以更新变量并且也通过了 crc 校验。 我想知道:如果我在我的应用程序代码中使用 api sys_m7_cache_clean() 是否有任何风险?为什么数据写入后不能立即读取? |
|
相关推荐
1个回答
|
|
1. 关于重置失败的问题,可能是由于程序在重复的复位过程中有一些错误导致的。建议将程序调试到该固定地址,查看是否存在程序错误或死循环。此外,如果是由于复位引脚的信号不稳定,可以考虑使用软件复位方法。另外,可能还需要检查系统时钟和系统复位电路是否正常工作。
2. 关于缓存问题,可以考虑在烧写之前将缓存清空,或者禁用缓存功能。此外,可以使用指令缓存和数据缓存的不同区域,避免读写数据时发生冲突。另外,注意使用正确的数据类型读取数据,避免数据类型转换错误导致的问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
1912个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36368 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4403 浏览 0 评论
6062 浏览 1 评论
6770 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4220 浏览 0 评论
625浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
621浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
615浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
698浏览 2评论
802浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 17:04 , Processed in 1.102321 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号