嵌入式与手机体系结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
启动过程分析和实现
4 主程序的拷贝 系统硬件正常工作后,则要将主程序的代码 主程序在SDRAM中的位置取决于编译过程中设置的RO、RW段 拷贝至 SDRAM 。在这一过程中,需注意: 的起始地址 ;在Flash 中的位置则由映像文件烧写时的地址决定。 (1)SDRAM的起始地址; 由于ARM在统一的地址空间内寻址存储设备,所以对主程序的拷贝, (2)清空并保证SDRAM内准备放主程序映像 可通过简单的循环读Flash的语句来实现。 文件的存储空间可访问; (3)Flash内主程序的映像文件在Flash中的起 始和结束地址。
1 复位中断向,设置: 在ARM体系中,从地址0x0到0x1c的32字节是异常中 断向量表,分别是复位、未定义指令错误、软件中断、 预取指令错误、FIQ。在分配给每个异常中断的4字节 空间数据存取错误、保留的中断向童、IRQ和内放人 跳转指令,使程序跳转到相应的中断处理程序处执行。 当多个中断发生时,处理器根据中断优先级逐个处理。 对于启动过程,加电时触发的是位于0x0地址的复位 Reset异常中断。bResetHandler语句可使CPU转向引 导程序。
启动过程分析和实现
5 跳入主程序入口处执行 如果主程序拷贝是在C环境下完成,且从 0x30000000开始执行,则 #defineRAM_Addr0x30000000 void(*Run)(void)=(void(*)(void))RAM_Addr; Run(); 这些语句即可实现跳转功能;
启动过程分析和实现
二种结构计算机的类型
哈佛结构的CPU 通常具有较高的执行效率。目前使用 哈佛结构的 CPU 和微处理器有很多,除了所有的 DSP 处理器,还有摩托罗拉公司的MC68系列、Zilog 公司的Z8系列、ATMEL公司的AVR系列和ARM公司 的ARM9、ARM10和ARM11等。 冯· 诺依曼结构的 CPU 和微控制器有很多。其中包括 英特尔公司的8086及其他CPU ,ARM公司的ARM7、 MIPS公司的MIPS处理器也采用了冯· 诺依曼结构。
Real-Multi-ICE ARM通用型实时在线仿真 器
Multi-ICE是ARM公司自己的JTAG在线仿真器,目前的最新版本 是2.1版。 Multi-ICE的JTAG链时钟可以设置为5 kHz到10 MHz,实现 JTAG操作的一些简单逻辑由FPGA实现,使得并行口的通信量 最小,提高系统的性能。Multi-ICE硬件支持低至1V的电压。 Multi-ICE 2.1还可以外部供电,不需要消耗目标系统的电源,这 对调试类似手机等便携式、电池供电设备是很重要的。 Multi-ICE 2.x支持该公司的实时调试工具MultiTrace,MultiTrace 包含一个处理器,因此可以跟踪触发点前后的轨迹,并且可以在 不终止后台任务的同时对前台任务进行调试,在微处理器运行时 改变存储器的内容,所有这些特性使延时降到最低。
启动过程分析和实现
3 IRQ中断向量表的初始化 IRQ中断源,利用ICPR(中断示寄存器)、ICMR(中断 屏蔽寄存器)、ICLR(中断级别设置寄存器)、ICIP(IRQ 级别的中断源寄存器)等中断控制寄存器识别各个中断。 在这些中断发生时,都会触发IRQ中断,这样在IRQ 中断服务程序中,需判别各中断,并跳到相应的中断 服务程序。启动阶段,在SDRAM高端地址内预留 32X4字节的IRQ中断向量表,根据INTOFFSET值, 获得各个IRQ中断源在向量表内的偏移地址,跳转执 行中断服务程序。
启动过程分析和实现
2 硬件初始化和堆栈设置 引导程序首先通过配置特殊控制器完成硬件初 始化,包括关闭看门狗时钟、屏蔽所有中断, 保证系统启动过程不受任何异常中断的影响。 初始化PLL完成CPU工作频率的设置,通过设 置BWSCON等控制寄存器完成系统外接 SDRAM的初始化,包括外部数据总线宽度、 访问周期、定时的控制信号等参数。
嵌入式与手机体系结构
PC机启动全过程 嵌入式介绍 手机介绍 手机恢复与仿真器
计算机的分类----体系结构分类
计算机体系结构(Computer Architecture)是 程序员所看到的计算机的属性,即概念性结构 与功能特性 传统计算机采用冯· 诺依曼(Von Neumann) 结构,也称普林斯顿结构,是一种将程序指令 存储器和数据存储器并在一起的存储器结构。 哈佛(Harvard)结构是一种将程序指令存储 和数据存储分开的存储器结构。
ARM7与PC机的硬件是类似的
下面让我们熟悉一下PC机的开机过程(漫长) 概念: CPU、MEM、南桥、北桥、BIOS、 CMOS……
从BIOS开始的启动
引导(BOOT级)
下面“言归正摇”
启动代码是嵌人式系统加电后令首先运行的一 段程序。其主要任务是初始化目标程序映像 (image)从ROM或Flash中拷贝RAM,然后跳 转到主程序人口点运行
ARM处理器(V4架构以后的版本)共有7种 执行模式
User:用户模式 FIQ:快速中断响应模式 IRQ:一般中断响应模式 Supervisor:超级模式 Abort:出错处理模式 Undef:未定义模式 System:系统模式 除用户模式以外,其他6种模式都是特权模式
启动过程分析和实现
主机和目标系统交叉开发模型, 主机和目标机之间通 过调试设备(BDM/JTAG 仿真器) 相连接,应用程序在 主机的Windows环境下编译链接生成可执行文件,下 载到目标机,通过主机上的调试软件和连接到目标机 上的调试设备完成对应用程序的调试、分析。 支持的主机操作系统:Windows98/NT/Me/2000/XP 和X86 RedHat Linux6.2/7.1/7.2/8.0/9.0。 支持的目标处理器:ARM全系列。
当引导程序比较复杂,如wk.baidu.com及操作系统内核引 导等时,引导程序可分2步进行: 第一部分引导代码在Flash内运行,把较复杂 的第二部分引导拷贝到RAM内,在RAM中完 成全部引导工作。这样在整个引导过程要完成 2次文件在Flash与RAM之间的拷贝。
Real-Multi-ICE ARM通用型实时在线仿真 器
Bootloader程序建立中断表
手机所用ARM7处理器在加电或复位时,一般是 从0地址处开始执行程序指令,而中断向量表通 常也要求位于0地址处,且每个中断只占用一个 字的存储空间。为了满足上述要求,Bootloader 程序需要在0地址处建立中断向量表,并通过放 置一条跳转指令来转到定义的中断处理指令处 执行。
手机与ARM7
手机系统启动两个阶段
硬件阶段:一旦复位线有效(装电池或按“电源” 键),处理器就进入到硬件复位阶段。此阶段的 主要职责是给CPU上电,使CPU开始启动程序 或运行一些要把CPU控制权转交给程序的代码。 软件阶段:此阶段的主要职责是初始化核心元 件和内存的关键结构(用来建立完整的运行环 境),加载执行已写入到ROM中的应用代码。
ARM 上的系统
Linux/uClinux自身具备一整套工具链 (GNU GCC),包括编译和调试工具,用户 可以自行建立嵌入式系统的开发环境和交叉运 行环境,并且可以跨越在嵌入式系统开发中仿 真工具(ICE)的障碍。
谢谢