ARM 嵌入式和单片机开发模式的区别

一、 开发模式

  • 单片机开发多为裸机,程序规模小,多为单个程序员独立开发。有些复杂产品也会使用高端单片机如STM32之类,并使用RTOS(uCOS、freeRTOS等)。
  • 嵌入式开发几乎全部基于嵌入式操作系统,目前使用最多的是 linux 和Android。

二、 技术特征

编程语言方面

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

嵌入式开发较复杂,一般分底层和应用层。底层使用C语言,应用层使用C、C++、Java等语言均有。嵌入式C语言对结构体、
数据结构、算法、函数指针(用来实现面向对象)等高级特性使用比较多)。


软硬件组件方面

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

嵌入式系统则涉及更多复杂外设,譬如网络(有线网卡、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语言程序编译为汇编程序,再进行上面的后续部分

在这里插入图片描述


注:源自B站朱有鹏老师.

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值