嵌入式系统:以应用为中心的专用计算机系统,优化设计,降低成本,大量生产
创始人
2026-03-10 12:13:20
0

嵌入式软件课程_嵌入式软件方法与技术_嵌入式系统软件教程

嵌入式系统是“完全嵌入受控设备中,为特定应用而设计的专用计算机系统”。根据英国电气工程师学会的定义,嵌入式系统是一种控制、监控或协助设备、机器或工厂操作的设备。与个人电脑等通用计算机系统不同,嵌入式系统通常执行具有特定要求的预定义任务。

由于嵌入式系统是为特定任务而设计的,因此设计人员可以对其进行优化,减小尺寸并降低成本。嵌入式系统通常是批量生产的,因此随着生产量的增加,单个单元的成本节省可以按数百或数千的比例增加。

嵌入式系统以应用为中心,以计算机技术为基础嵌入式系统软件教程,硬件和软件可定制,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统和用户应用程序四部分组成,用来实现对其他设备的控制、监视或管理等功能。

嵌入式系统的设计技术主要包括硬件设计技术和软件设计技术两大类,其中硬件设计领域的技术主要包括芯片级设计技术和电路板级设计技术两个方面。

芯片级设计技术的核心是编译/综合、库/IP、测试/验证。编译/综合技术使设计人员能够以抽象的方式描述所需的功能,并自动分析和插入实现细节。库/IP技术利用预先设计好的低级抽象实现高层。测试/验证技术确保每一级功能的正确性嵌入式系统软件教程,并减少各级之间重复设计的成本。

我们先来介绍一下一些基本的开发流程。

嵌入式系统开发流程

步骤 1:设置开发环境

操作系统一般采用Redhat Linux,选择“自定义安装”或者“完全安装”,从网上下载相应的GCC交叉编译器进行安装(例如arm-linux-gcc、arm-uclibc-gcc),或者安装产品厂商提供的相关交叉编译器。

步骤 2:配置开发主机

配置MINICOM时,一般参数为波特率115200Baud/s、数据位8、停止位1、9、无奇偶校验、软硬件流控均设置为无。Windows下超级终端的配置也同样如此。

MINICOM软件作为调试嵌入式开发板信息输出的显示器和键盘输入工具。网络配置主要涉及配置NFS网络文件系统,需要关闭防火墙,以简化嵌入式网络调试环境设置过程。

步骤 3:创建引导加载程序 BOOTLOADER

从网上下载一些开源的BOOTLOADER,比如U.BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等等,根据具体的芯片进行移植和修改。

有些芯片没有内置Boot Loader,比如三星的ARV17、ARM9系列芯片,这种情况下需要在开发板上编写FLASH烧写程序,网上可以下载相应的烧写程序,Linux下也有开源的J-FLASH程序。

如果你无法烧录自己的开发板,那么就需要根据你具体的电路来修改源代码,这是让系统正常运行的第一步。

如果用户购买厂家的仿真器,可以更加方便的进行FLASH的烧录,虽然无法了解核心技术,但是对于需要快速开发自己的应用程序的人来说,可以大大提高开发速度。

步骤4:下载移植的Linux操作系统

比如MCLunx、ARM-Linux、PPC-Linux等,如果有专门针对你使用的CPU移植的Linux操作系统就太好了,下载之后就可以添加针对具体硬件的驱动,然后调试修改。对于有MMU的CPU,可以用模块的方式调试驱动,但对于MCLunx这样的系统,只能编译内核进行调试。

步骤 5:创建根文件系统

下载并使用BUSYBOX软件精简功能并生成基本的根文件系统,然后根据应用需要添加其他程序。

由于默认的启动脚本一般不能满足应用的需要,所以需要修改根文件系统中的启动脚本。它存放在/etc目录下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,以及自动挂载文件系统的配置文件/etc/fstab。具体情况会根据系统不同而有所差异。

嵌入式系统中的根文件系统一般设置为只读,需要使用mkcramfs genromfs等工具来生成烧录镜像文件。

步骤 6:为应用程序创建 FLASH 磁盘分区

一般采用JFFS2或者YAFFS文件系统,这就需要在内核提供这些文件系统的驱动。有的系统采用512KB~32MB的线性FLASH(NOR类型),有的系统采用8MB~512MB的非线性FLASH(NAND类型),还有的系统两种都用,需要根据应用来规划FLASH的划分方案。

步骤 7:开发应用程序

可以放在根文件系统中,也可以放在YAFFS或者JFFS2文件系统中。有些应用程序不采用根文件系统,直接把应用程序和内核设计在一起,有点类似于μC/OS-II的方法。

步骤 8:刻录内核

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

相关内容

热门资讯

人... 本文目录导航: 人工智能AI软件哪个更适用 AI修图的好工具介绍个ai修图...
a... 本文目录导航: ai人工智能培训去哪家比拟好? 人工智能培训机构排名前十 ...
人... 本文目录导航: 人工默认哪些大学 人工默认专业排名前10有哪些学校 ...
学... 本文目录导航: 学习人工默认数学必定要很好么? 学习人工默认必定要良好的数...
人... 本文目录导航: 人工智能哪些大学 人工智能专业排名前10有哪些学校 ...
人... 本文目录导航: 人工智能为什么要用芯片? 人工智能须要哪些技术 ...
a... 本文目录导航: ai人工智能教育有哪些ai人工智能教育有哪些课程 松鼠AI...
人... 本文目录导航: 人工智能专业好务工吗? 人工智能专业务工如何 ...
用... 本文目录导航: 用这些Ai修图神器,小白秒变修图大神! ai修图收费 ...
秘... 本文目录导航: 秘塔ai搜查如何经常使用 ai人工智能在线经常使用方法ai...
务... 本文目录导航: 人工智能务工前景堪忧真的假的 务工前景好吗 人工智能务工太...
罕... 本文目录导航: 罕用的人工智能软件平台有哪些? 中国的ai软件有哪些 ...
人... 本文目录导航: 人工智能须要学哪些课程 ai须要学哪些课程 ...
人... 本文目录导航: 人工默认技术运行专升本可以吗? 人工默认专业可以专升本吗?...
a... 本文目录导航: ai智能教育究竟有没有用呢? 人工智能培训机构哪个好 ...
学... 本文目录导航: 学人工智能好务工吗 人工智能专业好找上班吗 ...
a... 本文目录导航: ai培训师怎样考ai培训师怎样做 人工智能证书含金量高吗?...
A... 本文目录导航: APP软件开发公司怎样选用 我要运营一款App软件,然而要...
山... 本文目录导航: 山东蓝光软件有限公司公司简介 西安易博软件有限责任公司公司...
招... 本文目录导航: 招聘启事模板15篇 软件工程师任务条件? ...