什么是嵌入式开发?嵌入式软件开发入门教程

嵌入式系统发展到今天,对应于各种微处理器的硬件平台一般都是通用的、固定的、成熟的,这就大大减少了由硬件系统引入错误的机会。此外,由于嵌入式 操作系统屏蔽了底层硬件的复杂性,使得开发者通过操作系统提供的API函数就可以完成大部分工作,因此大大简化了开发过程,提高了系统的稳定性。嵌入式系 统的开发者现在已经从反复进行硬件平台设计的过程中解脱出来,从而可以将主要精力放在满足特定的需求上。

嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的。目前一般采用的解决办法是首先在通用计算机上编写程序,然后通过交叉编译生成目标平台上可以运行的二进制代码格式,最后再下载到目标平台上的特定位置上运行。

需要交叉开发环境(Cross Development Environment)的支持是嵌入式应用软件开发时的一个显著特点,交叉开发环境是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式。

宿主机(Host)是一台通用计算机(如PC机或者工作站),它通过串口或者以太网接口与目标机通信。宿主机的软硬件资源比较丰富,不但包括功能强 大的操作系统(如Windows和Linux),而且还有各种各样优秀的开发工具(如WindRiver的Tornado、Microsoft的 Embedded Visual C++等),能够大大提高嵌入式应用软件的开发速度和效率。

目标机(Target)一般在嵌入式应用软件开发期间使用,用来区别与嵌入式系统通信的宿主机,它可以是嵌入式应用软件的实际运行环境,也可以是能 够替代实际运行环境的仿真系统,但软硬件资源通常都比较有限。嵌入式系统的交叉开发环境一般包括交叉编译器、交叉调试器和系统仿真器,其中交叉编译器用于 在宿主机上生成能在目标机上运行的代码,而交叉调试器和系统仿真器则用于在宿主机与目标机间完成嵌入式软件的调试。在采用宿主机/目标机模式开发嵌入式应 用软件时,首先利用宿主机上丰富的资源和良好的开发环境开发和仿真调试目标机上的软件,然后通过串口或者以网络将交叉编译生成的目标代码传输并装载到目标 机上,并在监控程序或者操作系统的支持下利用交叉调试器进行分析和调试,最后目标机在特定环境下脱离宿主机单独运行。

建立交叉开发环境是进行嵌入式软件开发的第一步,目前常用的交叉开发环境主要有开放和商业两种类型。开放的交叉开发环境的典型代表是GNU工具链、 目前已经能够支持x86、ARM、MIPS、PowerPC等多种处理器。商业的交叉开发环境则主要有Metrowerks CodeWarrior、ARM Software Development Toolkit、SDS Cross compiler、WindRiver Tornado、Microsoft Embedded Visual C++等。

原文地址:https://www.cnblogs.com/qianrushikaifa/p/9831109.html

时间: 2024-11-12 23:44:33

什么是嵌入式开发?嵌入式软件开发入门教程的相关文章

【核心API开发】Spark入门教程[3]

本教程源于2016年3月出版书籍<Spark原理.机制及应用> ,在此以知识共享为初衷公开部分内容,如有兴趣,请支持正版书籍. Spark综合了前人分布式数据处理架构和语言的优缺点,使用简洁.一致的函数式语言Scala作为主要开发语言,同时为了方便更多语言背景的人使用,还支持Java.Python和R语言.Spark因为其弹性分布式数据集(RDD)的抽象数据结构设计,通过实现抽象类RDD可以产生面对不同应用场景的子类.本章将先介绍Spark编程模型.RDD的相关概念.常用API源码及应用案例,

android开发零基础入门教程

最实用.最容易上手的android课程 很多java学习者都想尽快掌握android开发的流程!为此,我们推出了12小时系列课程,学习者只需要两天时间即可掌握android开发的基本知识,跨入android开发的大门,如想深入学习,请关注课程更新:授课时,我们也注重展示android开发中的实际技巧,课上代码都由老师一行一行实际敲出,真实展现了android开发中的细节. 在学习本课程时,你应该掌握基本java开发知识.数据库知识.XML技术等.这些技术我们再12小时学android课程中不再赘

跨平台IDE集成开发环境CLion入门教程,新手必看!

第一次运行CLion 当您第一次运行CLion时,或者从先前版本升级后,需要执行一些步骤来完成安装,自定义实例并开始使用IDE. 导入CLION设置 在" 完整安装"对话框中,选择是否要导入IDE设置: 如果这是您的第一个CLion实例,请选择"不导入设置"选项. 您可以使用File |在以后手动导出和导入设置导入设置和文件| 从主菜单中导出设置命令. 选择用户界面主题 选择是否要使用默认的Darcula或Light主题. 禁用不必要的插件CLion包括提供与不同版

跨平台IDE集成开发环境CLion入门教程之如何更新CLion!

CLion是一款专为开发C及C++所设计的跨平台IDE.它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力.这种强大的IDE帮助开发人员在Linux.OS X和Windows上来开发C/C++,同时它还使用智能编辑器来提高代码质量.自动代码重构并且深度整合CMake编译系统,从而提高开发人员的工作效率.更新CLion 默认情况下,CLion配置为自动检查更新,并在有新版本可用时通知您.更新通常是基于修补程序的:它们适用于现有安装,仅要求您重新启动IDE.但是,有时补丁更

iOS开发-OpenGL ES入门教程1

http://www.jianshu.com/p/750fde1d8b6a 这里是一篇新手教程,环境是Xcode7+OpenGL ES 2.0,目标写一个OpenGL ES的hello world.OpenGL ES系列教程在这里.OpenGL ES系列教程的代码地址 你的star和fork是我的源动力,你的意见能让我走得更远. 核心思路 通过GLKit,尽量简单地实现把一张图片绘制到屏幕. 效果展示 具体细节 1.新建OpenGL ES上下文 - (void)setupConfig { //新

QGIS开发Python插件入门教程

Building Our First Plugin with 'Plugin Builder' It's time to get our feet with the Plugin Builder . 1. On the QGIS menu bar click on the Plugin Builder icon to launch the plugin: 2. The main Plugin Builder dialog will appear. This is where we fill ou

嵌入式linux C语言入门教程

假设你已经学会了基本的C语言语法.1.编程的一般过程. 1)设计整个程序的框架.在开始编写程序源代码之前,你要根据需求对整个程序进行设计.程序通常是由多个模块组成的,也许你负责的也只是一个程序中的一个模块,当然你也可以将模块再分为几个子模块,直到你认为不需再分.需要模块定义与其他模块的接口,通常是.h头文件.不必强求很细致的设计,可以在编程和调试过程中补充. 2)按照框架编写源代码.一般会在编程过程中发现之前设计的不合理处,加以修改.有时可以在编写一个(子)模块后,编写简单的测试程序检验和调试一

linux嵌入式系统开发,嵌入式编程入门教程

嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分.国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗等严格要求的专用计算机系统.举些例子,手机.电子时钟.智能报警装置.自动监控器.出租车计费器等等都属于嵌入式系统. 嵌入式Linux的开发和研究是Linux领域研究的一个热点,目前已开发成功的嵌入式系统有一半以上都是Linux.Linux能够支持x86.ARM.MIPS.ALPHA.PowerPC等多种体系结构,目前

嵌入式Linux驱动开发实战教程

嵌入式Linux驱动开发实战教程(内核驱动.看门狗技术.触摸屏.视频采集系统) http://www.ibeifeng.com/goods-475.html 咨询QQ2110053820 课程讲师:韩老师 课程分类:Linux 适合人群:高级 课时数量:109课时 更新程度:完成 用到技术:嵌入式 Linux 涉及项目:驱动开发.看门狗技术.触摸屏.视频采集 课程简介:    嵌入式软件开发无疑是当今最热门的行业,嵌入式软件工程师的薪资比普通的软件工 程师的薪资平均高50%以上.随着智能控制.物