- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6、嵌入式系统初始化与操作系统的移植
电源接口设计 电源系统设计 外围3.3V:使用LM1085 内核1.8V:使用AS1117 时钟电路 时钟电路设计 32.768KHz晶体 22pF电容,以帮助晶体起震 PLL的功能 控制ARM CPU的速度; 为SDRAM提供同步电源 ARM920T内核结构 S3C2410的内部结构 2410的存储器系统 — 可通过软件选择大小端 — 地址空间:每个Bank 128Mbytes (总共 1GB) — 共 8 个banks 6个Bank用于控制 ROM, SRAM, etc. 剩余的两个Bank用于控制 ROM, SRAM, SDRAM, etc . — 除 bank0 (16/32-bit) 外,所有的Bank都可以通过编程选择总线宽度= (8/16/32-bit) — 7个Bank固定起始地址; — 最后一个Bank可调整起始地址; — 最后两个Bank大小可编程 —所有Bank存储周期可编程控制; S3C2410的存储器配置 实验平台的体系结构 初始化程序的下载执行 片内存储器 片内Flash编程方法 片外Flash编程方法 嵌入式系统的初始化过程 嵌入式系统的初始化过程 嵌入式系统的初始化过程(2) 嵌入式系统的初始化过程(3) 设备驱动程序 为什么要有设备驱动程序? 嵌入式硬件设备本身无法工作,需要软件来驱动,如初始化、控制、数据读写等。 什么是设备驱动程序? 直接与硬件打交道、对硬件进行控制和管理的软件。 在一个嵌入式系统中,设备驱动程序是必不可少的。 嵌入式系统的初始化过程(4) 嵌入式系统的初始化过程(5) ROM地址的重映射 ROM地址重映射的实现 mov r8,#RAM_BASE_BOOT //RAM_BASE_BOOT是重映射前内部RAM区地址 add r9, pc #VectorTale //VectorTale是异常向量表入口 ldmia r9!, {r0-r7} //读8个异常向量 stmia r8!, {r0-r7} //保存8个异常向量到RAM区 ldmia r9!, {r0-r4} //读5个异常处理程序绝对地址 stmia r8!, {r0-r4} //保存5个异常处理程序绝对地址到RAM区 系统存储器映射 存储器重映射 异常向量表的重映射 来自不同区域的异常向量表 初始化堆栈 ARM处理器有好几种运行状态(模式),各种状态都需要有自己的堆栈,所以需要分别为这些堆栈分配空间并设置好各自的堆栈指针 每一种状态的堆栈指针寄存器(SP)都是独立的(System 和User 模式使用相同的SP 寄存器)。因此对程序中需要用到的每一种模式都要给SP 寄存器定义一个堆栈地址。方法是改变状态寄存器CPSR内的状态位,使处理器切换到不同的状态,然后给SP 赋值。(注意不要切换到User模式进行User 模式的堆栈设置,因为进入User 模式后就不能再操作CPSR 回到别的模式了。可能会对接下去的程序执行造成影响。) 一般堆栈的大小要根据需要而定,但是要尽可能给堆栈分配快速和高带宽的存储器。堆栈性能的提高对系统整体性能的影响是非常明显的。 堆栈初始化代码示例 MRS R0, CPSR ; CPSR - R0 BIC R0, R0, #MODEMASK ; 安全起见,屏蔽模式位以外的其它位 ORR R1, R0, #IRQMODE ; 把设置模式位设置成需要的模式(IRQ) MSR CPSR_cxsf, R1 ; 转到IRQ 模式 LDR SP, =UndefStack ; 设置SP_irq ORR R1,R0,#FIQMODE MSR CPSR_cxsf, R1 ; FIQMode LDR SP, =FIQStack ORR R1, R0, #SVCMODE MSR CPSR_cxsf, R1 ; SVCMode LDR SP, =SVCStack 初始化C环境 在目标文件中,代码、数据放在不同的段中。源文件编译链接生成含.data、.text段的目标文件,且链接器生成的.data段是以系统RAM为参考地址 故在系统启动时需要拷贝ROM或FLASH中的.data段到RAM,以完成对RAM的初始化。在初始化期间应将系统需要读写的数据和变量从ROM拷贝到RAM里运行 了解连接器的功能 将许多放在不同文件中的目标码,连接成一个可执行文件; 计算及分配位于不同节区(Session)的程序或数据。一个程序可分为程序段
文档评论(0)