摘要: 移植LINUX内核,就是为了让LINUX系统在自己的硬件平台上运行起来,能正常工作。其中最重要的还是驱动的移植,只有驱动程序能驱动硬件设备,上层的应用程序才能正常运行。目前,LINUX支持内核的系列主要有以下,解压linux-3.5-20131028.tgz文件,进入到文件夹里面,除了arch文件夹... 阅读全文
posted @ 2015-05-20 18:28 慢伴拍的二叉树 阅读(627) 评论(0) 推荐(0) 编辑
摘要: 在整个ARM体系结构中,为了处理外部中断,依次学习了MMU,模式跳转,异常,GIC,看门狗程序,这些都是为了处理外部中断具体如下:处理外部中断有五个步骤:30 //step 1: cpu cpsr31 __asm__ __volatile__(32 "mrs r0, cpsr\n"33 "bic r... 阅读全文
posted @ 2015-05-19 19:05 慢伴拍的二叉树 阅读(1962) 评论(0) 推荐(0) 编辑
摘要: 在ARM中,有一个硬件部分叫WATCH DOG。这个硬件,一直在做一件事情:就是,从某一数值,一直数,各一段时间减一,隔一段时间减一,直到减到0的时候将会触发重启或者中断。而有时候,为了预防死机,我们在操作系统跑起来的时候会有一个特定的程序来做一件事情:减到特定是值的时候数值将会重新置到100.这样... 阅读全文
posted @ 2015-05-18 21:07 慢伴拍的二叉树 阅读(1646) 评论(0) 推荐(0) 编辑
摘要: 在ARM中,事件发生将会触发中断,然而,中断并不会直接触发CPU,而是在由一个GIC,中断控制器来管理:其中,中断分为Supports three interrupt types:Private Peripheral Interrupt (PPI)一个中断源对应一个CPUSoftware Gene... 阅读全文
posted @ 2015-05-18 20:40 慢伴拍的二叉树 阅读(1264) 评论(0) 推荐(0) 编辑
摘要: ARM中的流水线分为:取值,译码,执行,仿存,回写这五步,SWI(软中断)和UND中断都出现在译码阶段,而其他5种中断都发生在执行阶段。SWI和UND异常两种处理方法步骤都差不多,但是如果是异常出现在执行阶段要怎么样处理呢?int main() 10 { 11 //发生异常时会进入异常模式... 阅读全文
posted @ 2015-05-15 16:02 慢伴拍的二叉树 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 在ARM中的流水线分为:取值,译码,执行,仿存,回写。这五步详细如下:而主要发生异常情况主要集中在译码以及执行阶段。此次的SWI(软中断)和上次的UND中断都出现在译码阶段,而其他5种中断都发生在执行阶段。在异常向量表中可以看见对应异常的模式以及SWI异常的描述如图,详细参考ARM架构手册第54以及... 阅读全文
posted @ 2015-05-15 11:33 慢伴拍的二叉树 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 例如在人的生活中,表情有喜怒哀乐.在ARM工作状态中,也有不同的模式如下表所示:(详细内容请参考 ARM架构参考手册第二章41页) 对应的中文详细模式如下: 今天主要对ARM的 undefined模式来认识ARM中处理异常的机制,在ARM中,如果遇到异常情况,首先会找异常向量表,如... 阅读全文
posted @ 2015-05-14 20:58 慢伴拍的二叉树 阅读(632) 评论(0) 推荐(0) 编辑
摘要: 由于在裸板驱动的时候要中断>>异常>>MMUMMU是一个内存管理单元,在CP15协处理器里面,而CP15处理器是嵌入在ARM芯片里。功能是将虚拟地址映射到物理地址里面。在使用MMU寄存器机制之前首先要配置寄存器。将寄存器的功能打开映射的机制支持段模式1M,小段模式,小页模式(更精细)000000--... 阅读全文
posted @ 2015-05-13 17:48 慢伴拍的二叉树 阅读(731) 评论(0) 推荐(0) 编辑
摘要: 首先找出板子电路图,以LED为例接下来就是电路的网标:到对应的芯片手册里区找寄存器的描述通过对相应寄存器的操作来操作LED灯:首先将对应的寄存器的地址注册成一个文件:reg.h 1 2 3 4 5 #define gpiobase 0x11000000 6 7 #define ... 阅读全文
posted @ 2015-05-11 17:08 慢伴拍的二叉树 阅读(650) 评论(0) 推荐(0) 编辑
摘要: 在嵌入式编程中,掌握位运算在操作寄存器的时候很方便,由于之前在上位运算的时候没上,但是由于位运算的难度不是很大,自己编写程序,顺便做些总结.& | ~ 这三个位运算符号不难理解,但是要区别与逻辑运算符号&& 和||1.需要总结的是:假如要使寄存器的值为1的话,一般用 这个寄存器的值来| 上1 比如要... 阅读全文
posted @ 2015-04-13 20:02 慢伴拍的二叉树 阅读(511) 评论(0) 推荐(0) 编辑