摘要:
我们回顾下中断产生前后的处理流程:详见 "异常、中断的原理与流程" 中断前: 中断产生后: 问题案例: 我们想实现一个按键点灯程序,我们知道有以下两种方案: 1.轮询方案:轮询检测按键的电平状态,当检测到被按下后,对应的gpio会拉低,点亮对应的led;(略) 2.中断方案:将按键配置成外部中断源,
阅读全文
posted @ 2020-01-16 17:14
fuzidage
阅读(1010)
推荐(0)
摘要:
swi(软中断) 我们知道arm有7中工作模式,除了usr模式,其他6种都是特权模式。我们知道usr模式无法修改CPSR直接进入其他特权模式,但linux应用程序一般运行在usr模式,既然usr模式权限非常低,是无法直接访问硬件寄存器的,那么它是如何访问硬件的呢? linux应用程序是通过系统调用,
阅读全文
posted @ 2020-01-06 14:01
fuzidage
阅读(608)
推荐(0)
摘要:
1._und(未定义指令异常)介绍 我们之前分析过5种异常,那么如何进入未定义指令异常,当然是cpu读取指令发生异常,出现了指令解析异常。 我们先来看下当cpu解析到什么样的指令才会触发未定义指令异常呢? 从上面的arm指令格式中可知,只要指令码属于划线的格式,就属于未定义指令异常。 2.汇编向c函
阅读全文
posted @ 2019-12-29 09:46
fuzidage
阅读(1099)
推荐(0)
摘要:
1.异常中断概述 在arm架构的处理器中,cpu有7中工作模式,2中工作状态。 1.CPU模式(Mode): 7种Mode: 除了usr/sys,其他5种都是异常模式。我们知道中断属于异常的2中,中断有irq,fiq。 |usr|sys|undefined(und)|Supervisor(svc)|
阅读全文
posted @ 2019-12-19 11:08
fuzidage
阅读(952)
推荐(0)
摘要:
##1.代码重定位的改进 用ldr、str代替ldrb, strb加快代码重定位的速度。 前面重定位时,我们使用的是ldrb命令从的Nor Flash读取1字节数据,再用strb命令将1字节数据写到SDRAM里面。 我们2440开发板的Nor Flash是16位,SDRAM是32位。 假设现在需要复
阅读全文
posted @ 2019-12-17 20:31
fuzidage
阅读(462)
推荐(0)
摘要:
1 引入buildroot Buildroot是Linux平台上一个开源的嵌入式Linux系统自动构建框架。用来制作根文件系统,我们还要自己去移植一些第三方软件和库,比如 alsa、iperf、mplayer 等等。 那么有没有一种傻瓜式的方法或软件,它不仅包含了 busybox 的功能,而且里面还
阅读全文
posted @ 2019-12-16 15:42
fuzidage
阅读(21594)
推荐(2)
摘要:
1.清bss的引入(为什么要清bss) 我们先举个例子: include "s3c2440_soc.h" include "uart.h" char g_Char = 'A'; //.data char g_Char3 = 'a'; const char g_Char2 = 'B'; //.roda
阅读全文
posted @ 2019-12-15 16:28
fuzidage
阅读(360)
推荐(0)
摘要:
代码重定位(2.编程实现代码重定位) 1.引入链接脚本 我们上一节讲述了为什么要重定位代码,那么怎么去重定位代码呢? 上一节我们发现"arm linux ld Ttext 0 Tdata 0x30000000"这种方式编译出来的bin文件有800多M,这肯定是不行的,那么需要怎么把.data段重定位
阅读全文
posted @ 2019-12-15 11:30
fuzidage
阅读(390)
推荐(0)
摘要:
标题 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 效果如下: 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 段落 换行 Markdown段落的换行是使用两个以上空格加上回车,当然也可以在段落后面使用一个空行来表示重新
阅读全文
posted @ 2019-12-14 15:53
fuzidage
阅读(346)
推荐(0)
摘要:
1.重定位的引入(为什么要代码重定位) 我们知道s3c2440的cpu从0地址开始取指令执行,当从nor启动时,0地址对应nor,nor可以像内存一样读,但不能像内存一样写。我们能够从nor上取指令执行。 例子1:当nand启动的时候,我们nand中的前4K指令会变自动加载到sram中去,这时的0地
阅读全文
posted @ 2019-12-14 11:29
fuzidage
阅读(433)
推荐(0)