S32DS踩坑日记五-bootloader跳转APP时触发DefaultISR

文章讲述了作者在S32DS开发环境中遇到的问题,即APP在刷入电路板后仅bootloader启动,深入排查发现是由于CLOCK_SYS_Init函数触发了DefaultISR。通过反初始化时钟解决了问题,但具体原因待进一步测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

S32DS踩坑日记五-bootloader跳转APP时触发DefaultISR

bootloader和APP由另一位同事开发过程中,被导师叫回去写论文了。
由于项目不急,接手后未作任何改动,后面硬件工程师手工焊了几块电路版,需要刷上程序测试电路板。然后就遇到了奇怪的问题。
刷了四块电路板,只有一块的APP可以启动, 另外三块只有bootloader可以启动。
开始认为是电路板的问题,但是bootloader能正常运行又说不通。
后面又刷了几块板子,现象也是bootloader能启动,APP运行不起来。
MCU是S32K144w。
开发工具是S32DS,调试工具为J-Link。在APP main第一行增加了断点,显示没有运行到断点,就进入到DefaultISR了。
在这里插入图片描述
然后将APP的编译优化都去掉了,还是相同的现象。

之后在startup_S32K144.S的reset函数中增加了如下的断点:
在这里插入图片描述
在反汇编代码中跟踪进入main中后,发现其实已经进入CLOCK_SYS_Init函数里面了,这个函数的运行过程中触发了defaultisr。想到了网上说的时钟要反初始化一下。决定尝试一下。
但是发现没有CLOCK的反初始化函数:
在这里插入图片描述
就只能把外设中有的逐一调用了一下:
在这里插入图片描述
然后就发现APP能正常运行了。不知道什么原因。明天再用更多的板子测试一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值