




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第1111章章 基于ARM的嵌入式系统软件设计技术 1嵌入式系统软件结构 2基于嵌入式操作系统的软件开发技术 1.常见的嵌入式操作系统 2.引导程序的开发:bootloader 3.驱动程序的开发 4.应用程序的开发 1/52 n简单简单 的嵌入式应应用 若嵌入式系统的功能需求比较简单,嵌入式系统软件只 需完成较简单的监控、驱动和处理功能,则不需要嵌入式 操作系统的支持。 如基于8051的应用:玩具、家电、汽车等的控制系统 n复杂杂的嵌入式应应用 若嵌入式系统的功能需求比较复杂,需要图形用户界 面、网络管理、存储管理、进程/线程管理或需要支持二 次开发等,则通过嵌入式操作系统的帮助,可以加快嵌入 式系统软件的开发进度和可靠性。 如基于ARM的应用:手机、 PDA 复杂嵌入式系统软件的一般结构 ARM+M+I/O 硬件抽象层、底层封装、部分由OS提供 BOOT LOADER 上电复位 复杂嵌入式系统软件工作流程 完成基本硬件模块的初始化(如CPU寄存器初始 化、RAM初始化、中断控制寄存器初始化等), 这由汇编代码完成。 将OS内核和用户文件映射(装入)至运行空间, 从NAND Flash或NOR Flash装载至RAM,或直 接在NOR Flash上运行,一般用C代码完成 为OS内核设置启动参数,初始化必要的数据空间 等,之后调用内核(即跳转至内核的入口点), 系统完成启动过程,一般用C代码完成。 板级初始化 引导系统 系统初始化 应用初始化 应用程序中多任务及其资源(如信号量、队列) 的创建,以及与应用相关的一些初始化工作。 多任务运行 OS执行用户应用程序(即跳转至应用程序的入口 点),一般为一个无限循环过程。这样,用户程 序在OS的管理和调度下运行。 BootLoader完成 n嵌入式实时操作系统 uRTlinux uuC/OS II uVxworks (wind river systems公司) u n嵌入式非实时操作系统 u嵌入Linux系统 uWindows CE、Embedded windows xp( Microsoft公司) uAndroid(基于Linux内核,谷歌公司推出) u 嵌入式操作系统 LINUX 嵌入式操作系统统 Linux是一个免费的、源代码开放的操作系统; n1991年11月,芬兰赫尔辛基大学的学生 Linus Torvalds写了个小程序, 取名为Linux,放在互联网上。他表达了一个愿望,希望借此搞出一个 操作系统的“内核”来,这完全是一个偶然事件; n1993,在一批高水平黑客的参与下,诞生了Linux 1.0 版 ; n1994年,Linux 的第一个商业发行版 Slackware 问世; n1996年, Linux 版本 1.2.1获得美国国家标准技术局的计算机系统实验 室确认; n2001年,Linux2.4版内核发布 ; n2003年,Linux2.6版内核发布; n2010年,Linux2.6.36版内核发布; n 几种流行的Linux OS发发行版本 引导程序BootLoader n是嵌入式系统在加电启动后执行的第一段代码,功能类似pc 机的BIOS,通常需要固化在目标板中(启动后,BootLoader 必须映射到地址0x00000000处,这里存放的实际为一条跳转 指令,课本P232); n主要负责CPU、存储器及相关硬件的初始化,以及将装载操 作系统映像到内存中,然后跳转到规定的地址启动操作系统 运行。 Bootloader是严重依赖硬件而实现的,每一种不同体系结构的处理 器都有不同的Bootloader,甚至同一种处理器的外围硬件配置不同,其 Bootloader也有差别。因此开发特定的Bootloader是构建嵌入式linux系统 之前的一项必要的基础工作。 Bootloader的开发发 Stage1(汇编实现) 1.基本硬件设备初始化:CPU时钟频 率,寄存器,存储器数据宽度 、访问 周期、刷新周期,中断系统,I/O端口等; 2. 为第二阶段准备RAM空间,设置堆栈; 3.复制第二阶段代码到RAM中,并跳转到第二阶段入口点 Stage2(C实现) 1.初始化本阶阶段要使用到的硬件设备设备 ,实现对实现对 板级驱动级驱动 的 支持; 2.检测检测 系统统内存映射; 3.将内核映像和根文件系统统从flash读读到RAM中; 4.为为内核设设置启动动参数; 5.将PC指针针指向内核的入口处处,调调用内核。 Linux 环环境下BootLoader种类类 Bootloader描 述x86ARMPowerPC LILO Linux磁盘引导程序 是否否 GRUB GNU的LILO替代程序 是否否 Loadlin 从DOS引导Linux 是否否 ROLO 从ROM引导Linux而不需要BIOS 是否否 Etherboot 通过以太网卡启动Linux系统的固件 是否否 LinuxBIOS 完全替代BUIS的Linux引导程序 是否否 BLOB LART等硬件平台的引导程序 否是否 U-boot 通用引导程序 是是是 u-boot uboot全称 Universal Boot Loader,支持ARM体系等多种处处 理器,包含常见见的外设设的驱动驱动 ,是一个开源的、功能强大的板极 支持包;由德国DENX软软件工程中心创创建并维护维护 。 u-boot主要包括以下目录录: ninclude:U-Boot头文件,其configs子目录下是与目标板相关的配置头文件; nboard:目标板相关文件,包含SDRAM、Flash驱动等; ncpu:与处理器相关文件,如网口、中断初始化等; nlib_xxx:处理器体系相关的文件,如lib_ppc, lib_arm目录分别包含与PowerPC、 ARM体系结构相关的文件; ndriver: 通用设备驱动,如CFI FLASH驱动; nnet:与网络功能相关的文件目录,如bootp,nfs,tftp; npost:上电自检文件目录。 ndoc:U-Boot的说明文档; nexamples:可在U-Boot下运行的示例程序; ntools 用于创建U-Boot S-RECORD和BIN镜像文件的工具 S3C2440启动方式(采用BootLoader启动) 韩国三星公司的S3C2440支持Nor Flash和 Nand Flash启动, 可以通过硬件跳线(引脚 OM1:0)设置启动方式。具体含义如下: 1.OM1:0=00时,处理器从NAND Flash启动 2.OM1:0=01时,处理器从16位宽度的Nor Flash启动 3.OM1:0=10时,处理器从32位宽度的Nor Flash启动 4.OM1:0=11时,处理器从Test Mode启动 S3C2440 Nand Flash启动过动过 程: 在系统上电后,Nand Flash控制器会自动的把 Nand Flash上的前4K U- BOOT数据(stage1)搬移 到内部SRAM的地址最低 端(此SRAM被称为 Steppingstone); CPU从内部RAM的 0x00000000位置开始启 动并在uboot前4K启动代 码里完成S3C2440的核心 配置,然后把U-BOOT剩 余部分(stage2)搬到 RAM中运行; 基于嵌入式LINUX的设备驱动设备驱动 程序 驱动程序是操作系统内核与硬件设备之间的接口,驱动 程序屏蔽了硬件的细节,完成以下功能: u对设备初始化和释放; u对设备进行管理; u读取应用程序传送给设备文件的数据或者回送应用程序请 求的数据; u检测和处理设备出现的错误。 Linux系统将设备分为三种基本的设备类型,每一种类型 的设备对应着不同形式的驱动,这三种设备分别为字符设备 ,块设备和网络设备,。 Linux的内核就是由各种驱动组成的,内核源码中大约有 85%是各种驱动程序的代码,可在同类驱动的基础上进行修 改以符合具体的单板。 LINUX的设备驱动程序开发流程 编写一个Linux设备驱动程序流程大致如下: u查看原理图、数据手册,了解设备操作方法; u在Linux内核中找到相近的驱动程序,以它为模板进行开 发,有时候需要从零开始; u实现驱动程序的初始化:如向内核注册驱动程序,这样应 用程序传入文件名时,内核才能找到相应驱动程序; u设计所要实现的操作,如open( ),close( ),read( ),wirte( )等函数; u实现中断服务(如果有中断操作); u编译或用命令加载该驱动程序到内核; u驱动程序的测试。 本章要求 理解嵌入式软件系统的结构及功能; 理解系统引导加载(bootloader)技术; 了解嵌入式操作系统(Linux)的任务、性能 指标及移植技术; 了解嵌入式操作系统
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药店日常活动方案
- 构造艺术考试题及答案
- 高中水平考试题及答案
- 幼儿园教学教案设计:病菌快走开卫生习惯情景模拟课
- 妇幼健康考试题及答案
- 物流运输计划模板含成本分析与时间规划
- 企业安全培训计划实施与记录表单安全生产标准规范版
- (正式版)DB15∕T 3666-2024 《灌木发酵饲料生产技术规程》
- (正式版)DB15∕T 3400-2024 《沿黄灌区盐碱地种植耐盐碱植物技术规程》
- (正式版)DB15∕T 3360-2024 《饲草大麦裹包青贮技术规程》
- 2025年社工工作者考试真题及答案
- 同城理发店转租合同范本
- 2021-2025年高考地理真题知识点分类汇编之地球的运动
- 医院反诈宣传课件
- 2025年日本n4试题及答案
- 2025年秋期人教版3年级上册数学核心素养教案(第2单元)(教学反思有内容+二次备课版)
- 2025乡村医生培训考试试题库及参考答案
- 智慧工业园区AI大模型数字化平台建设方案
- 雨水监测管理办法
- 驾驶员职业健康管理制度
- 腺样体肥大切除病例分析
评论
0/150
提交评论