ARM Linux程序的开发主要分为三类:应用程序开发、驱动程序开发、内核开发以及具有不同特征的不同类型的软件开发。

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芯片的处理能力很强,通过外部电路可以实现各种复杂的功能,其功能远远强于单片机。

(4)固件的存储位置不同

单片机:通常具备片内flash存储器,固件程序通常存储在该区域,若固件较大则需要通过外部电路设计外部flash用于存储固件。

ARM-Linux: 由于其没有片内的flash, 并且需要运行操作系统,整个系统映像通常较大,故ARM-Linux开发的操作系统映像和应用通常存储在外部的MMC、SD卡上,或者采用SATA设备等。

(5)启动方式不同

单片机:其结构简单,内部集成flash, 通常是芯片厂商在程序上电时加入固定的跳转指令,直接跳转到程序入口(通常在flash上);开发的应用程序通过编译器编译,采用专用下载工具直接下载到相应的地址空间;所以系统上电后直接运行到相应的程序入口,实现系统的启动。

ARM-Linux:由于采用ARM芯片,执行效率高,功能强大,外设相对丰富,是功能强大的计算机系统,并且需要运行操作系统,所以其启动方式和单片机有较大的差别,但是和家用计算机的启动方式基本相同。其启动一般包括BIOS,bootloader,内核启动,应用启动等阶段。

来源:ARM-Linux开发与单片机开发的异同 - 21ic电子网

ARM-Linux开发与单片机开发的异同相关推荐

  1. linux 下51单片机开发环境搭建

    linux 下51单片机开发环境搭建(arch linux) 编译sdcc 软件: sdcc 命令:sdcc file.c 得到一堆文件需要( .inx) 命令: packihx file.inx & ...

  2. linux下51单片机开发解决方案

    上篇: 最近从学长那里淘到了一套单片机开发板,他给我的开发工具,驱动等都是 windwos 下的,而我一直用的是 linux--花了一个周末的时间,终于找到了一个合适的解决方案. 首先,我问了一下狗狗 ...

  3. stc89c52c语言开发,STC89C52单片机开发板入门教程——简介(致雅科技)

    ZY_STC89C52开发板提供了以下的实验源代码和相关说明文档,帮助广大初学者快速的掌握STC89C52单片机的使用方法,开发者可以基于示例代码开发自己的应用,加快产品开发进度,节省宝贵的开发时间. ...

  4. 单片机开发与Linux开发有何不同?

    点击上方"大鱼机器人",选择"置顶/星标公众号" 福利干货,第一时间送达! 针对ARM-Linux程序的开发,主要分为三类:应用程序开发.驱动程序开发.系统内核 ...

  5. 单片机开发与Linux开发区别

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

  6. linux 串口编程_ARM-Linux开发与MCU开发有何不同?上篇

    ARM-Linux开发与MCU开发有何不同? 针对ARM-Linux程序的开发,主要分为三类:应用程序开发.驱动程序开发.系统内核开发,针对不同种类的软件开发,有其不同的特点.今天我们来看看ARM-L ...

  7. 单片机开发-软件架构与系统设计(工程实现使用的也是轮询系统、前后台系统和多任务系统)

    目录 单片机开发1 轮询系统: 概述 详述 前后台系统 概述 详述 单片机开发1 单片机开发可以分为程序裸跑与多任务. 在单片机的工程使用中,可以分为裸机系统和多任务系统. 裸机系统一般被叫做裸跑,大 ...

  8. 最新linux伺服控制,基于ARM Linux的三轴伺服控制系统人机界面设计 毕设

    基于ARM Linux的三轴伺服控制系统人机界面设计 毕设 洛阳理工学院毕业设计(论文) 基于ARM+Linux的三轴伺服控制系统人机界面设计 摘要 现代计算机技术的产业革命,将世界经济从资本经济带入 ...

  9. 一款简单易上手的ARM单片机开发IDE—STduino

    一款简单易上手的ARM单片机开发IDE-STduino 前言 STduino介绍 前言 第一眼看到这个IDE,第一反应就是名字有点像TrueSTUDIO,然后我上网查了一下,当然是没有关系的,只能说是 ...

最新文章

  1. spring的aop整理
  2. 量子计算机首次成功模拟化学反应
  3. 【Java】用随机数打印hello world
  4. Maven的介绍与安装步骤
  5. x64技术之SSDT_Hook
  6. 内置RTK北斗高精度定位的智能安全帽完成调试,上报至smarteye平台
  7. Intel i5-7200U (3100MHZ),1*8GB(DDR3 1600) 在 Aida64 V5.97.4600 的测试结果
  8. 【python 保存生成的图片 (plt;opencv;PIL)】
  9. 爬虫精进(八) ------ selenium
  10. Android 7 soter,安卓首发!OPPO Find X全面支持微信人脸支付功能
  11. AutoJs学习-抖音自动评论
  12. iOS App 签名的原理
  13. win10计算机禁用用户账户控制,Win10系统用户帐户控制提示怎么取消 关闭用户账户控制的3种方法...
  14. win2003 iis 设置301转向
  15. 数学分析教程 第十三章学习感受
  16. 彩票小贩潜伏50天惊人绽放携12人合买中52万
  17. Java游戏开发 —— 五子棋
  18. 浅谈电机,如何选择步进电机的型号?
  19. ipone12为什么没虹膜识别
  20. JAVA基础语法——面向对象思想

热门文章

  1. mysql高阶语句一
  2. kotlin挂起函数
  3. iOS 录音pcm获取当前音量
  4. 倍福--伺服配置和电机型号设置
  5. windows tomcat无乱码 linux下乱码,解决linux服务器tomcat乱码问题
  6. vue弹出alert_Vue实现移动端 message-box 与 alert 弹框@郝晨光
  7. Swift语法之 ---- ?和!区别
  8. BUU-[极客大挑战 2019]Upload1
  9. 网站的SEO优化(提高搜索引擎收录,类似百度)
  10. 微型计算机2010年8月下,微型计算机(2008上半年合订本)(上下)(附光盘)