嵌入式开发
Mr. 嘿
这个作者很懒,什么都没留下…
展开
-
嵌入式Linux之und异常处理
嵌入式Linux之und异常处理加入一条未定义指令:.word 0xdeadc0de如发生异常,则程序强制跳至0x4的地址执行程序。und异常处理函数do_und: ldr sp,=0x34000000 //首先重新设置栈 stmdb sp!,{r0-r12,lr} //保存现场 mrs r0,cpsr ldr r1,=und_string bl print...原创 2019-09-04 18:37:04 · 429 阅读 · 0 评论 -
嵌入式Linux之swi异常处理
App一般运行于usr Mode,此模式受限比如不可访问硬件。故App想访问硬件,必须发生异常切换模式。故意加入一条命令触发异常:swi 0x123,如若运行到此指令,cpu将强制跳至0x8地址执行程序。复位之后,cpu处于svc模式,先需要切换到usr模式mrs r0,cpsr //读出cpsrbic r0,r0,#0xf //修改M4-M0为0b1...原创 2019-09-05 19:12:10 · 747 阅读 · 1 评论 -
嵌入式Linux之按键中断程序
清除cpsr寄存器的I位,使能中断初始化中断:1.中断源:设置按键为中断引脚2.中断控制器3.cpu,cpsr,使能中断原创 2019-09-14 17:20:17 · 846 阅读 · 0 评论 -
嵌入式Linux之定时器中断
定时器(timer0)中断步骤:设置timer0时钟Timer input clock Frequency = PCLK / {prescaler value+1} / {divider value}=50000000/(99+1)/16=31500设置timer0初值加载初值,启动timer0设置为自动加载并启动设置中断定时器代码:void timer0_ini...原创 2019-09-14 20:23:12 · 1231 阅读 · 0 评论