四嵌入式系统初始化与操作系统的移植

上传人:乐*** 文档编号:115369211 上传时间:2019-11-13 格式:PPT 页数:157 大小:2.37MB
返回 下载 相关 举报
四嵌入式系统初始化与操作系统的移植_第1页
第1页 / 共157页
四嵌入式系统初始化与操作系统的移植_第2页
第2页 / 共157页
四嵌入式系统初始化与操作系统的移植_第3页
第3页 / 共157页
四嵌入式系统初始化与操作系统的移植_第4页
第4页 / 共157页
四嵌入式系统初始化与操作系统的移植_第5页
第5页 / 共157页
点击查看更多>>
资源描述

《四嵌入式系统初始化与操作系统的移植》由会员分享,可在线阅读,更多相关《四嵌入式系统初始化与操作系统的移植(157页珍藏版)》请在金锄头文库上搜索。

1、嵌入式系统设计与实例开发 基于32位微处理器与实时操作系统 第六讲 系统初始化分析与C/OS-移植,本节提要,1,2,嵌入式系统的初始化(软件),系统硬件接口与初始化,3,C/OS-的移植,硬件启动流程,异常 处理,读存储器工作模式,电源接口设计,ARM SOC有多组电源:Core logic、 PLL logic、 I/O Pad、Controller 每组电源一般是相互独立的,电源系统设计,外围3.3V:使用LM1085 内核1.8V:使用AS1117,时钟电路,模式一:石英晶体振荡器,模式二:外部振荡器,时钟电路设计,32.768KHz晶体 22pF电容,以帮助晶体起震,锁相环是指一种电

2、路或者模块,它用于在通信的接收机中,其作用是对接收到的信号进行处理,并从其中提取某个时钟的相位信息。或者说,对于接收到的信号,仿制一个时钟信号,使得这两个信号从某种角度来看是同步的(或者说,相干的)。 锁相环的三个组成部分和相应的运作机理是: 鉴相器:用于判断锁相器所输出的时钟信号和接收信号中的时钟的相差的幅度; 可调相/调频的时钟发生器器:用于根据鉴相器所输出的信号来适当的调节锁相器内部的时钟输出信号的频率或者相位,使得锁相器完成上述的固定相差功能; 环路滤波器:用于对鉴相器的输出信号进行滤波和平滑,大多数情形下是一个低通滤波器,用于滤除由于数据的变化和其他不稳定因素对整个模块的影响。 鉴相

3、器 环路滤波器受控时钟发生器 ,关于锁相环( PLL,Phase Locking Loop ),ARM的PLL,PLL的功能,控制ARM CPU的速度; 为SDRAM提供同步电源,系统复位,说明: nReset为低时,系统开始必要的初始化设置,在低位要保证足够长的时间,否则有些状态没有初始化,系统工作会不正常; nReset为高时,系统开始执行指令。,设置存储器工作模式,设置存储器总线宽度(Memory Bus Width):8,16,32 设置存储器工作模式(Memory Type):Big Endian Little Endian,存储器类型(异步),Asynchronous:ROM、EP

4、ROM、Flash memory 由nCE(Chip Enable)、nOE(Read)、nWE(Write)、Data bus和Address bus组成,寻址空间是由地址总线的宽度决定的。,读写总线的时序图,稳态,Read,Write,稳态,读数据的时序图,写数据的时序图,存储器类型(同步),Synchronous: DRAM 地址分为行地址RAs和列地址CAS,每隔一段时间需要刷新一次(Refresh),否则内部数据会丢失,ARM,DRAM,nCE,A0An,BA0、BA1,D0Dn,nRAS,nCAS,CLOCK,CKE,nWE,DQM,DRAM的控制,DRAM的读取步骤: (1)通过

5、地址总线将行地址传输到地址脚; (2)nRAS使能,行地址被传送到行地址选通线路中;此时nWE脚确定不被使能,故DRAM不会进行写入操作; (3)通过地址总线将列地址传输到地址脚; (4)nCAS脚被使能,列地址被传送到列地址选通线路中,nCAS脚同时有nOE的功能,此时D0Dn知道可以向外输出数据; DRAM的读取步骤: (1)通过地址总线将行地址传输到地址脚; (2)nRAS使能,行地址被传送到行地址选通线路中;此时nWE脚被使能为低电位,故DRAM进入写操作; (3)通过地址总线将列地址传输到地址脚; (4)nCAS脚被使能,列地址被传送到列地址选通线路中,此时D0Dn知道可以向内输入数

6、据;,DRAM的控制的问题,1. 延迟问题: 连续的DRAM读取操作之间的延迟,预充电延迟(Pre-charge time) nRAS转变成nCAS所需要的延迟 2.DRAM的刷新问题 DRAM只能在短时间内保持内容存储器的电荷,所以必须在内部电荷消失之前进行刷新; 由于每次读写都能刷新DRAM中的内容,所在可能采用DRAM控制器控制刷新;,ARM的系统结构,系统总线,ARM的存储器设置示例,ARM的存储器控制表,ARM存储器接口,S3C44B0/S3C2410硬件结构 与关键技术分析,S3C44B0是基于ARM7TDMI架构的,S3C2410是基于ARM920T架构的。当前,这两款芯片在嵌入

7、式开发领域广泛应用。本章主要介绍S3C44B0和S3C2410的硬件资源和整体架构,对其存储控制器、NAND Flash控制原理、时钟电源管理、通用I/O接口和中断控制器作了详细介绍,并通过一定的实例来加深读者对关键技术的理解。,S3C44B0处理器简介,S3C44B0 和 S3C2410为手持设备和普通应用提供了低成本、低功耗、高性能微控制器的解决方案。 为了降低整个系统的成本,S3C44B0 和S3C2410分别提供了很多内置功能部件,大大缩短了工程应用的开发周期。,S3C44B0微控制器,带8KB Cache的ARM7TDMI核。 内置系统存储控制器(片选逻辑,支持ROM、SRAM、Fl

8、ash、FP/EDO/SDRAM)。 LCD控制器(支持256色的STN,集成1个DMA控制器)。 2个通用DMA控制器(ZDMA)/2个外围DMA控制器(BDMA)。 2个带硬件握手的UART控制器(符合550标准)/1个SIO。 1个支持多主设备的I2C控制器。 1个IIS总线控制器。,5个PWM定时器和1个内部定时器。 看门狗定时器Watch Dog。 71个通用可编程的I/O口和8个外部中断源。 具有8通道输入的10位ADC。 具有日历功能的实时时钟RTC。 功率控制模式:Nomal、Slow、Idle和Stop。 带锁相环PLL的片内时钟发生器。,实验平台的体系结构,本节提要,1,2

9、,嵌入式系统的初始化(软件),系统硬件接口与初始化,3,C/OS-的移植,初始化程序的下载执行,目标机,宿主机,1)通过编程器将可执行目标文件烧写到BootROM(ROM、EPROM、FLASH)等; 2)通过串行口和网口下载执行目标文件,要求宿主机系统上有数据传输工具程序、目标机装载器、嵌入式监视器或目标机系统上的调试代理。 3)通过JTAG或BDM接口下载;,嵌入式系统的初始化过程,嵌入式系统的初始化过程,硬件初始化阶段,1、复位向量 ENTRY b ResetHandler ;for debug b HandlerUndef ;handlerUndef b HandlerSWI ;SWI

10、 interrupt handler b HandlerPabort ;handlerPAbort b HandlerDabort ;handlerDAbort b . ;handlerReserved b HandlerIRQ b HandlerFIQ,嵌入式系统的初始化过程(2),硬件初始化阶段,2、最小硬件初始化,1)设置适当的寄存器,使嵌入式处理器处于一个已知的状态: 获得CPU的类型; 获得或设置CPU的时钟频率。 2)禁止中断和高速缓存 3)初始化内存控制器、内存芯片和高速缓存单元,包括: 得到内存的开始地址; 得到内存的大小; 如果有要求,则还需要进行主存测试;,嵌入式系统的初始

11、化过程(3),硬件初始化阶段,3、其余硬件初始化,1)引导代码调用合适的函数对目标机系统上的全部硬件部件进行初始化,包括: 建立执行处理程序 初始化中断处理程序 初始化总线接口 初始化板级外设得到内存的开始地址;,嵌入式系统的初始化过程(4),RTOS初始化阶段,4、RTOS初始化,1)RTOS初始化 2)RTOS对象和服务初始化 任务 信号量 定时器 中断 内存管理 3)RTOS任务堆栈初始化 4)RTOS扩展部件初始化 5)启动RTOS,嵌入式系统的初始化过程(5),应用程序初始化阶段,4、应用程序初始化,ARM系统初始化的一般过程,启动(系统上电/复位),从程序入口点,初始化时钟等硬件相

12、关寄存器 1、设定PLL 2、关中断 3、设置其它寄存器,初始化存储器系统 Flash及SDRAM参数设置,初始化C所需要的存储器空间,调用C入口函数,堆栈初始化,一、设置程序入口指针,上电复位后直接到程序入口点执行,入口点一般为一个跳转表,跳转到复位处理程序处开始执行ARM系统的初始化; 启动程序首先必须定义入口指针,而且整个应用程序只有一个入口指针 例:AREA Boot,CODE,READONLY ENTRY /*设置程序入口指针*/,二、设置中断向量,ARM要求中断向量必须设置在从OX00000000地址开始,连续8*4字节的地址空间; 向量表包含一系列跳转指令,跳转到相应的中断服务程

13、序; 对各未用中断,使其指向一个含返回指令的哑函数,以防止错误中断引起系统的混乱;,中断向量表,中断向量表的程序,AREA Boot,CODE,READONLY ENTRY B Reset_handler B Undef_Handler B SWI_Handler B PreAbort_Handler B . ;for reserved interrupt,stop here B IRQ_handler B FIQ_handler,三、初始化时钟和设置相关的寄存器,通过设置时钟控制器来确定CPU的工作频率,设置中断控制寄存器屏蔽中断,四、初始化存储器系统,存储器类型和时序配置(参考芯片手册,设

14、置与内存映射相关的寄存器) 一个复杂的系统可能存在多种存储器类型的接口,需要根据实际的系统设计对此加以正确配置。对同一种存储器类型来说,也因为访问速度的差异,需要不同的时序设置。 通常Flash 和SRAM 同属于静态存储器类型,可以合用同一个存储器端口; 而DRAM 因为动态刷新和地址线复用等特性,通常配有专用的存储器端口。 存储器端口的接口时序优化是非常重要的,影响到整个系统的性能。因为一般系统运行的速度瓶颈都存在于存储器访问,所以存储器访问时序应尽可能地快;但同时又要考虑由此带来的稳定性问题。只有根据具体选定的芯片,进行多次的测试之后,才能确定最佳的时序配置。,存储器地址分布,有些系统具

15、有非常灵活的存储器地址分配特性,进行存储器初始化设计的时候一定要根据应用程序的具体要求来完成地址分配。 一种典型的情况是启动ROM 的地址重映射(remap)。当一个系统上电后程序将自动从0 地址处开始执行,因此在系统的初始状态,必须保证在0 地址处存在正确的代码,即要求0 地址开始处的存储器是非易性的ROM 或Flash 等。但是因为ROM 或Flash 的访问速度相对较慢,每次中断发生后都要从读取ROM 或Flash 上面的向量表开始,影响了中断响应速度。因此有的系统便提供一种灵活的地址重映射方法,可以把0 地址重新指向到RAM 中去。在这种地址映射的变化过程当中,程序员需要仔细考虑的是程序的执行流程不能被这种变化所打断。,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区,为保证重映射之后提供正确的中断入

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号