韦东山ARM第一期总结


一切都站在裸机开发者的角度而言

01 - 裸机开发特点

1.1 - 51 / Arduino / STM等单片机

  回顾最简单的51单片机,到方便开发的Arduino,到能迅速成型的STM,在裸机的开发角度而言,表现为存在越来越丰富强大的API,以及编译链接等细节对程序员越来越透明化,可以得出如下特点:
  1、方便的IDE,编译套件一条龙服务,一键编译下载运行调试
  2、配置寄存器,功能模块化,任务顺序执行
  3、程序从main()开始,C/C++语言编程
  4、程序只运行在后台(大循环)和前台(中断
  5、程序的逻辑设计固定,逻辑比较简单,功能比较单一
  6、程序员不需要关心堆栈内存等问题
  7、程序员直接使用修饰符就可以使用中断函数

1.2 - ARM单片机

  1、不固定的编辑工具,原始的gcc编译链,额外的下载器,调试方法单一
  2、配置寄存器,功能模块化,任务顺序执行
  3、程序从汇编start.S开始,汇编 / shell / C语言编程
  4、程序能运行在若干种模式内,宏观上也分为后台(大循环)和前台(异常)
  5、程序的逻辑设计固定,逻辑比较简单,功能比较单一
  6、程序员需要设置程序运行的堆栈,管理内存
  7、中断需要程序员去配置寄存器、分辨触发位、以及提供中断函数

02 - 总结

  对ARM裸机而言,更像是从轮子造起,需要用大量的工作去配置一个能让main()执行的环境,其实51-STM等强大丰富的IDE比如keil已经替我们完成了前面的工作,所以ARM裸机开发是完完全全反应了一个单片机真实的运行流程

内容 51 / Arduino / STM ARM单片机
编辑 IDE套件 任意文本编辑器
编译 IDE套件 原始gcc编译链
下载 IDE套件 特定的额外下载器
调试 IDE套件 串口 / LCD 等可视化设备
编程语言 纯C/C++ 汇编 + shell + C
程序的开始点 main() start.S
堆栈内存问题 不关心 需要自定义配置管理
中断使用 修饰符 需要对CPU模式和寄存器操作

猜你喜欢

转载自blog.csdn.net/Hxj_CSDN/article/details/86306706