摘要: 关闭MMU和CACHE1.Cache是一种容量小,但存取速度非常快的存储器,它保存最近用到的存储器中数据的拷贝。按功能分为ICache(指令Cache)和DCache(数据Cache)2.虚拟地址就是程序中使用的地址;物理地址就是物理存储单元中实际使用的地址。虚拟地址可以让进程使用更大的空间。MMU... 阅读全文
posted @ 2015-10-25 10:49 盛夏夜 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 关闭中断1.设置cpsr中的I位和F位为1,屏蔽中断和快速中断。在设置svc模式时已经设置了这两位2.设置中断屏蔽寄存器,屏蔽中断3.产生的中断会被保存在SRCPND中,通过MASK(屏蔽中断寄存器)决定是否被CPU感知。如果关闭MASK,则产生的中断不会被CPU感知,可以中datasheet中的I... 阅读全文
posted @ 2015-10-25 09:27 盛夏夜 阅读(257) 评论(0) 推荐(0) 编辑
摘要: [设置svc模式]设置CPU为SVC模式1.因为初始化系统需要有很高的权限,SVC模式具有该权限,所以首先要使系统工作在SVC(0b10011)模式2.设置cprs为0xd3(0b11010011)表示设置处理器为svc模式,并且屏蔽irq和frq/**名称:set_cpu_to_svc*描述:设置... 阅读全文
posted @ 2015-10-23 17:24 盛夏夜 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 异常定义:因为内部或外部的一些事件,导致处理器停下正在处理的工作,转而去处理这些发生的事件异常类型:1.reset0x000000002.undefine instructions0x000000043.software interrupt(swi)0x000000084.prefetch bort... 阅读全文
posted @ 2015-10-23 16:01 盛夏夜 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2015-10-23 11:15 盛夏夜 阅读(222) 评论(0) 推荐(0) 编辑
摘要: uboot工作流程分析程序入口1.打开顶层目录的Makefile,找到目标smdk2440_config的命令中的第三项(smdk2440)2.进入目录board/samsung/smdk2440/,找到u-boot.lds文件。uboot的链接都是由这个链接器脚本来控制的3.打开u-boot.ld... 阅读全文
posted @ 2015-10-22 20:29 盛夏夜 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 2440启动流程启动方式:nor flash启动、nand flash启动地址布局:选择nor flash启动时,SROM(nor flash)地址为0x00000000选择nand flash启动时,SRAM(SteppingStone)地址为0x00000000SDRAM(内存)地址为0x300... 阅读全文
posted @ 2015-10-22 09:11 盛夏夜 阅读(464) 评论(0) 推荐(0) 编辑
摘要: Bootloader的作用就是启动Linux内核U-Boot简介1.U-Boot是用于多种嵌入式CPU(ARM、x86、MIPS等)的bootloader程序,U-Boot不仅支持嵌入式Linux系统的引导,还支持VxWorks、QNX等多种嵌入式操作系统2.uboot自动启动Linux的模式叫做自... 阅读全文
posted @ 2015-10-21 14:30 盛夏夜 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 协处理器作用协处理器用于执行特定的处理任务,如数学协处理器可以执行控制数字处理,以减轻处理器的负担。ARM处理器最多可以支持16个协处理器,其中CP15是最重要的一个协处理器CP15的作用CP15是系统控制协处理器,通过额外的寄存器可以控制cache,MMU,系统时钟等功能访问协处理器1.CP15有... 阅读全文
posted @ 2015-10-21 10:37 盛夏夜 阅读(455) 评论(0) 推荐(0) 编辑
摘要: ARM机器码1.汇编程序通过汇编器变成机器码,然后才能在ARM处理器上运行2.ARM机器码是一个32位的数,被分成了多个段,每个段都有各自的含义3.格式:cond:表示条件(4位)I:表示源操作数是寄存器还是立即数opcode:表示指令类型(4位)S:表示是否影响cpsr寄存器Rn:第一个源寄存器,... 阅读全文
posted @ 2015-10-21 09:25 盛夏夜 阅读(335) 评论(0) 推荐(0) 编辑