ARM-Linux开发与MCU开发有何不同?

针对ARM-Linux程序的开发,主要分为三类:应用程序开发、驱动程序开发、系统内核开发,针对不同种类的软件开发,有其不同的特点。今天我们来看看ARM-Linux开发和MCU开发的不同点,以及ARM-Linux的基本开发环境。

1. ARM-Linux应用开发和单片机开发的不同

这里先要做一个说明,对于ARM的应用开发主要有两种方式:一种是直接在ARM芯片上进行应用开发,不采用操作系统,也称为裸机编程,这种开发方式主要应用于一些低端的ARM芯片上,其开发过程非常类似单片机,这里不多叙述。还有一种是在ARM芯片上运行操作系统,对于硬件的操作需要编写相应的驱动程序,应用开发则是基于操作系统的,这种方式的嵌入式应用开发与单片机开发差异较大。ARM-Linux应用开发和单片机的开发主要有以下几点不同:

(1)应用开发环境的硬件设备不同

单片机:开发板,仿真器(调试器),USB线;

ARM-Linux:开发板,网线,串口线,SD卡;

对于ARM-Linux开发,通常是没有硬件的调试器的,尤其是在应用开发的过程中,很少使用硬件的调试器,程序的调试主要是通过串口进行调试的;但是需要说明的是,对于ARM芯片也是有硬件仿真器的,但通常用于裸机开发。

(2)程序下载方式不同

单片机:仿真器(调试器)下载,或者是串口下载;

ARM-Linux:串口下载、tftp网络下载、或者直接读写SD、MMC卡等存储设备,实现程序下载;

这个与开发环境的硬件设备是有直接关系的,由于没有硬件仿真器,故ARM-Linux开发时通常不采用仿真器下载;这样看似不方便,其实给ARM-Linux的应用开发提供了更多的下载方式。

(3)芯片的硬件资源不同

单片机:通常是一个完整的计算机系统,包含片内RAM,片内FLASH,以及UART、I2C、AD、DA等各种外设;

ARM:通常只有CPU,需要外部电路提供RAM以供ARM正常运行,外部电路提供FLASH、SD卡等存储系统映像,并通过外部电路实现各种外设功能。由于ARM芯片的处理能力很强,通过外部电路可以实现各种复杂的功能,其功能远远强于单片机。

想要获取更多资料私聊

linux 串口编程_ARM-Linux开发与MCU开发有何不同?上篇相关推荐

  1. Linux 串口编程四 串口设备程序开发

    Linux 串口编程和程序相对来说是很简单的,之所以用博客连载来展示,主要是想在学会使用的基础上掌握相关背景,原理以及注意事项.相信在遇到问题的时候,我们就不会对于技术的概念和 API 的使用浅尝辄止 ...

  2. Linux 串口编程三 使用termios与API进行串口程序开发

    在 termios 结构体以及内部终端控制标志中,并非所有的参数对于实际的物理串口都是有效的,在使用过程中也不需要对于所有标志的作用都有所理解.事实上,快速掌握一项技术的核心点也是一种学习能力.对于使 ...

  3. Linux串口编程_termios

    1.1 Linux串口编程主要是设置structtermios结构体的个成员值.Termios是在POSIX规范中定义的标准接口,表示终端设备(包括虚拟终端丶串口等),串口是一种终端设备,一般通过终端 ...

  4. Linux 串口编程二 深入了解 termios

    前言 这一系列串口编程重点在应用层编程,但是在讲解原理与相关概念时需要对驱动框架有个基础的认识.如果只是浅尝辄止,以后在遇到串口驱动与应用层程序调试难免遇到瓶颈.关于 tty驱动架构参见我的其他博客: ...

  5. Linux 串口编程一 一些背景

    在大部分讲解 Linux 编程书籍的时候会发现没有单独的串口编程章节,实际上串口编程已经被概括在了"终端"或者"终端IO"章节里面.在上一篇博客中对经常出现的几 ...

  6. 嵌入式Linux 串口编程系列2--termios的VMIN和VTIME深入理解

    在上一篇文章中,我们介绍了串口的一些基本知识.串口配置接口 termios结构体的概念,串口的配置参数有n多个,这里面不用都背下来,什么时候使用,翻看手册即可,但是有两个 参数是一定要理解的,就是VM ...

  7. Linux串口编程详解

    Linux串口编程详解(阻塞模式.非阻塞模式.select函数) 之前一直觉得串口编程很简单,这两天仔细研究后发现串口里的各种参数还挺复杂,稍不注意就容易出错,这里总结一下网上的各种文章及自己的理解与 ...

  8. Linux串口编程 —— 发送的数据无法被接收,且被原封不动返回

    Linux串口编程--发送的数据无法被接收,且被原封不动返回 问题描述 使用 #include <fcntl.h> /*文件控制定义*/ #include <termios.h> ...

  9. linux串口编程-termios结构

    linux串口编程简单起来可以十分简单,但是复杂起来,也可以异常复杂.因为linux串口不仅仅是个串口,它跟终端联系起来.一般串口编程,绕不开的是struct termios结构体,其定义如下: #d ...

最新文章

  1. 训练数据集如何划分验证测试集?train/test(val/dev) set和交叉验证(cross validation)
  2. 职业高中计算机原理,132-浅议职业高中计算机组成原理教法初探
  3. 【Android 逆向】加壳技术识别 ( 函数抽取 与 Native 化加壳的区分 | VMP 加壳与 Dex2C 加壳的区分 )
  4. python findall函数_Ramp;Python Data Science系列:数据处理(11)Python正则表达式re模块(三)...
  5. mybatis学习(33):动态sql if
  6. 一般算术表达式转换成后缀式
  7. 估计理论(1):最小方差无偏估计(第2章)
  8. win10磁盘管理教程
  9. 1044 : 不及格率
  10. 用迅雷或者IDM下载下载百度网盘文件方法
  11. 无聊做做数学题系列1 - 正弦定理及三角公式
  12. [前端基础] 浏览器篇
  13. 程序流程图N-S图PAD图
  14. C++ 异常处理机制的实现
  15. java 根据excel模板格式导出指定格式的excel
  16. 黑解(ICCID)证书备份
  17. 《文明之光 第一册》一一7.3 第二节 最珍贵的财富(1)
  18. 一文了解MIPI 协议中的SPMI接口介绍
  19. java从github下载项目_在github下载的java项目通过idea打开(全流程图文,傻瓜式)
  20. 写一个微信小程序的代码

热门文章

  1. 免费的FTP linux 服务器中文,linux ftp服务器的搭建和中文字体乱码的解决
  2. 获取电脑的唯一识别码_教你如何知道自己的电脑能够装黑苹果
  3. mysql 透明代理_透明代理MySQL_基于zbus的MySQL透明代理(100行)-云栖社区
  4. python高阶函数filter_python 高阶函数之filter
  5. stm32f105使用12M外部晶振
  6. shell编程服务器维护,简单监测服务器的shell脚本
  7. java中的controller_详解Spring Boot中Controller用法
  8. c语言清除html标签的方法,去除HTML代码中所有标签的两种方法
  9. i2c驱动 无法使用_Zephyr驱动SCCB设备
  10. mysql查询每个表的描述_MS SQL SERVER 读取数据库中每个表的描述/注释以及表中字段/列的字段名,字段类型,字段描述/注释/说明等信息...