嵌入式系统开发概述讲解

来源:本站
导读:目前正在解读《嵌入式系统开发概述讲解》的相关信息,《嵌入式系统开发概述讲解》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《嵌入式系统开发概述讲解》的详细说明。
简介:1、裸机开发:对于功能简单仅包括应用程序的嵌入式系统一般不使用操作系统,仅有应用程序和设备驱动程序。2、带操作系统的开发:1)、当设计较复杂的程序时,可能就需要一个操作系统(OS)来管理控制内存、多任务、周边资源等2)、本阶段我们将分别介绍裸机下与操作系统下的开发,并且把嵌入式Linux操作系统的嵌入式开发作为重点

嵌入式系统开发流程

一、 (无操作系统)

1) 硬件开发(PCB、原理图)

2)启动代码(硬件初始化)

3) 设备驱动(裸机下驱动)

4) 应用程序(单任务)

二、(有操作系统)

1)、硬件开发

2)、启动加载程(bootloader)

3)、操作系统内核(kernel)

4)、根文件系统(root)

5)、设备驱动(driver)

6)、应用程序(进程、线程、GUI、网络、数据库等)

4、通常基于linux系统的嵌入式开发步骤如下:

1)、开发目标硬件系统:

如选择微处理器、Flash及其它外设等

2)、建立交叉开发环境:

安装交叉编译工具链、配置串口通信工具、配置网络通信工具等

3)、开发Bootloader:移植Bootloader,如vivi

4)、移植linux内核:如linux2.4.18内核移植

5)、开发根文件系统:如CRAMFS文件系统的制作

6)、开发相关硬件的驱动程序:如LCD、网卡、GPIO等

7)、开发上层的应用程序:如网络、QTGUI开发

5、交叉编译链介绍

1)、本地编译:

在当前平台编译,编译得到的程序也在本地执行,这时所使用的编译器称为本地编译器

2)、交叉编译:

在一种平台上编译出能运行在体系结构不同的另一种平台上的程序,比如在X86平台上编译出能运行于ARM平台上的程序,这时所使用的编译器称为交叉编译器

3)、在编译Linux内核和应用程序之前,由于一般嵌入式开发系统存储大小有限,通常都要在性能优越的PC机上建立一个用于目标机的交叉编译工具链,用该交叉编译工具链在PC上编译出目标机上要运行的程序

4)、交叉编译工具链主要由binutils、gcc、glibc3个部分组成

5)、编译交叉编译工具链是一个非常复杂的过程,但一般网上有已经编译好的工具链可以下载

常用的交叉编译器版本如下:

2.95.3、3.3.2、3.4.1、4.3.2等

6、启动Bootloader介绍

1)、对于PC机,其开机后的初始化处理器配置、硬件初始化等操作是由BIOS(BasicInput/OutputSystem)完成的,但对于嵌入式系统来说,出于经济性、价格方面考虑一般不配置BIOS,因此我们必须自行编写完成这些工作的程序

2)、这就是所需要的引导启动程序,在嵌入式中称为BootLoader程序(在裸机下称作启动代码)

3)、BootLoader是系统加电后、操作系统内核或用户应用程序运行之前,首先必须运行的一段程序代码

4)、通过这段程序,为最终调用操作系统内核、运行用户应用程序准备好正确的环境

5)、系统启动代码完成基本软硬件环境初始化后,对于有操作系统的情况下,启动操作系统、启动内存管理、任务调度、加载驱动程序等,最后执行应用程序或等待用户命令

6)、对于没有操作系统的系统直接执行应用程序或等待用户命令

7、Linux内核介绍

Linux内核是linux操作系统的核心部分,它实现了操作系统的五大功能模块:

进程管理

内存管理

文件系统

设备控制

网络

8、Linux根文件系统介绍

根文件系统是linux/UNIX系统启动的一个重要组成部分,也是操作系统正常工作的必要组成部分,在启动内核后需要挂载根文件系统

一般重要的文件、命令、应用程序等都保存在根文件系统中,操作系统起来后可以直接使用

根文件系统的实现多种多样

基于ram的ramdisk

基于flash的cramfs、yaffs2

基于网络的nfs

9、Linux驱动介绍

驱动程序从字面上可以理解为一类程序,这类程序的目的一般是驱动硬件正常工作,所以通常说的驱动都是针对特定的硬件来编写的

例如:lcd、flash、ad、网络等正常工作都需要相应的驱动程序来支持

驱动程序既可以工作在有操作系统的环境下,也可以工作在无操作系统的环境中在做一些简单的硬件控制时,由于功能比较单一,不需要操作系统来管理,所以针对这种情况的驱动程序也相对简单,因为它只完成特定硬件的功能而不需考虑其它的并发任务等情况

如果要实现的任务相对较多,较复杂,需要操作系统对它进行管理,在这种情况下,编写驱动的程序就要考虑其他任务的并发、任务的优先级以及中断的处理等问题

所以在带操作系统的环境下编写驱动程序相对较复杂,但这也是最常用到的类型

从嵌入式应用程序开发人员角度看,linux驱动程序为应用程序提供了访问硬件设备的应用编程接口(API),它主要提供以下功能:

应用程序通过驱动程序安全有效的访问硬件设备

驱动程序作为嵌入式系统的中间一层软件,他隐藏了低层的细节,从而提高了软件的可移植性和可复用性

10、Linux应用程序开发操作界面

现代操作系统一般都提供图形化的操作界面,这种界面一般由视窗、图标、菜单、对话框以及其它一些可视特征组成,它允许终端用户方便地利用鼠标和键盘来操作电脑

GUI系统发展非常迅速,其桌面主要分支有:

苹果的视窗系统

微软的Windows桌面系统

UNIX的上的XWindow系统

在类UNIX系统中,XWindow系统占据统治地位,各种流行的桌面环境和开发包实际上都是在XWindow的基础上开发的,

例如前面我们介绍过的桌面系统上的Gnome、KDE

嵌入式系统中由于硬件条件的限制,XWindow系统不太适合

目前常见的面向嵌入式Linux的GUI系统主要有

QtopiaCore

MicroWindows(Nabo-XWindows)

国内的MiniGUI等

是一个专门为嵌入式系统设计图形用户界面的工具包。Qt是挪威Trolltech软件公司的产品,它是桌面系统图形用户界面开发包,QtopiaCore就是Qt的嵌入式版本

MiniGUI

是一种面向嵌入式系统的图形用户界面支持

系统,是国内做的较好的自由软件之一.其主

要特点有:

跨操作系统支持

多汉字输入法支持

轻型、占用资源少

高性能、高可靠性

可配置性

MicroWindows

(2005年更名为Nano-XWindow)是一个基于客户/服务器体系结构的GUI系统

其主要特色是提供了类似XWindow的客户/服务器体系结构并提供了相对完善的图形功能

MicroWindows作为XWindow的替代品,可以使用更少的存储空间(100KB-600KB)和RAM提供与XWindow相似的功能

提醒:《嵌入式系统开发概述讲解》最后刷新时间 2024-03-14 01:04:08,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《嵌入式系统开发概述讲解》该内容的真实性请自行鉴别。