文章目录

  • 01 - 裸机开发特点
    • 1.1 - 51 / Arduino / STM等单片机
    • 1.2 - ARM单片机
  • 02 - 总结

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

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模式和寄存器操作

韦东山ARM第一期总结相关推荐

  1. 韦东山ARM第一期作业(一)ARM时钟体系

    文章目录 01 - 作业所在路径 02 - 作业描述 03 - 作业解答 01 - 作业所在路径   ARM裸机1期加强版\源码文档图片\文档图片\第010课_掌握ARM芯片时钟体系 02 - 作业描 ...

  2. 韦东山ARM第一期作业(三)内存控制器和SDRAM

    文章目录 01 - 作业所在路径 02 - 作业描述 03 - 作业解答 01 - 作业所在路径   ARM裸机1期加强版\源码文档图片\文档图片\第012课_内存控制器与SDRAM 02 - 作业描 ...

  3. 韦东山ARM第一期作业(二)UART串口

    文章目录 01 - 作业所在路径 02 - 作业描述 2.1 - 作业1 2.2 - 作业2 03 - 作业解答 3.1 - 作业1解答 3.2 - 作业2解答 04 - 作业源码分享 01 - 作业 ...

  4. 韦东山嵌入式第一期学习笔记DAY_4——8_3编写第1个程序点亮LED

    作者:GWD 时间:2019.7.5 一.课程内容: 1.不太完美的配置方式(会破坏寄存器其他的位) 2.问:几条常用的ARM汇编指令? 3.问:LDR与MOVE的区别? 答:LDR时伪指令,执行的时 ...

  5. 韦东山嵌入式第一期学习笔记DAY_3——7_1_裸机开发步骤简介

    作者:GWD 时间:2019.7.4 一.课程内容: 1.问:windows.linux与arm(linux)建立工程的区别? 答: 2.问:ubuntu环境下编译一个C文件的过程? 答: 1).建立 ...

  6. 韦东山嵌入式第一期学习笔记DAY_1——2_0_安装ubuntu16.04虚拟机

    作者:GWD 时间:2019.7.2 一. 课程内容: 1. 简单介绍linux: 1).linux内核与linux发行版本的联系: 2. 安装ubuntu虚拟机: 二. 学习要点: 1. 问:SCM ...

  7. 韦东山嵌入式第一期学习笔记DAY_1——3_1_linux命令入门演示

    作者:GWD 时间:2019.7.2 一.课程内容: 1.问:除了图形界面,ubuntu下面有没有其他方式也可以创建目录.创建文件? 答:通过linux命令,linux命令,是每一个linux学习者必 ...

  8. 韦东山嵌入式第一期学习笔记DAY_1——3_2_shell命令解析器功能说明

    作者:GWD 时间:2019.7.2 一. 课程内容: 1.问:在shell(命令解释器)中输入字符串并回车的过程 答: 1). shell根据第1个字符串去环境变量PATH所指定的目录中找到同名的应 ...

  9. 韦东山嵌入式第一期学习笔记DAY_2——6_2_使用eop烧写裸板程序

    作者:GWD 时间:2019.7.3 一.课程内容 1.安装JTAG驱动: 1).复制驱动所在路径: 2).安装驱动时候,选择浏览计算机以查找(注意对于EOP需要安装几次驱动,路径都是一样的) 2.安 ...

最新文章

  1. 一个操作系统的实现(1)
  2. 机会只留给有准备的人
  3. Hadoop_NameNode_代码分析_目录树(2)
  4. 快速排序详解+各种实现方式
  5. tf.gfile()函数
  6. [数据库]---mysql数据库 使用binlog+canal或binlake进行数据库的复制
  7. curl post 日志_curl命令发送Post请求
  8. Tensorflow2.x代码实现计算Top-k Accuracy
  9. 华谊兄弟:拟向阿里影业、腾讯等发行不超8.2亿股股票
  10. ios 分段 判断 小说阅读器_还在用别的小说阅读器?今天教你用Python制作简易小说阅读器!...
  11. Ubuntu18.10与windows7文件夹共享
  12. 阶乘与 pi 的关系 —— 斯特林公式(Stirling formula)
  13. 服务器接收到其他服务器传送的数据_其他-查找网内的其他DHCP服务器-从零开始学RouterOS系列21...
  14. codeblock输出中文乱码问题
  15. lora网关以太网传输
  16. python常用文件操作和解析xml文件
  17. 数字图像处理基本知识
  18. 微信小程序打开外部链接
  19. [米家]窗帘电机【立创开源】
  20. 2、软件造价总结(主要基准数据)

热门文章

  1. Padavan老毛子的二级路由,怎样设置与主路由在同一网段
  2. 20200220MFC 之CListCtrl(二)
  3. 女生适合从事什么工作?程序员!
  4. 使用tensorflow构建一个卷积神经网络
  5. 3dsmax UVW展开,然后在 BodyPaint 3D 中进行绘制
  6. 统信UOS无法设置1920x1080分辨率解决方法
  7. 抖音直播运营 | 疫情时代下如何用直播驱动品牌业务增长
  8. 如何利用在线工具更改寸照底色
  9. maven(视频学习)
  10. Application.DoEvents();