嵌入式简介

上传人:工**** 文档编号:486354004 上传时间:2023-12-06 格式:DOCX 页数:8 大小:22.89KB
返回 下载 相关 举报
嵌入式简介_第1页
第1页 / 共8页
嵌入式简介_第2页
第2页 / 共8页
嵌入式简介_第3页
第3页 / 共8页
嵌入式简介_第4页
第4页 / 共8页
嵌入式简介_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《嵌入式简介》由会员分享,可在线阅读,更多相关《嵌入式简介(8页珍藏版)》请在金锄头文库上搜索。

1、来,嵌入式系统的发展在国内可谓如火如荼,很多公司都急需嵌入式系统方面的开发人员。 然而,在高校中,嵌入式系统的教学却较为滞后,很多高年级的本科生和刚入学的研究生都 苦于不知从何学起。在本文中,笔者将根据自己的嵌入式系统开发和教学经验,简要介绍嵌 入式系统的学习方法,力求能帮助初学者找到一条入门之路。什么是嵌入式系统?学习嵌入式系统,首先应该明确什么是嵌入式系统,否则费力去学,却不知所学为何物, 岂不惘然?嵌入式系统的定义很多,这也是困扰嵌入式系统学习的一个因素。笔者根据自己 开发和教学过程中的理解,以及对各种嵌入式系统的应用进行总结,提出了嵌入式系统的简 单定义:嵌入式系统是嵌入式计算机系统的

2、简称,这个定义突出嵌入式计算机系统和普通计 算机系统的共性。下表列出了嵌入式系统的一些典型的 应用: 智能机器人(S D R 4,火星登陆车)娱乐和消费电子(Gameboy Advanee. Sony PSP)网络通信产品(Smartphone)军用设备(军用PDA)汽车(车载导航,自动驾驶,娱乐系统)智能仪器(虚拟仪器) 安全防护(防火,防盗) 环境保护(探空气球) 银行和商业消费(ATM)以火星登陆车为例来分析一下嵌入式系统的定义。火星登陆车虽然听起来感觉在技术上有些 高不可测,但是本质就是嵌入式计算机系统的应用,其核心就是一个计算机系统,而这个计 算机系统的组成同传统的计算机系统在本质上

3、没有什么差别。两者的显著不同之处就在于, 用于火星登陆车的计算机系统被安装到了火星登陆车上。当然,一个计算机系统能够被安装 在火星登陆车上,是需要进行很多特殊设计的。但是从本质上讲,嵌入式系统的核心概念还 在计算机系统。嵌入式系统学习的重点也在计算机系统上。一方面,学习者需要牢固掌握计 算机系统本身的概念,更重要的是学习嵌入系统的开发过程同传统计算机系统开发过程的差 别。这里需要指出的是,很多学习者本来就没有从事过完整计算机系统的开发,高校的教学 是以程序设计为中心的,计算机系统的构成,操作系统的原理,编程语言等课程都是为了能 够让学生更好的使用计算机系统进行程序设计,在现有的计算平台上来设计

4、实现各种应用, 学生一般没有机会学习一个完整的计算机系统是如何构建,并亲身参与到构建的每一个过 程。而对于嵌入式系统而言,从事平台开发的人就是要亲自去开发出一个完整的计算机系统, 这个过程包括 l需求分析 2硬件设计 3驱动程序4 Bootloader & BSP (板级支持包)5操作系统的移植6应用程序的开发7性能检查嵌入式系统教学的目的就是教会学生如何根据需求去建立满足某种特殊行业需求的嵌入式 计算机系统。让学生学会如何构件硬件平台,进行硬件设计,选择能够满足应用要求的最佳 的嵌入式操作系统,并完成Bootloader,BSP和驱动程序的编写,移植,调试等过程。为 了满足行业需求,最终要在

5、所建立的系统上编写调试相应的应用程序,并进行性能的测试和 检查。你是谁,你需要学习哪些东西?如果你的工作只是需要在PC机上编写一个图片浏览程序,那么你就没有必要去了解当 系统收到一个ARP请求包后应该如何回应。同样的道理,嵌入式系统的学习也是有很多方 面的。就嵌入式系统的设计和实现而言,基本上需要四种不同的工作:系统设计工作,硬件 设计工作,驱动程序和操作系统移植工作和应用程序设计开发工作。 系统设计工作在系统的设计阶段,系统分析师将根据需求确定系统的硬件的基本构成,根据系统的需 求选择使用那种处理器,使用哪种操作系统,使用那些软件开发工具。系统分析师往往是较 为完整的参与过嵌入式系统设计的全

6、过程,对于系统应用的行业较为了解,对于嵌入式系统 本身的开发流程十分清楚的人。硬件设计工作系统硬件设计人员需要根据系统分析师的设计结果,进行硬件原理图的设计。通常需要 硬件设计人员熟悉嵌入式系统的硬件构成。硬件设计人员需要了解常用的嵌入式系统处理 器,存储器(Flash,SDRAM),以太网MAC芯片,音频/视频编解码芯片,电源管理芯 片,总线接口电路(USB, PCI),液晶显示模块,可编程逻辑器件(FPGA/CPLD),无线网络 通信模块(Bluetooth, WLAN,GPRS)等硬件电路构成元素的基本工作原理,连接使用方法, 使用注意事项,基本调试方法等内容。在网络上能找到很多公司的评

7、估板的原理图,对于这 些原理图要仔细研究,摸清处理器同存储器,网卡,液晶模块等器件的连接方法和原因。通 过对这些电路的研究,能够较快地了解整个嵌入式系统的构成,这些电路同实际产品中的电 路虽有一定差别的,特别是对于手持设备,但这些差别不影响初学者学习嵌入式系统的硬件 设计基本构成。以上这些知识,往往需要较长时间的学习和积累,需要亲自参与实践的机会。对于刚刚 接触嵌入式系统硬件开发的学生来讲,一般不可能全部了解这些知识,但也不会是通通一无 所知。笔者结合自己开发和教学的经验认为:首先应该选定一款主流且较为简单的嵌入式系 统处理器,比如基于ARM7TDMI内核的AT91M40800,S3C44B0

8、等嵌入式系统处理器, 学习32位RISC处理器的编程模型,指令集。高校教学中,单片计算机课程一般以8051 系列单片为核心讲解,由于现代32位处理器的结构和开发方式同8位单片机有着较大的差 别,学习者还是需要花一点力气来研究以下32位处理器的。以ARM处理器为例,学习者 就需要理解处理器的多种工作模式,备份寄存器,RISC指令集的特点,MMU和虚拟地址, 中断处理过程等内容。在学习指令集的过程中,最好能够每学习几条指令,就使用这几条指 令在模拟器上实验以下,观察处理器执行的结果。这个过程一方面是学习者对于指令本身的 学习能够取得一个比较好的效果,另外也是对开发工具本身的一种学习。接着,就可以开

9、始 学习片上资源的使用和配置方法。这时就需要一个方便使用的开发板,学习者能够通过 JTAG仿真器将开发板同调试PC机相连,进行程序的下载,调试。特别是要仔细研究系 统的初始化过程和中断处理的过程。在开发过程中如果遇到问题,应自己分析问题产生的原 因,通过分析缩小问题可能产生的范围,最终找到问题的所在。最重要的就是要保持一种解 决问题的信心,面对困难如何处理,往往能够决定最终系统是否能够调试成功。然后,学习 者可以开始仔细学习处理器同存储器的连接,存储空间的配置,各种外扩器件,如网卡, AC97声卡的工作原理和使用方法。嵌入式系统硬件设计中往往需要使用可编程器件,学习 者还需要一定的时间来学习使

10、用常用的可编程器件(C P L D / F P G A),常用的有刈inx 和Altera公司的产品。进行系统硬件原理图设计,就需要使用原理图设计的E D A工具, 常用的E D A原理图设计工具主要包括Cade nee公司的Capture,Protel公司的Protel99 SE等。接下来就可以参照评估板的电路图,根据系统的设计要求,开始进行原理图的绘制 了。在原理图绘制过程中,一定要搞清评估板电路连接的原因,对于一时没有搞清楚的问题 切不可蒙混过关。例如,有些处理器的地址线是以字节位单位的,而另一些处理器的地址线 则是以两个字节为单位的,当连接16位的存储器的时候,切不可想当然的把处理器的

11、A 0 直接连接到存储器的A0上面。另外,学生还应具有一定的PCB板图绘制能力,因为在 现阶段,很多公司还不能完全把原理图的设计工作和PCB的绘制工作分开,往往要求硬件 设计人员既能进行原理图设计又能进行板图设计。即使是PCB设计和原理图设计分开的公司,也需要原理 图设计者能为PCB的设计者对于不同的信号提出布板要求。驱动程序和操作系统移植工作现代嵌入式系统的开发同传统8位单片机系统的开发相比,一个显著的区别就是嵌入式 操作系统的广泛使用。在拿到焊接完毕的电路板,并进行基本的测试后,就要进行驱动程序 和操作系统的移植工作了。首先要进行的Bootloader的编写和移植工作。Bootloaer相

12、当于 PC系统的BIOS。对于有些嵌入式操作系统,如uc/OSII没有bootloader同样可以开发调 试。但是对于Windows CE和嵌入式linux系统而言Bootloader就是必须的了。本文以 Windows CE为例,做一个简要的说明。Windows CE系统的移植工作主要就是BSP (板级支持包)的开发过程。B S P将具体 的硬件差异同操作系统的核心隔离开来,主要由Bootloaer,OAL (OEMAbstraction Layer)和设备驱动程序三部分组成。WindowsCE系统中Bootloader叫做Eboot。Eboot 被写入系统的引导Flash。系统启动时运行E

13、boot,完成通过网卡将调试PC机中Windows CE操作系统映像下载到目标系统的SD RAM中并开始执行的功能。对于一个系统移植 人员,首先需要阅读文档,了解Windows CE系统Bootloader和BSP的基本概念和开发 过程。(呵,还要做这工作啊,我还没想到(初学A_A)Windows CE的开发系统Platform Builder 提供了详细的文档和例程,开发人员需要仔细的阅读文档和例程。搞清楚各个函数之间的调 用关系。在开发过程中的一个重要的步骤就是打通串口,使得目标板能够通过PC机串口 向调试PC机发送数据。由于A R M系统的仿真器比较昂贵,而且操作系统的调试往往不 使用J

14、TAG调试器进行单步调试。所以能从串口观察程序的执行过程和结果对于调试就显 得十分重要了。串口打通之后一个比较棘手的问题就是网卡芯片的调试。刚刚接触嵌入式系 统开发的人往往没有直接在寄存器级上使用网卡芯片的经验,而网卡芯片的说明一般都较为 简短,这就要求开发者学习一些以太网的基础知识,对以太网的MAC层有一个基本的认 识。另外,各种网络调试(抓包)工具的使用也能大大降低系统调试的难度。系统的OAL 需要根据具体硬件的不同做出相应的修改,这个部分可次参照文档进行,在调试过程中根据 串口的信息分析出错的地方。要充分发挥跨文件字符串搜索工具的功能,在浩如烟海的源文 件中找到出错的位置。当然,随着开发

15、者对系统文件目录结构的熟悉和了解,错误定位的速 度会不断加快。Windows CE的驱动程序相对而言是比较好写的。程序结构较为简单,学 习者可参照 MSDN Home MSDN Library Mobile and Embedded Development Embedded Operat ingSystem Development Columns SPOT the Geek and WindowsCE Drivers 这篇文章。应用程序的开发嵌入式系统的应用程序开发同在PC机上开发应用程序的区别不是很大。对于W i n d o w s C E系统而言,Microsoft已经提供了较为完善的开发

16、工具。特别是.NET Compact Framework的使用,使得基于Windows CE.NET Compact Framework的应用程序有了跨 平台性。开发人员可以使用Windows的C#语言直接在PC上进行CE .NET应用程序的 开发和模拟调试,也可将目标系统同PC机相连,进行联机调试。现在有很多系统支持 J2ME(JAVA的嵌入式系统版本),这使得JAVA在嵌入式系统应用开发中占有较大的 优势。另外,作为专业的嵌入式系统软件开发人员,还需要充分了解面向对象技术和设计模 式等方面的知识,当然作为初学者可以先不深入研究这方面的内容。常用嵌入式系统处理器和操作系统处理器常用嵌入式系统处理器主要包括A R M处理器,Power PC处理器,基于MIPS内核 的嵌入式处理器,软核处理器(如Alter的Nios和Xilinx的MicroBlaze等)和D S P (数 字信号处理器)等。A R M处理器的主要特点是具有较高的性能功耗比。ARM处

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

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