我正在开发一个装有 TLE9877 的开发板,我正在运行一些遗留代码。 首先,使用 bootrom 函数擦除闪光灯并空白勾选似乎没问题。 而且我读出寄存器或整个 Flash 内容也没问题。
由于我还没有应用程序,所以我编造了一些数据供刷新。 我用 0xAA 填充 0x11000000-0x1100000F,用 0x11000000-0x1100000F 填充 0x55。 只要通电,它就可以正常工作。 测试顺序包括擦除、写入、验证和读取闪存。
当我试图重复测试序列时,灾难来了。 现在,使用 bootrom 函数的第一个命令不起作用。 它仍然进入调试模式,我可以读出寄存器以及闪存内容,但是启动 CPU 命令总是会因超时而失败。
有人知道如何将设备重置为已删除状态吗?
写入前 32 个闪光灯位置时我是否触发了特殊模式? 我怀疑用户重置了向量。
我检查了几个寄存器中的错误闪存,但直到现在我还找不到奇怪的部分。 NVM 似乎没问题,没有错误。
▪ SCU_SYS_STRTUP_STRTUP_STS:0x50
▪ SCU_NVM_PROT_STS:0xF ▪ SCU_MEM_STS:0x0 ▪ SYS_STRTUP_CFG:0
还有其他寄存器可以检查吗?
也许是保护或安全标志?
我查看了 DHCSR 登记册。 它的值是 0x01090005。 我没想到会出现的部分是 S_LOCKUP。
有没有办法找出调用 bootrom 函数出了什么问题? 有状态寄存器吗?
还有其他方法可以调用这些函数吗? 我是在没有内存代码的情况下手动完成的,见下文:
Halt(); WriteCoreRegister ( CoreRegister::LR, 0x18000B01
); // return addr is breakpoint: WriteToMemory ( 0x18000B00,
(uint32)0xbe00be00 ); // write bkpt (0xBE00) to memory //set
arguments WriteCoreRegister ( CoreRegister::R0, 0x18000400 ); //
uint32* cbsl_nvm_size WriteCoreRegister ( CoreRegister::R1,
0x18000404 ); // uint32* code_nvm_size WriteCoreRegister (
CoreRegister::R2, 0x18000408 ); // uint32* data_nvm_size
WriteCoreRegister ( CoreRegister::SP, 0x18000AFC ); // set SP, don't
know if it's used WriteCoreRegister ( CoreRegister::PC,
0x000038B5 ); // user_nvm_config Run(); WaitForHalt (
100_ms );
谢谢。
smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/MOtiX-MCU/TLE9877-bootrom-functions-not-working-after-programming-flash/td-p/651276
共2条
1/1 1 跳转至页
编程Flash后,TLE9877bootrom函数不起作用是为什么?如何处理?
关键词: Flash TLE9877 bootrom
2楼
1. 引导程序区域被破坏: bootrom 函数通常位于启动程序的固定内存地址,如果该内存区域被写入了其他数据或被破坏,bootrom 函数将无法正常工作。您可以检查一下您的程序是否有可能覆盖了这部分内存。
2. 引导模式配置错误: TLE9877通常具有不同的启动模式(如正常启动、调试模式、ISP模式等)。确认您是否正确配置了启动模式,以便 bootrom 函数能够正常工作。
3. 引导程序版本不匹配: 您提到正在使用遗留代码,可能引导程序的版本与你的硬件或其他库文件不匹配。尝试检查并更新引导程序以确保与您的硬件兼容。
处理这个问题的方法如下:
1. 确认您的代码没有破坏引导程序区域。可以通过调试工具或读取闪存内容来验证引导程序区域的完整性。
2. 检查和确保正确配置引导模式。。
3. 检查并更新引导程序版本。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图四被打赏50分 | |
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 |