完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
已知APP程序和bootloader程序单独运行无异常,两个程序一模一样
修改lsl文件的内存地址后,在bootloader程序添加跳转语句,跳转到app程序执行43s后卡死,跳转前已关闭全局中断和看门狗,APP程序除了启动流程,只有点灯程序,lsl文件已经把pflash,dflash,pspr,dsps完全分开,哪位大神知道哪里的问题? |
|
相关推荐
1个回答
|
|
根据您的描述,这个问题可能有以下几个原因:
1. **内存问题**:虽然您提到了lsl文件已经将内存分开,但是在跳转过程中,如果内存分配不当或者存在内存泄漏,可能会导致程序运行一段时间后出现异常。 2. **中断问题**:虽然在跳转前关闭了全局中断和看门狗,但是在APP程序运行过程中,如果有中断被触发,而没有正确处理,可能会导致程序卡死。 3. **看门狗问题**:虽然在跳转前关闭了看门狗,但是有可能在APP程序中没有正确处理看门狗,导致看门狗在某个时刻触发,从而使程序卡死。 4. **程序逻辑问题**:虽然APP程序只有启动流程和点灯程序,但是如果程序逻辑存在问题,比如死循环、错误的条件判断等,也可能导致程序卡死。 5. **硬件问题**:如果硬件存在问题,比如电源不稳定、芯片损坏等,也可能导致程序运行一段时间后卡死。 6. **编译器问题**:如果编译器存在bug,可能会导致生成的程序运行不稳定。 为了解决这个问题,您可以尝试以下方法: 1. **检查内存分配**:确保内存分配正确,没有内存泄漏。 2. **检查中断处理**:确保APP程序中的所有中断都能正确处理。 3. **检查看门狗处理**:确保APP程序中正确处理看门狗,避免看门狗触发。 4. **检查程序逻辑**:检查APP程序的逻辑,确保没有死循环、错误的条件判断等问题。 5. **检查硬件**:检查硬件是否存在问题,比如电源、芯片等。 6. **尝试不同的编译器**:如果可能,尝试使用不同的编译器生成程序,看是否还会出现同样的问题。 7. **添加调试信息**:在程序中添加调试信息,比如打印关键变量的值,以便在程序卡死时能够找到问题所在。 8. **逐步调试**:使用调试器逐步执行程序,观察程序在哪个地方卡死,以便找到问题所在。 希望这些建议能帮助您解决问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
2957 浏览 2 评论
3992 浏览 9 评论
请问TLE5012B_E1000 启动后为什么位置不能正确获取
3469 浏览 9 评论
1126 浏览 8 评论
3405 浏览 7 评论
284浏览 2评论
136浏览 2评论
248浏览 2评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
2971浏览 2评论
如果是打开已有的dave工程,怎么查看这个工程选择的mcu型号?
283浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-1 07:34 , Processed in 0.769862 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191