首页/支持与动态/技术文章
ARM 嵌入式和单片机开发模式的区别
ARM 嵌入式和单片机开发模式的区别介绍

一、 开发模式

单片机开发多为裸机,程序规模小,多为单个程序员独立开发。有些复杂产品也会使用高端单片机如STM32之类,并使用RTOS(uCOSfreeRTOS)

嵌入式开发几乎全部基于嵌入式操作系统,目前使用最多的是 linux Android


二、 技术特征

编程语言方面

单片机主要使用C语言(少量用汇编),和标准C略有不同,很少使用结构体、函数指针等C语言高级特性。

嵌入式开发较复杂,一般分底层和应用层。底层使用C语言,应用层使用CC++Java等语言均有。嵌入式C语言对结构体、

数据结构、算法、函数指针(用来实现面向对象)等高级特性使用比较多)。

软硬件组件方面

单片机多涉及一些简单外设,譬如串口、I2CADCLCD(小屏幕和分辨率)

嵌入式系统则涉及更多复杂外设,譬如网络(有线网卡、wifi、蓝牙等)、USB、音视频编解码等。

 

三、 嵌入式系统的特点

专用、软硬件可裁剪可配置

低功耗、高可靠性、高稳定性

软件代码短小精悍

代码可固化

实时性

弱交互性

专用开发工具及开发环境

专业开发人员

四、嵌入式系统的组成

硬件

微处理器

存储器

I/O接口、输入输出设备等等

软件

嵌入式操作系统

BSP board support package板级支持包

应用软件

注:操作系统是中间人;应用软件通过给操作系统发命令,然后由操作系统来控制 BSP 中的驱动,最终控制硬件来完成任务。


五、地址总线和数据总线

CPU 通过地址总线寻址,然后通过数据总线与外部设备互换信息。

地址总线的位数决定CPU寻址范围;数据总线的位数决定CPU单次通信能交换的信息数量;

总线的速度决定CPU和外设互换信息的速度。


六、为何使用交叉编译

嵌入式开发的CPU比较简单,本身无法搭建开发环境,有些甚至操作系统都没有。

交叉编译可以用高性能机器为低性能机器开发软件(包括裸机软件、系统级和应用级软件)


七、嵌入式开发特点

交叉编译,不便于本机运行调试程序。

嵌入式系统需要 bootloader 来启动,而 bootloader 必须首先存在于可启动介质中,这个过程需要专用工具。

嵌入式系统无法通过纯软件实现单步调试,因此必须借助专用的调试器。


八、Jlink的作用

下载可执行程序到目标机。

在目标机上实现单步调试,便于开发bootloader


九、USB转串口线的作用

串口本身用来做嵌入式目标机的调试输出,主要目的是用来监视及调试软件。

因为现在大部分个人电脑(大部分台式机和几乎全部的笔记本电脑)都未配置DB9串口,因此工作中一般直接使用USB转串口线来连接PC和开发板。

USB虚拟串口的实现在系统上依赖于USB转串口驱动,一般由厂家直接提供,也可以使用操作系统自带的CDC类串口驱动等。驱动主要分为2个功能,其一注册USB设备驱动,完成对USB设备的控制与数据通讯,其二注册串口驱动,为串口应用层提供相应的实现方法。


十、程序的编译运行过程

程序员用汇编指令编程 ——> 经汇编器汇编成二进制可执行程序文件 ——> 二进制文件被CPU读取进去 ——> CPU内部电路对二进制文件解码 ——> 解码通过则CPU执行指令、完成指令动作。

如果程序员用C语言等高级语言编程,则编译器先将C语言程序编译为汇编程序,再进行上面的后续部分。

 


ARM 嵌入式和单片机开发模式的区别
一、 开发模式单片机开发多为裸机,程序规模小,多为单个程序员独立开发。有些复杂产品也会使用高端单片机如STM32之类,并使用RTOS(uCOS、freeRTOS等)。嵌入式开发几乎全部基于嵌入式操作系统,目前使用最多的是 linux 和Android。
  • 快速交货
  • 不限制修订
  • 免费咨询
  • 可上门服务
  • 3年售后
  • 即期交货
联系我们,与优秀的工程师一对一的交谈
已查看此服务的人员也已查看
中文LLaMA & Alpace 大模型
详情
jpct-ae开发3D赛车游戏
详情
c#游戏之路-wpf版本开发
详情
Silverlight 游戏开发:简单的技能条系统
详情