完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
注意:如果点击空白处无法输入,则点击字会有输入提示符 | 则可以使用键盘进行输入!
此板块为 [ARM裸机加强版] 问题所在章节:异常中断————按键中断 发生问题的运行环境:和老师一样 问题发生描述: 按键中断都没有问题,问题出现在und异常和cpu异步模式代码!!! 当代码运行至这里时,就是设置cpu处于异步模式的代码,由于其机器码为0xee110f10和0xee010f10,导致cpu无法识别,引发异常,连续调用2遍do_und 但是我的代码和老师的代码是一样的,起码在sdram_init之前是一样的,为什么老师的没有出现这种情况??? 这种情况如何解决? 输出的错误信息: |
|
相关推荐
5个回答
|
|
和老师的代码对比 找出差异的地方 逐步修改定位到那一句影响的
|
|
|
|
老师,我找到问题了
1、我按红色开关,上电重启会识别这2行,异步代码,触发und异常 2、我按reset键,正常了,不会触发und异常 是不是和硬件有关啊???具体是什么原因呢??? 我还有一个 问题就是: 串口连接后,我要从串口观察信息时,究竟是按红色开关还是reset ??? |
|
|
|
老师,您好!
虽然reset启动后正常,但是还是不对:同样用红色开关重启,老师的代码就是正常,我的就不对。 今天找到原因了:设置cpu中断使能后,返回usr模式,未设置sp_usr 那我还有几个问题: 1、为什么在不同的模式下要设置不同的栈,仅仅是因为不同模式下,r14是互不干扰的,各用各的?? 2、在我们学中断这一章之前,所有的代码都运行在svc模式下的,是吗?? 3、设置sp_usr是在cpu异步模式代码后面,为什么会影响输出结果?? 我调试了一下,发现cpu在切换模式后,如果未设置栈,会重新从0地址执行一遍代码,这是为什 么??? 4、如果2的回答是肯定的,那之前的und是运行在svc模式下的,未出现问题;这次切换到usr,但未设置栈 出现问题, 那么,栈是如何影响的???会不会cpu识别代码的过程要依赖栈??? 问题有点多,希望老师们能解答一下,麻烦了 每次都是这样,找到一个问题,更多的问题产生了,看来革命尚未成功 |
|
|
|
1、模式不同,都需要有自己的栈存放数据,要不然就乱套了
2、是的 3、为设置栈,导致异常之后cpu复位了估计,所以你看到从0地址又执行了一遍 4、一些函数调用会用到栈,没设置的话就跑飞了 |
|
|
|
谢谢李老师
|
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2184 浏览 6 评论
1985 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4543 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 21:41 , Processed in 0.808395 second(s), Total 86, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号