解析单片机上应用的一款Boot Loader

解析单片机上应用的一款Boot Loader
解析单片机上应用的一款Boot Loader

解析单片机上应用的一款Boot Loader

来源:电子设计应用作者:沈阳农业大学李娜许童羽李征明

Boot Loader概述

Boot Loader的概念及功能

在以ARM为代表的嵌入式系统中,操作系统内核运行前的硬件初始化、建立内核镜像等都是由Boot Loader来完成的。在PC机上,最先启动的是主板上的BIOS,BIOS负责对硬件初始化,给操作系统提供硬件的接口函数等等,但在嵌入式操作系统中并没有BIOS,因此整个嵌入式操作系统的加载启动任务就完全由Boot Loader来完成。

图1 Boot Loader流程图

Boot Loader通常存放于目标平台的非易失存储介质中,主要用于完成由硬件启动到操作系统启动的过渡,能够在上电后对SDRAM、CACHE、FLASH等硬件部分进行检测,建立内存空间的映射图和内核镜像,建立通讯通道和调试通道等,还能够提供Shell Menu检测设置菜单和相应的检测程序,引导操作系统及应用程序,从而为最终调用操作系统内核准备好正确的环境。

目前,嵌入式系统中广泛应用的UBoot、vivi、blob、armboot等Boot Loader在原有功能的基础上,增加了更多的功能并大大增强了移植性。嵌入式系统中硬件的种类繁多,差距较大,而Boot Loader是严重依赖于硬件而实现的。不同的CPU体系需要不同的Boot Loader,即便是同一种体系结构,由于其它硬件设备配置的不同,如板卡硬件地址的分配、RAM芯片的型号等,也需要对Boot Loader作一定的修改才能使用。因此,开发人员需针对不同的处理器和开发板,对Boot Loader进行定制,来实现不同的功能。

Boot Loader的操作模式

Boot Loader通常包括“启动加载(Boot loading)”和“下载(Downloading)”两种模式。这两种操作模式仅对开发人员具有一定的意义。

启动加载模式:Boot Loader从目标机上的固态存储设备上将操作系统加载到RAM 中运行,无需用户介入。此模式是Boot Loader正常的工作模式。

下载模式:在这种模式下,目标机上的Boot Loader通过串口连接或网络连接等手段从主机上下载文件到目标机的RAM中,然后再烧写到目标机上的固态存储设备中。通常在第一次安装内核与根文件系统以及系统的更新时使用此模式。

Boot Loader的具体实现

硬件配置

本文以UP-NetARM3000为例来介绍Boot Loader的工作机理和运行流程。UP-NetARM3000使用的是三星公司生产的S3C44B0X芯片,这是三星公司推出的一款高性价比和高性能的微控制器。它具有32位的ARM7TDMI内核,外部时钟为8MHz,内部倍频最高可达72MHz,工作频率为64MHz。S3C44B0X通过提供全面的、通用的片上外设,大大减少了系统中处理器以外的元器件配置,从而使系统的成本大大降低,它集成的各种片上功能包括:8KB Cache、扩展内存控制器、2通道UART带有握手协议、1通道SIO、2个通用DMA、2个外设用DMA、外部存储控制器、LCD控制器、IIC/IIS总线接口、5个通道PWM定时器和一个内部定时器、看门狗定时器、71个通用I/O口、8个外部中断源、8通道10位ADC、片上PLL时钟产生器等。

Boot Loader的启动流程

大多数Boot Loader通常都分为Stage1和Stage2两大部分。Stage1通常由汇编语言编写,即Boot Loader的启动代码,旨在对部分硬件设备进行初始化。Stage2即Boot Loader 的主代码,为了实现更加复杂的功能,使代码具有更好的可读性和可移植性,通常由C语言来实现,主要用来加载操作系统内核。具体启动流程如图1所示。

· Stage1部分

设置CPU的速度、时钟频率及中断控制寄存器

Boot Loader的启动代码首先定义了一个全局入口,然后对异常向量进行设置。由

于Boot Loader严重的依赖于硬件而实现,因此根据CPU体系结构和具体的硬件配置来设置CPU的速度、时钟频率及中断控制寄存器。除完成上述功能,启动代码还需要实现禁止看门狗定时器、设置时钟控制寄存器、设置锁相环控制寄存器、使能所有功能单元块时钟等功能。另外,系统中断的设置也是在这部分实现的,主要是中断向量表和IRQ中断入口地址的设置。

存储器的分配

S3C44B0X的存储系统具有一些主要特征,如:支持数据存储的大、小端选择;地址空间具有8个存储体,每个存储体可达32MB;对所有存储体的访问大小均可以进行改变;7个存储器的起始地址固定,1个存储器的起始地址可变。在本文介绍的这款Boot Loader中,启动代码通过对BUSWIDTH的赋值来使能各个存储器。其具体对应情况如右面所示:

启动代码还有一个重要的任务—初始化内存控制寄存器,它主要通过设置13 个从0x01c80000开始的寄存器来实现,包括BWSCON总线宽度与等待状态控制寄存器、BANKCONn 块控制寄存器。标号SMRDATA处为将要赋予内存控制寄存器的具体值。以ResetHandler标号地址为参照,根据其偏移地址推算出SMRDATA标号地址的实际位置,然后读取该处的数据对内存控制寄存器进行赋值。

图2 映像文件地址映射

形成可执行文件

在嵌入式系统应用程序中,可执行文件通常包括RO(Read_Only)段、RW(Read_Write)段和BSS段。当需要烧写内存中的映像文件到FLASH中时,通常都会把Boot Loader代码先移到FLASH的高地址空间中,因为通常RO的地址都是0x0,防止在烧写时覆盖本来在FLASH 中已有的Boot Loader代码。程序编译、链接时要求编译器设置的Read_Only地址要和最终代码下载的地址相同,如图2所示。

Boot Loader映像文件最终运行的地址空间是0Bank,因此将RO Base设置为0x0,RW Base设置为0x0c60000,经编译后生成bin格式的可执行文件烧写到FLASH0地址处。在程序运行之前,RO段和RW段全部放在FLASH中,RO段可以直接在FLASH中运行,而RW必须调入SDRAM中才可以运行,因此,程序运行过程中RO段保持已设置完毕的0x0地址不变,而必须将RW段拷贝到RW Base即0x0c60000地址处,并将ZI段进行零初始化。

·Stage2部分

初始化硬件

Boot Loader主程序对串口进行调试并对本阶段所涉及的硬件进行检测后,通过串口下载镜像到目标机中。主代码中定义了LCD_Test()、LED_Test()、ADTest()、KeyTest()、BootSystem()等函数测试部分硬件的功能。以AD的检测函数为例简要介绍检测函数功能具体的实现。ADTest_Loop()是针对AD硬件的操作函数,而Set_UartLoopFunc()函数是把ADTest_Loop()设置到串口轮询函数数组中(串口轮询函数数组中还包括其他的检测函数),AD检测函数在对目标进行操作的同时查询是否有停止命令,如果Uart_Getch()函数没有查询到串口有输入的停止命令,调用串口轮询数组中的其他函数,否则立刻返回。

检测内存及引导系统

在Boot Loader的主程序中需要检测重要的硬件——内存,检测完毕后会分别通过串口和LCD输出提示信息。接下来会等待查询是否有键按下,当没有键按下时,正常引导操作系统,否则显示Shell Menu。

Boot Loader程序在获得系统的控制权之后,对关键硬件检测并且没有发现故障,控制台也没有发出启用Shell Menu检测菜单的情况下,根据文件系统的管理和支持,从NAND FLASH中读取操作系统或应用程序的代码到SDRAM的指定位置,然后把程序指针转移到该位置,从而使操作系统获得控制权,完成引导过程。

static void(*run)(void)=(void(*)(void))DOWNLOAD _ADDRESS,在程序中定义得此函数指针能够把指定位置的地址强制转换为函数指针类型,然后使用run()函数即可运行该地址处的指令。在实现引导功能的代码中,打开并读取指定的系统文件到指定的位置DOWNLOAD_ADDRESS(0xc080000)处即完成了装载,将程序指针指向已指定的这个位置,使用run()函数运行该地址处的指令,即可实现控制的转移。当看到屏幕上显示操作系统的启动信息后,Boot Loader完成任务,成功的引导了操作系统。

结语

本文介绍了在基于S3C44B0X的UP-NETARM3000的实验板上移植uCOS系统的Boot Loader。不同的开发板具有不同的CPU体系结构和外围硬件设备,但Boot Loader的工作机理都是类似的,明确开发板的硬件资源和具体即将移植的操作系统后,对Boot Loader进行具体裁减和修改。

参考文献:

1. 张仑编著.32位嵌入式系统硬件设计与调试.北京:机械工业出版社,2005.5

2. 金鑫. S3C44B0X下的Boot Loader开发.工业控制计算机,2005(8)

3. 严国清. S3C44B0X中Boot Loader的实现.数据采集与嵌入式系统,2004(6)

单片机教程详细图解-新华龙单片机学习教程

新华龙单片机学习入门教程基于本人学习单片机的痛苦经历,特编写本教程,以此献给广大的单片机初学者,希望您能从中受益。 单片机老鸟寄语:本教程乃最通俗易懂之单片机教材也,如果您还是看不懂,请千万不要涉足此行,以免误入歧途,耽误您的前程*_* 拿到这本教程您首先就会想,什么是 IAP 教学法?是不是一种什么全新的教学方法?当然不是,我可没有那么大的本事,其实这只是我杜撰的一个新名词,意思就是In Applications Program(在应用中编程),当然这只是针对单片机教学,说法是否正确,还得您说了算。 至于为什么要提这种说法,那我倒想说几句。大家都知道,学习电子技术是一件非常无聊和枯燥的事情,为什么会有这种想法,就是因为我们传统的教学方法只重理论而忽略了实践,要一个人记住那些空洞而有无聊的理论知识实在不是一件容易的事,好在我们总算熬过来了,不管如何,也多多少少的学习了一些电子基础知识。 接下来我们应该进一步掌握些什么知识呢,凡涉足此行的朋友都知道,那就是单片机。不过这可不是一件容易的事,倒不是因为单片机很难学,而实在是我们身边很难找到一本专为单片机入门者而编写的教材。翻一下传统的单片机教材,都好象是为已经懂单片机的人而写的,一般总是以单片机的结构为主线,先讲硬件原理,然后是指令,接着讲软件编程,再是系统扩展和外围器件,最后举一些实例(随便说一点:很多书中的实例都是有错误的),很少涉及单片机的基础知识,如果按照此种学习方法,想进行产品开发,就必须先把所有的知识全部掌握了才可以进行实际应用。孰不知,单片机不象模拟电路和数字电路那样,只要搞懂了电路原理,再按照产品要求设计好相应的电路就可以了。它是一种以简单的硬件结构,复杂而有灵活的软件系统来完成设计的通用性产品,不同的设计者只会使用其不同的功能,几乎没有人会把它的全部指令都使用起来,所以学习使用单片机只能靠循序渐进的积累,而不可能先把它全部掌握了再去做产品开发(当然天才就例外了*_*)。 基于以上原因,本人想尝试一种全新的单片机教学方法,打破传统的循序渐进式的教学方法,以单片机的应用为蓝本,结合基本的工业控制系统和实践工作中的具体应用,不分先后顺序,将各条指令贯串于一个又一个的实验中,通过所见即所得的实验来讲解各种指令的编程方法,顺便讲解相关的基本概念,使您尽快地熟悉单片机应用的基本步骤,掌握软件编程的基本方法。 如果您学完了就能成为单片机的入门者,完全可以进行一般产品的开发;下册部分是单片机应用的提高部分,主要学习单片机的系统扩展(比如:ROM 和RAM 存储器的扩展,并行口的扩展,串行口的扩展,A/D 和D/A 与单片机的接口)以及相关开发工具和软件的使用(包括KELL C51 的应用与调试技巧,硬件仿真器的使用)等等,如果您学完了下册部分,那就得恭喜您成为了单片机开发的高手了,不过单片机的技术是在不断的发展和提高的,您也不要太骄傲哦! 为了尽量把最新的单片机知识和应用成果收录进我们的教程,希望您能不吝赐教,共同来努力把我们的教程不断的改进和完善。还是那句题外话,技术是靠不断的积累和交流才会进步的,固封自守只会更加落后。 由于时间和精力的限制,我还是希望在您学习本教程之前,自己先熟悉一点相关的电子技术知识,特别是数字电路基础,这对您学习中碰到的相关概念会有很大的帮助。

阐述对BootLoader的理解和分析

` 物理与电子工程学院 《嵌入式系统设计》 设计性实验报告 题目阐述对BootLoader的理解和分析 系别 年级专业 班级学号 学生姓名 指导教师 实验时间

目录 课题要求 ................................................................ 错误!未定义书签。 1.本课题的目的.............................. 错误!未定义书签。 2.运行环境.................................. 错误!未定义书签。正文 . (2) 一.BootLoad简介 (2) 二.系统设计 (5) 三.技术实现问题 (7) 四.总结与体会 (8) 设计性实验报告成绩:指导教师签名: (10)

摘要 在嵌入式系统中,由于不具有自举开发的能力,其BootLoader除了引导操作系统之外,还要担负辅助开发的责任,如与主机通信、与用户交互、更新系统等功能。 虽然嵌入式系统不可能实现通用的BootLoader,但是各系统的BootLoader依然具有一定的相同性,因此,嵌入式系统中常用的BootLoader也都具有可移植性,可以在大部分代码不更改的情况下,根据本系统的情况,通过修改具体硬件相关的代码并进行相应的配置来使用。 关键字:概述,作用,操作模式,分类,基本原理。 正文 一.BootLoad简介 1.1 BootLoader的概述 BootLoader是操作系统和硬件的纽带,它负责初始化硬件,引导操作系统内核,检测各种参数给操作系统内核使用。事实上,一个功能完备的大型BootLoader,就相当于一个小型的操作系统。在嵌入式领域中,操作系统移植的关键在于BootLoader的移植以及操作系统内核与硬件相关部分的移植。Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射表,从而将系统软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常,Bootloader是严重依赖于硬件而实现的,特别是在嵌入式世界里,嵌入式产品型号众多,硬件环境复杂,建立一个通用的Bootloader几乎是不可能的。尽管如此,仍然可以对Bootloader归纳出一些通用的概念来,以指导特定的Bootloader设计与实现。因此,正确进行Linux移植的条件是具备一个与Linux配套、易于使用的Bootloader,它能够正确完成硬件系统的初始化和Linux的引导。 Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。对于两块不同的嵌入式板而言,即使它们使用同一种处理器,要想让运行在一块板子上的Bootloader程序也能运行在另一块板子上,一般也都需要修改Bootloader的源程序。反过来,大部分Bootloader仍然具有很多共性,某些Bootloader也能够支持多种结构的嵌入式系统。通常它们能够自动从存储介质上启动,都能够引导操作系统启动,并且大部分都可以支持串口和以太网接口。

单片机原理及应用总结

单片机原理及应用 第一章绪论 1.什么叫单片机?其主要特点有哪些? 在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。 特点:控制性能和可靠性高、体积小、价格低、易于产品化、具有良好的性价比。 第二章80C51的结构和原理 1.80C51的基本结构 a.CPU系统 ●8位CPU,含布尔处理器; ●时钟电路; ●总线控制逻辑。 b.存储器系统 ●4K字节的程序存储器 (ROM/EPROM/FLASH,可外扩 至64KB); ●128字节的数据存储器(RAM,可 外扩至64KB); ●特殊功能寄存器SFR。 c.I/O口和其他功能单元 ●4个并行I/O口; ●2个16位定时/计数器; ●1个全双工异步串行口; ●中断系统(5个中断源,2个优先 级) 2.80C51的应用模式 a.总线型单片机应用模式 ◆总线型应用的“三总线”模式; ◆非总线型应用的“多I/O”模式 3.80C51单片机的封装和引脚 a.总线型DIP40引脚封装 ●RST/V PO:复位信号输入引脚/备用 电源输入引脚; ●ALE/PROG:地址锁存允许信号 输出引脚/编程脉冲输入引脚;●EA/V PP:内外存储器选择引脚/片 内EPROM编程电压输入引脚;●PSEN:外部程序存储器选通信号 输出引脚 b.非总线型DIP20封装的引脚 ●RST:复位信号输入引脚 4.80C51的片内存储器 增强型单片机片内数据存储器为256 字节,地址范围是00H~FFH。低128字节的配情况与基本型单片机相同。高128字节一般为RAM,仅能采用寄存器间接寻址方式询问。注意:与该地址范围重叠的特殊功能寄存器SFR 空间采用直接寻址方式询问。 5.80C51的时钟信号 晶振周期为最小的时序单位。一个时钟周期包含2个晶振周期。晶振信号12分频后形成机器周期。即一个机器周期包含12个晶振周期或6个时钟周期。 6.80C51单片机的复位 定义:复位是使单片机或系统中的其他部件处于某种确定的初始状态。 a.复位电路 两种形式:一种是上电复位;另一种是上电与按键均有效的复位。 b.单片机复位后的状态 单片机的复位操作使单片机进入初始化状态。初始化后,程序计数器 PC=0000H,所以程序从0000H地址单元开始执行。 特殊功能寄存器复位后的状态是确定的。P0~P3为FFH,SP为07H,SBUF 不定,IP、IE和PCON的有效位为0,其余的特殊功能寄存器的状态为00H.相应的意义为: ●P0~P3=FFH,相当于各口锁存器已 写入1,此时不但可用于输出,也 可以用于输入; ●SP=07H,堆栈指针指向片内RAM

【精编推荐】bootloader代码分析报告

【精编推荐】bootloader代码分析 报告

Bootloader代码分析报告 徐凯 2007-8-3 Bootloader代码分析报告 (1) 1.启动代码分析 (1) 1.1.vector.s代码分析 (1) 1.1.1.宏定义 (5) 1.1.3.判断是否是thumb指令 (6) 1.1.4.定义新程序、引入新符号 (6) 1.1.5.定义新程序、引入新符号 (7) 1.1.6.定义系统异常向量表 (7) 1.1.7.程序跳转宏定义 (7) 1.1.8.异常处理程序定义 (7) 1.1.9.声明C主函数程序入口 (10) 1.1.10.定义vector.s中需要用到的连接器变量 (10) 1.1.11.定义从FLASH启动程序的函数 (11) 1.2.sysinit.s代码分析 (11) 1.2.1.引入S3C4510相关系统配置寄存器的地址 (18) 1.2.2.定义用于配置ROM和RAM的宏 (18) 1.2.3.定义用于配置SYSCFG的宏 (18) 1.2.4.定义用于初始化内存的函数InitMemory (18) 1.2.5.定义用于初始化内存的函数InitMemory (20) 1.2.6.定义内存重设置函数ResetMemSet (21) 1.2.7.初始化21种中断源响应函数InitInterrupt (21) 1.2.8.初始化18个外部I/O端口函数InitPort (21) 1.2.9.初始化2个计时器的函数InitTimer (22) 1.2.10.初始化2个串口函数InitUart (22) 1.2.11.初始化栈函数InitStack (23) 1.2.12.系统初始化函数InitSystem (24)

单片机在日常生活及工业生产中的应用

单片机在日常生活及工业生产中的应用 单片机,亦称单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机了解计算机原理与结构的最佳选择. 可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。 一.单片机的历史: 第一代:七十年代后期, 4 位逻辑控制器件发展到 8 位。使用 NMOS 工艺(速度低,功耗大、集成度低)。代表产品: MC6800 、 Intel 8048 。 第二代:八十年代初,采用 CMOS 工艺,并逐渐被高速低功耗的 HMOS 工艺代替。代表产品: MC146805 、 Intel 8051 。 第三代:近十年来, MCU 的发展出现了许多新特点: ( 1 )在技术上,由可扩展总线型向纯单片型发展,即只能工作在单片方式。( 2 ) MCU 的扩展方式从并行总线型发展出各种串行总线。 ( 3 )将多个 CPU 集成到一个 MCU 中。 ( 4 )在降低功耗,提高可靠性方面, MCU 工作电压已降至 3.3V 。 第四代: FLASH 的使用使 MCU 技术进入了第四代。

单片机原理及应用(答案)

1:单片机8031的XTAL1和XTAL2引脚是()引脚。 1.外接定时器 2.外接串行口 3.外接中断 4.外接晶振 2:LU表示()。 1.累加器 2.程序状态字寄存器 3.计数器 4.算术逻辑部件 3:单片机上电复位后,PC的内容和SP的内容为()。 1.0000H,00H 2.0000H,07H 3.0003H,07H 4.0800H,08H 4:8031单片机的定时器T1用作定时方式时是()。 1.由内部时钟频率定时,一个时钟周期加1 2.由内部时钟频率定时,一个机器周期加1 3.由外部时钟频率定时,一个时钟周期加1 4.由外部时钟频率定时,一个机器周期加1 5:INTEL8031的P0口,当使用外部存贮存器时它是一个()。 1.传输高8位地址口 2.传输低8位地址口 3.传输高8位数据口 4.传输低8位地址/数据口 6:当需要从MCS-51单片机程序存储器取数据时,采用的指令为() 1.MOV A, @R1 2.MOVC A, @A + DPTR 3.MOVX A, @ R0 4.MOVX A, @ DPTR 7:若PSW的RS1/RS0=10则单片机工作寄存器工作在()。 1.0区 2.1区

3.2区 4.3区 8:假定设置堆栈指针SP的值为37H,在进行子程序调用时把断点地址进栈保护后,SP的值为()。 1.6H 2.37H 3.38H 4.39H 9:单片机上电复位后,堆栈区的最大允许范围是个单元。 1.64 2.120 3.128 4.256 10:在MCS-51指令中,下列指令中()是无条件转移指令。 1.LCALL addr16 2.DJNZ direct,rel 3.SJMP rel 4.ACALL addr11 11:INTEL 8031的P0口,当使用外部存贮存器时它是一个()。 1.传输高8位地址口 2.传输低8位地址口 3.传输高8位数据口 4.传输低8位地址/数据口 12:单片机中的程序计数器PC用来()。 1.存放指令 2.存放正在执行的指令地址 3.存放下一条指令地址 4.存放上一条指令地址 13:8051单片机中,输入/输出引脚中用于专门的第二功能的引脚是()。 1.P0 2.P1 3.P2 4.P3

详解bootloader的执行流程与ARM Linux启动过程分析

详解bootloader的执行流程与ARM Linux启动过程分析 ARM Linux启动过程分析是本文要介绍的内容,嵌入式Linux 的可移植性使得我们可以在各种电子产品上看到它的身影。对于不同体系结构的处理器来说Linux的启动过程也有所不同。 本文以S3C2410 ARM处理器为例,详细分析了系统上电后bootloader的执行流程及ARM Linux的启动过程。 1、引言 Linux 最初是由瑞典赫尔辛基大学的学生Linus Torvalds在1991 年开发出来的,之后在GNU的支持下,Linux 获得了巨大的发展。虽然Linux 在桌面PC 机上的普及程度远不及微软的Windows 操作系统,但它的发展速度之快、用户数量的日益增多,也是微软所不能轻视的。而近些年来Linux 在嵌入式领域的迅猛发展,更是给Linux 注入了新的活力。 一个嵌入式Linux 系统从软件角度看可以分为四个部分:引导加载程序(bootloader),Linux 内核,文件系统,应用程序。 其中bootloader是系统启动或复位以后执行的第一段代码,它主要用来初始化处理器及外设,然后调用Linux 内核。 Linux 内核在完成系统的初始化之后需要挂载某个文件系统做为根文件系统(Root Filesystem)。 根文件系统是Linux 系统的核心组成部分,它可以做为Linux 系统中文件和数据的存储区域,通常它还包括系统配置文件和运行应用软件所需要的库。 应用程序可以说是嵌入式系统的“灵魂”,它所实现的功能通常就是设计该嵌入式系统所要达到的目标。如果没有应用程序的支持,任何硬件上设计精良的嵌入式系统都没有实用意义。 从以上分析我们可以看出bootloader 和Linux 内核在嵌入式系统中的关系和作用。Bootloader在运行过程中虽然具有初始化系统和执行用户输入的命令等作用,但它最根本

外文翻译----- Freescale单片机在汽车控制中的应用

附录A 原文: FreescaleSingle-chip Microcomputer 's in automobile control application Freescale has the rich micro processing unit (MCU), but widely uses in the automobile electrically controlled engine, the automobile body, the crew member safety, the vehicle door and the chair, the glass, ventilation and air conditioning, skylightand light control, automobile local area network's gateway, communication facility, global positioning system and in other automobile control unit. Its product mainly includes 8/16 bit micro controller (including HC08/HCS08, HC12/HCS12 and so on), 32 bit micro controllers (including PowerPC, ColdFire, ARM and so on) 1. 8 bit Single-chip Microcomputer MC68HC11F1 and application 1.1 Characteristicsof MC68HC11F1 8 bit micro controllerMC68HC11F1 is high performance flash memory technology low cost chip based on the CPU of 8 bit HC08 the CPU . Its dozens of kind of different specification's product may cause the user to make a choice conveniently, the superior price performance ratio may cause the cost of the automobile electronic products to be more inexpensive. Chief feature of MC68HC11F1 : Two kind of power saving mode, stop and waiting; working normal in 3.0-5.0V voltage ; 0, 256b, 512b or 768b in on-chip RAM, Data of RAM will be retained in standby; 0, 12kb or 20kb inon-chip RAM or EPROM; Serical Communication InterfaceSCI,8 channel, 8 bit A/D transducer ; 16 bit timer systems; 8 bit pulse accumulators, real-time interrupt electric circuit and so on. 1.2 MC68HC11F1is employed inin automobile electronic control system Since Marelli simple point electronic fuel injectionn engine management system is promoted based on MC68HC11F1,our country Shenyang gold cup sea lion passenger car , the gold cup China passenger vehicle, AnhuiChery passenger vehicle, the Tianjin Xiali passenger vehicle and so on has used this kind of engine management system . Below to take gold cup simple point Marelli logic circuit for an example, I introducesMC68HC11F1 employed inin automobile electronic control system. 1.2.1 Compositions of system As shown in Figure 1, gold cup simple point Marelli logic circuit is mainly composed of the below part: 1.Electric circuit's control core MC68HC11F1 (CPU), is Freescale 8 bit MCU of automobile special-purpose ; 2.Tristate bus driver 74HC244 with enable, is the switch of status information input for air conditioning, oil pump, EVAP solenoid valve, idling motor and so on ; 3.8 groups rises along D trigger74HC273 with reset , isdriving signaltake-off valves for idling motor, host relay, trouble lamp, air conditioning relay power and so on;

《单片机原理及应用》教学大纲

《单片机原理及应用》教学大纲 大纲说明 课程代码:3335014 总学时:48学时(讲课40学时,实验8学时) 总学分:3 课程类别:专业模块选修课 适用专业:机械设计制造及其自动化专业、电气工程及自动化专业 预修要求:数字电子技术、模拟电子技术、电路、计算机基础、微机原理、汇编语言 一、课程的性质、目的、任务: 性质:是机电一体化专业的专业必修课。是一门面向应用的、具有很强实践性与综合性的课程。 目的:通过学习利于改善学生的知识结构,使其获得利用单片机解决某些工程技术问题所需的知识,为学习后续课程及在今后工作中利用单片机实现电器控制、过程控制、信息处理和管理奠定必要的基础。 任务:通过学习要求学生掌握单片机的工作原理,了解有关单片机的基本知识,掌握该单片机的指令系统及汇编语言设计的基本方法,掌握单片机的基本功能及典型接口技术,获得相关领域内应用单片机的初步能力。 二、课程教学的基本要求: 原理部分以讲授为主;程序设计提倡多读程序、多写、多上机;硬件接口应在掌握了硬件的工作原理的基础上结合实验提高动手能力;教学手段应多样化避免单调的教学模式;实验环节重点学习单片机的硬件组成、工程应用及系统开发;课后作业的主要目的是掌握本章的学习要点,巩固前面所学的内容,为下一章学习做好准备;考试采用闭卷理论考试,结合实验和平时成绩,在内容上尽量体现单片机的基本常识性问题,结合实际,做到质、量结合。 三、大纲的使用说明: 本课程的先修课程为:《电路》《电子技术》《计算机基础》《程序设计》《微机原理》;电子机械专业学生应掌握大纲所要求的大部分内容;课程可根据总课时数而定。 大纲正文 第一章绪论学时:1学时(讲课1学时实验0学时)本章讲授要点:有关微型机的基本知识,包括分类、结构和组成,以及单片机的结构、典型产品及应用,单片机应用系统开发。 重点:单片机的特点、开发方式。 难点:单片机开发方式。 §1.1 电子计算机的发展概述 §1.2 单片机的发展过程及产品近况 §1.3 单片机的特点及应用领域

单片机原理及应用第三版张毅刚章全

第1章思考题及习题1参考答案 一、填空 1.除了单片机这一名称之外,单片机还可称为或。答:微控制器,嵌入式控制器. 2.单片机与普通微型计算机的不同之处在于其将、、和三部分,通过内部连接在一起,集成于 一块芯片上。答:CPU、存储器、I/O口、总线 3.AT89S52单片机工作频率上限为MHz。答:33MHz。 4.专用单片机已使系统结构最简化、软硬件资源利用最优化,从而大大降低和提高。答:成 本,可靠性。 二、单选 1.单片机内部数据之所以用二进制形式表示,主要是?? A.为了编程方便??? B.受器件的物理性能限制?? C.为了通用性?? D.为了提高运算速度?? 答:B 2.在家用电器中使用单片机应属于微计算机的。 A.辅助设计应用B.测量、控制应用 C.数值计算应用D.数据处理应用 答:B 3.下面的哪一项应用,不属于单片机的应用范围。 A.工业控制B.家用电器的控制C.数据库管理D.汽车电子设备 答:C 三、判断对错 1.STC系列单片机是8051内核的单片机。对 2.AT89S52与AT89S51相比,片内多出了4KB的Flash程序存储器、128B的RAM、1个中断源、 1个定时器(且具有捕捉功能)。对 3.单片机是一种CPU。错 4.AT89S52单片机是微处理器。错 5.AT89C52片内的Flash程序存储器可在线写入,而AT89S52则不能。错

6.为AT89C51单片机设计的应用系统板,可将芯片AT89C51直接用芯片AT89S51替换。对 7.为AT89S51单片机设计的应用系统板,可将芯片AT89S51直接用芯片AT89S52替换。对 8.单片机的功能侧重于测量和控制,而复杂的数字信号处理运算及高速的测控功能则是DSP 的长处。对 四、简答 1.微处理器、微计算机、微处理机、CPU、单片机、嵌入式处理器它们之间有何区别? 答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。 2.AT89S51单片机相当于MCS-51系列单片机中的哪一型号的产品?“S”的含义是什么? 答:相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K字节Flash存储器取代了87C51片内的4K字节的EPROM。 3.单片机可分为商用、工业用、汽车用以及军用产品,它们的使用温度范围各为多少? 答:商用:温度范围为0~+70℃;工业用:温度范围为-40~+85℃;汽车用:温度范围为-40~+125℃;军用:温度范围为-55~+150℃。 4.解释什么是单片机的在系统编程(ISP)与在线应用编程(IAP)。 答:单片机的在系统编程ISP(InSystemProgram),也称在线编程,只需一条与PC机USB 口或串口相连的ISP下载线,就可把仿真调试通过的程序代码从PC机在线写入单片机的Flash 存储器内,省去了编程器。在线应用编程(IAP)就是可将单片机的闪存内的应用程序在线修改升级。 5.什么是“嵌入式系统”?系统中嵌入了单片机作为控制器,是否可称其为“嵌入式系统”? 答:广义上讲,凡是系统中嵌入了“嵌入式处理器”,如单片机、DSP、嵌入式微处理器,都称其为“嵌入式系统”。但多数人把“嵌入”嵌入式微处理器的系统,称为“嵌入式系统”。目前“嵌入式系统”还没有一个严格和权威的定义。目前人们所说的“嵌入式系统”,多指后者。 6.嵌入式处理器家族中的单片机、DSP、嵌入式微处理器各有何特点?它们的应用领域有何不 同? 答:单片机体积小、价格低且易于掌握和普及,很容易嵌入到各种通用目的的系统中,实现各种方式的检测和控制。单片机在嵌入式处理器市场占有率最高,最大特点是价格低,

4510 bootloader的实现与分析

4510B BOOTLOADER (uCLinux)的实现与分析 前段时间,写了一个简单直接的4510B bootloader用来装载uclinux内核。在这篇文档里,我将结合源代码介绍一下4510 Bootloader的实现和分析。源代码很简单很直接,希望对初学的朋友有点帮助。也许在分析中有很多错误,希望大家能够指正,共同进步。Bootloader的实现基于三星4510B,假设开发板上有2M的Flash作为Boot rom,SDRAM 的大小是16M。开发环境是ADS1.2。 一.相关介绍 1.Bootloader 的基本任务 Bootloader一般是被烧录或者下载到bootrom的0x0地址处,作为上电后执行的第一部分指令,bootloader需要完成两个任务:(1). memory remap, (2). 把kernel装载到SDRAM里合适的位置上去。在完成这两个任务后,bootloader就“功成身退”了。 下面的讨论都只围绕这两个任务进行。其他跟这两个不相关的东东不在介绍范围之内,相关的东东我都会顺带介绍。 2. 4510B开发板上的存储介质 一块4510B开发板上,一般有三种存储介质:FLASH,SDRAM和4510片内的SRAM。FLASH一般是只读的(只在运行的时候),而且一般都作为bootrom使用,因为FLASH 里存储的内容在掉电的时候也不会丢失,所以flash很适合作为bootrom,用来保存bootloader。SDRAM,大家应该都很熟悉的,是可读写的存储介质,速度比FLASH快的多,在系统运行的时候,SDRAM是主要的存储介质。但SDRAM里的数据在掉电后即消失,无法用来保存数据。所以每次启动的时候都需要bootloader将内核装重新装载到SDRAM里去。在4510的片内还集成了8k的SRAM,SRAM也是可读写的,一般作为系统的cache使用。 3.一般程序结构 简单来说,一般的可执行程序都包括代码段、数据段和BSS段。也可以简单的看作由两部分组成:RO段和RW段。RO段一般包括代码段和一些常量,在运行的时候是只读的。而RW段包括一些全局变量和静态变量,在运行的时候是可以改变的(读写)。如果有部分全局变量被初始化为零,则RW段里还包括了ZI段。 RO: Read Only RW: Read Write Init ZI: Zero

基于某51单片机的智能小车控制系统

工业职业技术学院 毕业设计 课题名称基于51与单片机的智能小车控制系统 系(院)名称电气工程系 专业及班级 学生 学号 指导教师

完成日期年11 月19 日

摘要 随着我国科学技术的进步,智能化作为现代社会的新产物开始越来越普及,各种高科技也广泛应用于智能小车和机器人玩具制造领域,使智能机器人越来越多样化。智能小车是一个多种高薪技术的集成体,它融合了机械、电子、传感器、计算机硬件、软件、人工智能等许多学科的知识,可以涉及到当今许多前沿领域的技术。 整个小车平台主要以51单片机为控制核心,通过无线遥控实现前进后退和转向行驶,通过红外线传感器,实现小车的自适应巡航、避障等功能。设计采用对比选择,模块独立,综合处理的研究方法。通过翻阅大量的相关文献资料,分析整理出有关信息,在此基础上列出不同的解决方案,结合实际情况对比方案优劣选出最优方案进行设计。从电机车体,最小系统到无线遥控,红外线对管的自动寻迹再到红外线自动避障和语音控制,完成各模块设计。通过调试检测各模块,得到正确的信号输出,实现其应有的功能。最后将各个调试成功的模块结合到小车的车体上,结合程序,通过单片机的控制,将各模块有效整合在一起,达到所预期的目标,完成最终设计与制作,能使小车在一定的环境中智能化运转。 关键字:智能小车,单片机,红外传感器。

目录 第一章绪论.............................................................................................................................- 1 - 1.1.1智能循迹小车概述........................................................................................................- 1 - 1.1.2课题研究的目的和意义 ...............................................................................................- 2 - 1.1.3智能循迹小车智能循迹分类.......................................................................................- 3 - 1.1.4智能循迹小车的应用....................................................................................................- 3 - 第二章方案设计 ..........................................................................................................................- 5 - 2.1 主控系统.........................................................................................................................- 5 - 2.2单片机最小系统 ...............................................................................................................- 6 - 2.2.1 STC89C52简介...................................................................................................- 6 - 2.2.2 时钟电路...............................................................................................................- 8 - 2.2.3复位及复位电路....................................................................................................- 8 - 2.3 电机驱动模块................................................................................................................ - 10 - 2.4 循迹及避障模块............................................................................................................ - 11 - 2.5 机械系统......................................................................................................................... - 11 - 2.6电源模块......................................................................................................................... - 11 - 第三章硬件设计 ..................................................................................................................... - 12 - 3.1总体设计......................................................................................................................... - 12 - 3.1.1主板设计框图..................................................................................................... - 12 - 主板设计框图如图3-1,所需原件清单如表3-1 .................................................. - 12 -

单片机原理及应用教程第3版习题课后答案

《单片机原理及应用程序》(第三版)习题参考答案 第一章 1. 为什么计算机要采用二进制数?学习十六进制数的目的是什么? 在计算机中,由于所采用的电子逻辑器件仅能存储和识别两种状态的特点,计算机部一切信息存储、处理和传送均采用二进制数的形式。可以说,二进制数是计算机硬件能直接识别并进行处理的惟一形式。十六进制数可以简化表示二进制数。 2. (1) 01111001 79H (2) 0.11 0.CH (3) 01111001.11 79.CH (4) 11101010.101 0EA.AH (5)01100001 61H (6) 00110001 31H 3. (1) 0B3H (2)80H (3) 17.AH (4) 0C.CH 4. (1)01000001B 65 (2) 110101111B 431 5. (1) 00100100 00100100 00100100 (2) 10100100 11011011 11011100 (5) 10000001 11111110 11111111 6. 00100101B 00110111BCD 25H 7. 137 119 89 8.什么是总线?总线主要有哪几部分组成?各部分的作用是什么? 总线是连接计算机各部件之间的一组公共的信号线。一般情况下,可分为系统总线和外总线。 系统总线应包括:地址总线(AB)控制总线(CB)数据总线(DB) 地址总线(AB):CPU根据指令的功能需要访问某一存储器单元或外部设备时,其地址信

息由地址总线输出,然后经地址译码单元处理。地址总线为16位时,可寻址围为216=64K,地址总线的位数决定了所寻址存储器容量或外设数量的围。在任一时刻,地址总线上的地址信息是惟一对应某一存储单元或外部设备。 控制总线(CB):由CPU产生的控制信号是通过控制总线向存储器或外部设备发出控制命令的,以使在传送信息时协调一致的工作。CPU还可以接收由外部设备发来的中断请求信号和状态信号,所以控制总线可以是输入、输出或双向的。 数据总线(DB):CPU是通过数据总线与存储单元或外部设备交换数据信息的,故数据总线应为双向总线。在CPU进行读操作时,存储单元或外设的数据信息通过数据总线传送给CPU;在CPU进行写操作时,CPU把数据通过数据总线传送给存储单元或外设9.什么是接口电路? CPU与接口电路连接一般应具有哪些信号线?外部设备与接口电路连接一般应具有哪些信号线? CPU通过接口电路与外部输入、输出设备交换信息, 一般情况下,外部设备种类、数量较多,而且各种参量(如运行速度、数据格式及物理量)也不尽相同。CPU为了实现选取目标外部设备并与其交换信息,必须借助接口电路。一般情况下,接口电路通过地址总线、控制总线和数据总线与CPU连接;通过数据线(D)、控制线(C)和状态线(S)与外部设备连接。 10. 存储器的作用是什么?只读存储器和随机存储器有什么不同? 存储器具有记忆功能,用来存放数据和程序。计算机中的存储器主要有随机存储器(RAM)和只读存储器(ROM)两种。随机存储器一般用来存放程序运行过程中的中间数据,计算机掉电时数据不再保存。只读存储器一般用来存放程序,计算机掉电时信息不会丢失。 11.某存储器的存储容量为64KB,它表示多少个存储单元?64×1024 12. 简述微型计算机硬件系统组成。

单片机原理及应用作业答案

作业答案0-1 绪论 1.单片机是把组成微型计算机的各功能部件即(微处理器(CPU))、(存储器(ROM和RAM))、(总线)、(定时器/计数器)、(输入/输出接口(I/O口))及(中断系统)等部件集成在一块芯片上的微型计算机。 2.什么叫单片机其主要特点有哪些 解: 将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)、中断系统和其他多种功能器件集成在一块芯片上的微型计机,称为单片微型计算机,简称单片机。 单片机的特点:可靠性高、便于扩展、控制功能强、具有丰富的控制指令、低电压、低功耗、片内存储容量较小、集成度高、体积小、性价比高、应用广泛、易于产品化等。 第1章 MCS-51单片机的结构与原理 15. MCS-51系列单片机的引脚中有多少根I/O线它们与单片机对外的地址总线和数据总线之间有什么关系其地址总线和数据总线各有多少位对外可寻址的地址空间有多大 解: MCS-51系列单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输入驱动器和输入缓冲器。通常把4个端口称为P0~P3。在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。 MCS-51系列单片机数据总线为8位,地址总线为18位,对外可寻址空间为64KB。25. 开机复位后,CPU使用的是哪组工作寄存器(R0-R n)它们的地址是什么CPU如何确定和改变当前工作寄存器组(R0-R n) 解: 开机复位后,CPU使用的是第0组工作寄存器。它们的地址是00H-07H。CPU通过对程序状态字PSW中RS1和RS0的设置来确定和改变当前工作寄存器组。 27. MCS-51单片机的时钟周期、机器周期、指令周期是如何定义的当主频为12MHz的时候,一个机器周期是多长时间执行一条最长的指令需要多长时间 解:

相关文档
最新文档