嵌入式系统开发流程

嵌入式系统开发流程

嵌入式编程开发是目前大多数软件开发程序员都在学习的一个编程开发技术,以下想是搜集整理的关于嵌入式系统开发流程的内容,一起来看看吧,希望能够帮助到你!

第一步:建立开发环境

操作系统一般使用Redhat Linux,选择定制安装或全部安装,通过网络***相应的GCC交叉编译器进行安装(比如,arm-linux-gcc、arm-uclibc-gcc),或者安装产品厂家提供的相关交叉编译器;

第二步:配置开发主机

配置MINICOM,一般的参数为波特率115200 Baud/s,数据位8位,停止位为1,9,无奇偶校验,软件硬件流控设为无。在Windows下的超级终端的配置也是这样。MINICOM软件的作用是作为调试嵌入式开发板的信息输出的监视器和键盘输入的工具。配置网络主要是配置NFS网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程。

第三步:建立引导装载程序BOOTLOADER

从网络上***一些公开源代码的BOOTLOADER,如U.BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根据具体芯片进行移植修改。有些芯片没有内置引导装载程序,比如,三星的ARV17、ARM9系列芯片,这样就需要编写开发板上FLASH的烧写程序,可以在网上***相应的烧写程序,也有Linux下的公开源代码的J-FLASH程序。如果不能烧写自己的开发板,就需要根据自己的具体电路进行源代码修改。这是让系统可以正常运行的第一步。如果用户购买了厂家的仿真器比较容易烧写FLASH,虽然无法了解其中的核心技术,但对于需要迅速开发自己的应用的人来说可以极大提高开发速度。

第四步:***已经移植好的Linux操作系统

如MCLiunx、ARM-Linux、PPC-Linux等,如果有专门针对所使用的CPU移植好的Linux操作系统那是再好不过,***后再添加特定硬件的驱动程序,然后进行调试修改,对于带MMU的CPU可以使用模块方式调试驱动,而对于MCLiunx这样的系统只能编译内核进行调试。

第五步:建立根文件系统

***使用BUSYBOX软件进行功能裁减,产生一个最基本的根文件系统,再根据自己的应用需要添加其他的程序。由于默认的启动脚本一般都不会符合应用的需要,所以就要修改根文件系统中的启动脚本,它的存放位置位于/etc目录下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自动挂装文件系统的配置文件/etc/fstab,具体情况会随系统不同而不同。根文件系统在嵌入式系统中一般设为只读,需要使用mkcramfs genromfs等工具产生烧写映像文件。

第六步:建立应用程序的FLASH磁盘分区

一般使用JFFS2或YAFFS文件系统,这需要在内核中提供这些文件系统的驱动,有的系统使用一个线性FLASH(NOR型)512KB~32MB,有的系统使用非线性FLASH(NAND型)8MB~512MB,有的两个同时使用,需要根据应用规划FLASH的分区方案。

第七步:开发应用程序

可以放入根文件系统中,也可以放入YAFFS、JFFS2文件系统中,有的应用不使用根文件系统,直接将应用程序和内核设计在一起,这有点类似于μC/OS-II的方式。

第八步:烧写内核

根文件系统和应用程序,发布产品。

常见的嵌入式系统有这么多:

Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX 、Rtems 、QNX、INTEGRITY、OSE、C Executive、autosar......

什么是嵌入式操作系统?

嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统的重要组成部分。嵌入时操作系统具有通用操作系统的基本特点,能够有效管理复杂的系统资源,并且把硬件虚拟化。

从应用角度可分为通用型嵌入式操作系统和专用型嵌入式操作系统。常见的通用型嵌入式操作系统有Linux、VxWorks、Windows CE.net等。常用的专用型嵌入式操作系统有Smart Phone、Pocket PC、Symbian等。

按实时性可分为两类:

实时嵌入式操作系统主要面向控制、通信等领域。如WindRiver公司的VxWorks、ISI的pSOS、QNX系统软件公司的QNX、ATI的Nucleus,很多汽车电子行业都是利用实时性很强的操作系统等。

非实时嵌入式操作系统主要面向消费类电子产品。这类产品包括PDA、移动电话、机顶盒、电子书、WebPhone等。如微软面向手机应用的Smart Phone操作系统。

嵌入式系统的设计和实现而言,基本上需要四种不同的工作:系统设计工作,硬件设计工作,驱动程序和操作系统移植工作和应用程序设计开发工作。

1、系统设计工作

在系统的设计阶段,系统分析师将根据需求确定系统的硬件的基本构成,根据系统的需求选择使用那种处理器,使用哪种操作系统,使用那些软件开发工具。系统分析师往往是较为完整的参与过嵌入式系统设计的全过程,对于系统应用的行业较为了解,对于嵌入式系统本身的开发流程十分清楚的人。

2、硬件设计工作

系统硬件设计人员需要根据系统分析师的设计结果,进行硬件原理***的设计。通常需要硬件设计人员熟悉嵌入式系统的硬件构成。硬件设计人员需要了解常用的嵌入式系统处理器,存储器(Flash,SDRAM),以太网MAC芯片,音频/视频编解码芯片,电源管理芯片,总线接口电路 (USB,PCI),液晶显示模块,可编程逻辑器件(FPGA/CPLD),无线网络通信模块(Bluetooth,WLAN,GPRS)等硬件电路构成元素的基本工作原理,连接使用方法,使用注意事项,基本调试方法等内容。在网络上能找到很多公司的评估板的原理***,对于这些原理***要仔细研究,摸清处理器同存储器,网卡,液晶模块等器件的连接方法和原因。通过对这些电路的研究,能够较快地了解整个嵌入式系统的构成,这些电路同实际产品中的电路虽有一定差别的,特别是对于手持设备,但这些差别不影响初学者学习嵌入式系统的硬件设计基本构成。

1)学习 Linux系统安装、 常用命令、应用程序安装。

2) 学习 Linux 下的 C 编程、这本书必学《UNIX 环境高级编程》、《UNIX 网络编程》,Rechard Stevens 写的,C 高手大都学习过 《C 和指针》、《C 缺陷与陷阱》、《高质量C/C++编程指南》、《C 专家编程》、《The C programming Language》

3)程序员大都要学:数据结构,嵌入式程序员数据结构必学!

4)底层开发人员大都要学:微机原理、计算机体系结构,嵌入式开发人员必学!

5)单片机可以让一个从事软件开发的人了解和如何操作硬件,有必要学,因为一开始就从 ARM 入手,不太现实!

6)ARM 体系结构,其中有汇编。

7)数字电路有必要学习,不然你在做底层开发时真的会不知道怎么看原理***,起码也得懂与或门吧。

8)ARM + Linux 应用程序开发。(前提是要有开发板)

9)要做底层开发,就必须知道软硬件之间是如何衔接和配合工作的,那么电子技术应该要好好学习了,很多时候会用到模拟电路知识,这是区别好手与菜鸟的不同之处之一。

10)Linux 下的汇编要学,这样你才能真正了解你写的程序是如何在一个特定的硬件上跑的。这是区别好手与菜鸟的不同之处之二。

11)TCP/IP 协议栈要学,所有的嵌入式高手都得掌握的东西,这是区别好手与菜鸟的不同之处之三。

12)有了这些东西,拿下 Linux 驱动 已经不再话下,需要你去学习 Linux 内核源代码和Linux驱动程序设计,这是一个技术升华。

13)音频、视频的解码译码技术你得学。

14)各种 IC ,各种 bootloader 你能够参与其开发设计。

15)自行设计开发新产品,新技术。

学到这个地步差不多要花个3年的时间吧。但是后面的路该怎么走呢?嵌入式系统性的东西搞了一个产品之后,基本上一些套路都摸清楚了。

不同的行业,对于系统的要求是不一样的,比如汽车行业,航空航天行业等一些高精度,高安全的需要对实时性要求非常之高,对于安全性和可靠性的要求非常严格。而有些行业比如消费类产品,娱乐类的,生活用具方面的对于用户体验是不一样的,数码产品对于一些***像声音的处理,要求更高,需要高清,高品质的。而对于一些通信设备类对于网络的应答数据传输要求就非常严格,等等。这些根据不同的要求,选择符合自己的操作系统,能对开发工作有更大的帮助。

计算机四级嵌入式系统开发工程师考试复习知识点

1、实时系统的调度

(1)调度:给定一组实时任务和系统资源,确定每个任务何时何地执行的整个过程。

(2)抢占式调度:通常是优先级驱动的调度,如uCOS。优点是实时性好、反应快,调度算法相对简单,可以保证高优先级任务的时间约束;缺点是上下文切换多。

(3)非抢占式调度:通常是按时间片分配的调度,不允许任务在执行期间被中断,任务一旦占用处理器就必须执行完毕或自愿放弃,如WinCE。优点是上下文切换少;缺点是处理器有效资源利用率低,可调度性不好。

(4)静态表驱动策略:系统在运行前根据各任务的时间约束及关联关系,采用某种搜索策略生成一张运行时刻表,指明各任务的起始运行时刻及运行时间。

(5)优先级驱动策略:按照任务优先级的高低确定任务的执行顺序。

(6)实时任务分类:周期任务、偶发任务、非周期任务。

(7)实时系统的通用结构模型:数据采集任务实现传感器数据的采集,数据处理任务处理采集的数据、并将加工后的数据送到执行机构管理任务控制机构执行。

2、嵌入式微处理器体系结构

(1)冯诺依曼结构:程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,采用单一的地址及数据总线,程序和数据的宽度相同。例如:8086、ARM7、MIPS…

(2)哈佛结构:程序和数据是两个相互***的存储器,每个存储器***编址、***访问,是一种将程序存储和数据存储分开的存储器结构。例如:AVR、ARM9、ARM10…

(3)CISC与RISC的特点比较(参照教程22页)。计算机执行程序所需要的时间P可以用下面公式计算:P=I×CPI×T

I:高级语言程序编译后在机器上运行的指令数。

CPI:为执行每条指令所需要的平均周期数。

T:每个机器周期的时间。

(4)流水线的思想:在CPU中把一条指令的串行执行过程变为若干指令的子过程在CPU中重叠执行。

(5)流水线的指标:

吞吐率:单位时间里流水线处理机流出的结果数。如果流水线的子过程所用时间不一样长,则吞吐率应为最长子过程的倒数。

建立时间:流水线开始工作到达最大吞吐率的时间。若m个子过程所用时间一样,均为t,则建立时间T=mt。

(6)信息存储的字节顺序A、存储器单位:字节(8位)

B、字长决定了微处理器的寻址能力,即虚拟地址空间的大小。

C、32位微处理器的虚拟地址空间位232,即4GB。

D、小端字节顺序:低字节在内存低地址处,高字节在内存高地址处。

E、大端字节顺序:高字节在内存低地址处,低字节在内存高地址处。F、网络设备的存储顺序问题取决于OSI模型底层中的数据链路层。

3、逻辑电路基础

(1)根据电路是否具有存储功能,将逻辑电路划分为:组合逻辑电路和时序逻辑电路。

(2)组合逻辑电路:电路在任一时刻的输出,仅取决于该时刻的输入信号,而与输入信号作用前电路的状态无关。常用的逻辑电路有译码器和多路选择器等。

(3)时序逻辑电路:电路任一时刻的输出不仅与该时刻的输入有关,而且还与该时刻电路的状态有关。因此,时序电路中必须包含记忆元件。触发器是构成时序逻辑电路的基础。常用的时序逻辑电路有寄存器和计数器等。

(4)真值表、布尔代数、摩根定律、门电路的概念。

(5)NOR(或非)和NAND(与非)的门电路称为全能门电路,可以实现任何一种逻辑函数。

(6)译码器:多输入多输出的组合逻辑网络。

每输入一个n位的二进制代码,在m个输出端中最多有一个有效。当m=2n是,为全译码;当m<2n时,为部分译码。

(7)由于集成电路的高电平输出电流小,而低电平输出电流相对比较大,采用集成门电路直接驱动LED时,较多采用低电平驱动方式。液晶七段字符显示器LCD利用液晶有外加电场和无外加电场时不同的光学特性来显示字符。

(8)时钟信号是时序逻辑的基础,它用于决定逻辑单元中的状态合适更新。同步是时钟控制系统中的主要制约条件。

(9)在选用触发器的时候,触发方式是必须考虑的因素。触发方式有两种:电平触发方式:具有结构简单的有点,常用来组成暂存器。

边沿触发方式:具有很强的抗数据端干扰能力,常用来组成寄存器、计数器等。

计算机四级嵌入式系统开发工程师考试的复习要点

1、嵌入式系统的定义

(1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

(2)嵌入式系统发展的4个阶段:无操作系统阶段、简单操作系统阶段、实时操作系统阶段、面向Internet阶段。

(3)知识产权核(IP核):具有知识产权的、功能具体、接口规范、可在多个集成电路设计中重复使用的功能模块,是实现系统芯片(SOC)的基本构件。

(4)IP核模块有行为、结构和物理3级不同程度的设计,对应描述功能行为的不同可以分为三类:软核、固核、硬核。

2、嵌入式系统的组成:硬件层、中间层、系统软件层和应用软件层

(1)硬件层:嵌入式微处理器、存储器、通用设备接口和I/O接口。

嵌入式核心模块=微处理器+电源电路+时钟电路+存储器Cache:位于主存和嵌入式微处理器内核之间,存放的是最近一段时间

微处理器使用最多的程序代码和数据。它的主要目标是减小存储器给微处理器内核造成的存储器访问瓶颈,使处理速度更快。

(2)中间层(也称为硬件抽象层HAL或者板级支持包BSP):它将系统上层软件和底层硬件分离开来,使系统上层软件开发人员无需关系底层硬件的具体情况,根据BSP层提供的接口开发即可。

BSP有两个特点:硬件相关性和操作系统相关性。设计一个完整的BSP需要完成两部分工作:

A、嵌入式系统的硬件初始化和BSP功能。

片级初始化:纯硬件的初始化过程,把嵌入式微处理器从上电的默认状态逐步设置成系统所要求的工作状态。

板级初始化:包含软硬件两部分在内的初始化过程,为随后的系统初始化和应用程序建立硬件和软件的运行环境。

系统级初始化:以软件为主的初始化过程,进行操作系统的初始化。

B、设计硬件相关的设备驱动。

(3)系统软件层:由RTOS、文件系统、GUI、网络系统及通用组件模块组成。

RTOS是嵌入式应用软件的基础和开发平台。

(4)应用软件:由基于实时系统开发的应用程序组成。

3、实时系统

(1)定义:能在指定或确定的时间内完成系统功能和对外部或内部、同步或异步时间做出响应的系统。

(2)区别:通用系统一般追求的是系统的平均响应时间和用户的使用方便;而实时系统主要考虑的是在最坏情况下的系统行为。

(3)特点:时间约束性、可预测性、可靠性、与外部环境的交互性。

(4)硬实时(强实时):指应用的时间需求应能够得到完全满足,否则就造成重大安全事故,甚至造成重大的生命财产损失和生态破坏,如:航天、***事。

(5)软实时(弱实时):指某些应用虽然提出了时间的要求,但实时任务偶尔违反这种需求对系统运行及环境不会造成严重影响,如:监控系统、实时信息采集系统。

(6)任务的约束包括:时间约束、资源约束、执行顺序约束和性能约束。

转载请注明出处我优求知网 » 嵌入式系统开发流程

学习

linux系统中scp命令的使用方法

阅读(76)

本文为您介绍linux系统中scp命令的使用方法,内容包括linux最简单命令及用法,linux连接ssh后怎么操作,linuxssh控制原理。Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操

学习

地理信息系统在物流配送中的应用

阅读(60)

导语:现代物流实用词典说物流配送是共同化的服务模式,物流配送共同化,包括物流资源利用共同化、物流设施与设备利用共同化、物流管理共同化等等。详细来说,物流配送是物流活动中一种非单一的业务形式,它与商流、物流、资金流紧密结合,并且主要

学习

团队管理的最大误区就是为团队牺牲自己

阅读(26)

本文为您介绍团队管理的最大误区就是为团队牺牲自己,内容包括团队管理的方法技巧有哪些,管理团队中的问题及解决方法,不同阶段的团队管理。团队管理指在一个组织中,依成员工作性质、能力组成各种小组,参与组织各项决定和解决问题等事务,以

学习

什么是资本运作

阅读(31)

本文为您介绍什么是资本运作,内容包括什么是资本运作怎么挣钱,什么是资本运作,什么是资本运作模式。资本是经济发展过程中不能缺少的因素,我们必须要认识资本、理解资本,并且要正确利用资本。下面是为大家准备的什么是资本运作,欢迎阅读!

学习

【推荐】第一年工作计划四篇

阅读(30)

本文为您介绍【推荐】第一年工作计划四篇,内容包括实用的医生工作计划四篇,实用的hr工作计划四篇。【推荐】第一年工作计划四篇时光飞逝,时间在慢慢推演,成绩已属于过去,新一轮的工作即将来临,是时候开始制定计划了。相信大家又在为写计划犯

学习

服务员年终工作总结通用

阅读(70)

本文为您介绍服务员年终工作总结通用,内容包括客服工作年终总结模板5篇范文,酒店服务员半年总结怎么写。服务员年终工作总结通用15篇总结是指社会团体、企业单位和个人在自身的某一时期、某一项目或某些工作告一段落或者全部完成后进行

学习

电脑键盘每个键的功能介绍

阅读(77)

本文为您介绍电脑键盘每个键的功能介绍,内容包括电脑键盘的各个键的功能介绍,电脑键盘shift键的功能,笔记本电脑键盘各个键的功能介绍。电脑键盘每个键的功能大家都知道吗?下面来给大家介绍,希望对大家有帮助!

学习

系统集成销售经理的岗位职责(通用)

阅读(79)

本文为您介绍系统集成销售经理的岗位职责(通用),内容包括系统集成公司架构及岗位职责,系统集成项目经理的岗位职责,系统集成工程师岗位职责标准模板。系统集成销售经理的岗位职责篇11、制定营销、销售计划,并加以执行;

学习

世界无烟日演讲稿

阅读(69)

本文为您介绍世界无烟日演讲稿,内容包括世界无烟日演讲稿300字,世界无烟日演讲稿范文。世界无烟日演讲稿演讲稿具有逻辑严密,态度明确,观点鲜明的特点。在发展不断提速的社会中,越来越多人会去使用演讲稿,相信写演讲稿是一个让许多人都头痛

学习

精选四年级写景作文300字汇总十篇

阅读(46)

本文为您介绍精选四年级写景作文300字汇总十篇,内容包括写景色的作文三年级300字大全,四年级写景的作文400字优秀作文。精选四年级写景作文300字汇总十篇在学习、工作或生活中,大家对作文都不陌生吧,根据写作命题的特点,作文可以分为命题作

学习

出生证明需要什么的材料及办理步骤

阅读(72)

本文为您介绍出生证明需要什么的材料及办理步骤,内容包括办理二胎出生证明需要什么材料,办理医学出生证明必须要哪些材料,未婚办理出生证明需要什么材料。出生证明是一个孩子来到这个世界上的第一张身份证明,那么关于出生证明的办理流程

学习

乡村振兴战略完成情况报告(精选)

阅读(200)

本文为您介绍乡村振兴战略完成情况报告(精选),内容包括振兴乡村战略20字总要求,乡村振兴战略三权是指什么,乡村振兴战略工作情况报告。在人们素养不断提高的今天,我们都不可避免地要接触到报告,报告具有成文事后性的特点。那么一般报告是怎

学习

【实用】人生的格言汇总59条

阅读(51)

本文为您介绍【实用】人生的格言汇总59条,内容包括实用的人生的格言合集59条,简短的人生格言警句集锦60条。【实用】人生的格言汇总59条不是人可以无视时间的存在,是时间可以无视人的存在。下面是为大家推荐的人生的格言59条,希望大家喜

学习

护理技术完成情况总结范文(通用)

阅读(116)

本文为您介绍护理技术完成情况总结范文(通用),内容包括护理业务培训总结范文,护理个人总结范文,护理质控总结范文。总结是指社会团体、企业单位和个人对某一阶段的学习、工作或其完成情况加以回顾和分析,得出教训和一些规律性认识的一种书

学习

江西中考报名缴费的流程

阅读(92)

本文为您介绍江西中考报名缴费的流程,内容包括江西中考报名最新政策,江西中考报名缴费流程,江西中考报名。中考报名时间安排在4月中下旬,采用网上报名方式,但缴费方式有变化,采用网上缴费方式。下面是分享的江西中考报名缴费的流程,快来看看

学习

面试流程话术

阅读(46)

本文为您介绍面试流程话术,内容包括面试流程话术技巧,主持面试的流程以及话术,打电话面试的话术流程。在日复一日的学习、工作或生活中,大家或多或少都会接触过面试吧,通过面试可以更好地选择自己的就业岗位,思考自己未来的方向。以下是收

学习

广州身份证到期换证流程

阅读(424)

本文为您介绍广州身份证到期换证流程,内容包括广州身份证到期换证流程自助,外地人在广州身份证到期换证流程,广州学生身份证到期换证流程。相信大家都会遇到这样一个问题,身份证到期了,那么该怎么换呢?以下是精心整理的广州身份证到期换证

学习

大学英语辩论赛的比赛规则及具体流程

阅读(28)

本文为您介绍大学英语辩论赛的比赛规则及具体流程,内容包括辩论赛主持人流程及规则,辩论赛的规则和流程有哪些,中学生辩论赛流程和规则。辩论赛是一场思维反映能力的竞赛,语言表达能力的竞赛,也是综合能力的竞赛。下面是搜集整理的大学英

学习

在大桥路开发工程奠基仪式上的致辞

阅读(27)

本文为您介绍在大桥路开发工程奠基仪式上的致辞,内容包括开发区项目奠基仪式,在改造项目动工仪式上的致辞。在大桥路开发工程奠基仪式上的致辞在日常生活或是工作学习中,大家都写过致辞吧,有些致辞超出了某种仪式本身的约束,上升到议论说明

学习

开发项目转让合同

阅读(32)

本文为您介绍开发项目转让合同,内容包括公司及项目转让协议书,项目转让合同范本。开发项目转让合同现今社会公众的法律意识不断增强,人们运用到合同的场合不断增多,合同能够促使双方正确行使权力,严格履行义务。那么正式、规范的合同是什么

学习

家长会流程主持稿

阅读(79)

本文为您介绍家长会流程主持稿,内容包括家长会表演主持稿,感恩家长会主持稿。家长会流程主持稿在快速变化和不断变革的今天,很多情况下我们需要用到主持稿,主持稿是主持人为节目进行过程中串联节目而事先准备好的文稿。相信很多朋友都对写

学习

婚礼策划流程方案

阅读(67)

本文为您介绍婚礼策划流程方案,内容包括最浪漫的婚礼策划流程,婚礼策划书6篇完整版。婚礼策划流程方案(合集7篇)为了确定工作或事情顺利开展,往往需要预先制定好方案,方案的内容多是上级对下级或涉及面比较大的工作,一般都用带“文件头”形