摘要:1.1异常 异常向量: 异常向量表: 代码的编写 start.S文件 gboot.lds链接器脚本文件 makefile工程文件:
阅读全文
摘要:1、程序入口 我们从什么地方去找入口呢,首先是打开顶层目录的makefile文件,在这个文件里面,每一个uboot支持的开发板都有一个配置选项,比如说,搜索smdk2440,结果如下 我们主要关注上图的右方那个红线处,它决定了开发板的名称smdk2440,拿到这个名称后,我们到目录board\sam
阅读全文
摘要:1、启动方式 s3c2440:可以从Nor flash启动,Nor flash一般是2MB;也可以从Nandflash启动,它一般是256MB,我们习惯上把我们的uboot,内核以及文件系统都放到Nandflash里面去,选择开发板从nandflash启动。 当2440从nandflash启动的时候
阅读全文
摘要:1、bootloader的作用 2、u-boot是bootloader业界的老大 u-boot分为自主模式和开发模式 3、建立U-boot工程 uboot不能在window下面进行解压,因为在windows下面它不区分大小写,所以很多文件会被丢失掉,而Linux下面是区分大小写的。
阅读全文
摘要:1、什么是协处理器? CP15是协处理器, CP15的作用:系统控制协处理器CP15,它提供了额外的寄存器,这些寄存器用于配置和控制cache,MMU,保护系统,时钟模式,和其他的系统项,比如大小端操作。 如何访问CP15协处理器? 可以访问在CP15里定义的寄存器来达到访问CP15,,可以通过命令
阅读全文
摘要:1、ARM机器码 对elf格式的文件进行反汇编可得到相应汇编文件的机器码: arm-linux-objdump -D -S start.elf 机器码的解析,可以参考文件ARM Architecture Reference Manual的The ARM Instruction Set章节。 2、定义
阅读全文
摘要:1、算术和逻辑指令 mov、mvn、cmp、tst、sub、add、and、bic 2、比较指令 cmp和tst 3、跳转指令 b和bl 4、移位指令 lsl和ror 5、程序状态字访问指令 msr与mrs指令 6、存储器访问指令 ldr和str
阅读全文
摘要:bootloader以及内核需要使用汇编语言,特别是在初始化的时候!以及在效率要求很高的地方会使用。 汇编程序框架: 其入口在_start处,这个入口需要用一个关键字为.global来声明它是一个全局的标号,那么在外部文件才能够引用到它。 .section表示这是一个段,.text表示这是一个代码段
阅读全文
摘要:所谓寻址方式就是处理器根据指令中给出的信息来找到指令所需操作数的方式。 1、立即数寻址 ADD R0,R0,#0x3f; R0<-R0+0x3f 在以上指令中,第二个源操作数即为立即数,要求以“#”为前缀 2、寄存器寻址 ADD R0,R1,R2 ;R0< R1+R2 该指令的执行效果是将寄存器R1
阅读全文
摘要:进入到ARM Architecture Reference Manual这个文档里面的A2.3 Registers R13在程序中通常用于充当SP堆栈指针的!! R14在程序当中通常用于充当LR(链接寄存器),有两个特殊功能:1、用于保存子函数的返回地址;2、保存中断函数的返回。 R15被用于程序计
阅读全文
摘要:arm公司发布的学习手册:ARM Architecture Reference Manual。 打开之: 找到Programmers' Model->A2.2 Processor modes. 程序运行在不同的处理器模式时,ARM能够运行的指令是不一样的!能够访问的寄存器也是不一样的! 可以安排不同
阅读全文
摘要:芯片(比如2440、6410、210等等)包含ARM核。 指令结构和ARM核有关系: ARM9对应指令架构版本ARMV4 ARM11对应指令架构版本ARMV6 cortex A8对应指令架构版本ARMV7 6410芯片的概况: 2440芯片的概况: 210芯片的概况:
阅读全文
摘要:1、把中断注销掉,采用轮询的方式,来使用按键,看它能否工作。 采用读取按键的状态来轮询;按键的状态有对应I/O口的数据寄存器保存,可以读取该寄存器来判断按下与否。 如果还出问题,反汇编之;arm-linux-objcump -D -S gboot.elf >dump 看它用到了fp寄存器,可知用到了
阅读全文
摘要:中断编程 1、初始化按键、2、初始化中断控制器、3、中断处理 底板原理图: 去核心板原理图 去找到6410的芯片手册, 引脚配置:touch button.c #define GPLCON1 (volatile unsigned long *)0x7F008814 void button_init(
阅读全文
摘要:1、其底板按键原理图 将EINT1到核心板原理图去搜 可以看出它对应GPF1这个引脚, 到s3c2440的I/O引脚去找GPF这一组。 a、配置这些按键引脚,即初始化这些中断源 b、初始化中断控制器 我们的按键没有子中断,故不需要设置SUBMASK寄存器,只需要去设置MASK寄存器,对于MODE和P
阅读全文
摘要:1、中断概念 cpu在工作的过程中,进程需要与外设进行交互,交互的方式包括“轮询方式”,“中断方式”。 a、轮询方式:cpu不断地查询设备的状态。cpu利用率很低,不适合多任务的系统。 b、中断方式:cpu在告知硬件开始一项工作后,就去做别的事去了,当硬件完成了该项工作后,向cpu发送一个信号,告知
阅读全文
摘要:要把下载到nandflash里面的程序(大于8KB的时候)拷贝到链接地址,故要初始化DDR,才能够使用DDR。 ??? 开发板上电后要初始化DRAC,以及DDR,然后把程序拷贝到50000000出运行。 DDR内存工作于HCLK下 DDR芯片手册 DDR的刷新周期为7.8us,因为HCLK的频率为1
阅读全文