嵌入式和传统PC的区别
- 嵌入式系统的定义:嵌入式系统是“控制、监视或者辅助操作机器和设备的装置”,以应用为中心,以计算机技术为基础、软件硬件可裁减、适应应用系统对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统。
- 嵌入式系统相对通用计算机(PC)而言:
- 嵌入性:需要与某些物理世界中的特定环境和设施紧密结合。
- 专用性:面向某个特定应用。
- 实时性:主要用来对宿主对象进行控制。
- 可靠性:有些嵌入式系统所承担的计算任务涉及产品质量、人身设备安全和国家机密等重大事务;有些宿主对象需要工作在无人值守的环境中;
- 可裁减性:供开发人员根据实际需要量体裁衣,去除冗余,使系统达到最精简的配置。
- 功耗低:宿主对象是小型应用系统,没有容量较大的电源。
最大不同点
:嵌入式CPU大多工作在为特定用户群所专门设计的系统中 ;将通用CPU中许多由板卡完成的任务集成到芯片内部 ;有利于嵌入式系统在设计时趋于小型化 ;具有很高的效率和可靠性
注:也可以从软件【RTOS】实时角度;和硬件【MCU】角度进行理解。
嵌入式系统的特点:
◼
形式多样、面向特定应用
◼
多种类型的处理器和处理器体系结构
◼
实时性和高可性要求
◼
高效能
(efficiency)
◼
嵌入式系统使用的操作系统一般是适应多种处理器、可剪裁、轻量型、实时可靠、可
固化的嵌入式操作系统
◼
开发需要专门工具和特殊方法
Linux中c语言开发的流程
- 编写源代码:使用编辑工具如Vi编辑器来编辑源程序。
- 编译源代码:工具GCC;命令格式:gcc -o hello hello.c 【gcc -o 目标文件名 源文件名】
- 运行程序:如“./hello”
- 调试程序:GDB
注:到目前为止,linux下的C语言编程基本结束。可执行文件基于x86架构。若在嵌入式环境中还需进行下面的步骤:
- 交叉编译: arm-linux-gcc 后可在目录下查看到hello可执行文件,该文件运行不了,是基于ARM架构的。
- 编写Makefile
GCC编译的流程
- 预处理(Pre-Processing)
- 编译(Compiling)
- 汇编(Assembling)
- 链接(Linking)