ARM-Linux开发与MCU开发有何不同
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章将为大家详细讲解有关ARM-Linux开发与MCU开发有何不同,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。针对ARM-Linux程序的开发,
千家信息网最后更新 2025年12月03日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芯片的处理能力很强,通过外部电路可以实现各种复杂的功能,其功能远远强于单片机。
(4)固件的存储位置不同
单片机: 通常具备片内flash存储器,固件程序通常存储在该区域,若固件较大则需要通过外部电路设计外部flash用于存储固件。
ARM-Linux: 由于其没有片内的flash, 并且需要运行操作系统,整个系统映像通常较大,故ARM-Linux开发的操作系统映像和应用通常存储在外部的MMC、SD卡上,或者采用SATA设备等。
(5)启动方式不同
单片机: 其结构简单,内部集成flash, 通常是芯片厂商在程序上电时加入固定的跳转指令,直接跳转到程序入口(通常在flash上); 开发的应用程序通过编译器编译,采用专用下载工具直接下载到相应的地址空间; 所以系统上电后直接运行到相应的程序入口,实现系统的启动。
ARM-Linux: 由于采用ARM芯片,执行效率高,功能强大,外设相对丰富,是功能强大的计算机系统,并且需要运行操作系统,所以其启动方式和单片机有较大的差别,但是和家用计算机的启动方式基本相同。 其启动一般包括BIOS,bootloader,内核启动,应用启动等阶段;
(a)启动BIOS: BIOS是设备厂家(芯片或者是电路板厂家)设置的相应启动信息,在设备上电后,其将读取相应硬件设备信息,进行硬件设备的初始化工作,然后跳转到bootloader所在位置(该位置是一个固定的位置,由BIOS设置)。 (根据个人理解,BIOS的启动和单片机启动类似,需要采用相应的硬件调试器进行固件的写入,存储在一定的flash 空间,设备上电启动后读取flash空间的指令,从而启动BIOS程序。 )
(b)启动bootloader: 该部分已经属于嵌入式Linux软件开发的部分,可以通过代码修改定制相应的bootloader程序,bootloader的下载通常是采用直接读写SD卡等方式。 即编写定制相应的bootloader,编译生成bootloader映象文件后,利用工具(专用或通用)下载到SD卡的MBR区域(通常是存储区的第一个扇区)。 此时需要在BIOS中设置,或者通过电路板的硬件电路设置,选择bootloader的加载位置; 若BIOS中设置从SD卡启动,则BIOS初始化结束后,将跳转到SD卡的位置去执行bootloader,从而实现bootloader的启动。
Bootloader主要作用是初始化必要的硬件设备,创建内核需要的一些信息并将这些信息通过相关机制传递给内核,从而将系统的软硬件环境带到一个合适的状态,最终调用操作系统内核,真正起到引导和加载内核的作用。
(c)启动内核 : bootloader启动完成初始化等相关工作之后,将调用内核启动程序。 这就进入了实际的操作系统相关内容的启动了,包括相应的硬件配置,任务管理,资源管理等内核程序的启动。
(d)启动应用: 在操作系统内核启动之后,就可以开始启动需要的应用,去完成真正的业务操作了。
2. Arm-Linux 基本开发环境
前面介绍了ARM-Linux应用开发和单片机开发的不同之处,相信你已经对ARM-Linux应用开发有了一个基本的认识了,下面将介绍一下ARM-Linux的基本开发环境。 其主要包括硬件环境和软件环境两个部分,这里以iMX53和Ubuntu为例进行说明。
(1)硬件环境
开发板: ARM运行的硬件环境,或者是相应项目的ARM电路板;
计算机: 作为开发主机使用,安装Linux(如Ubuntu)),或者采用虚拟机安装Ubuntu;
串口线: 用于开发过程中采用终端进行串口调试或下载程序;
网线: 用于连接arm-board和开发主机,实现tftp下载内核(程序等),通过网络nfs运行程序等。
SD卡(及读卡器)或者其他存储设备: 用于存储bootloader、内核映像等,以及最终的软件系统的存储; 开发过程中,通常用于保存bootloader,引导系统启动。
(2)软件环境
Ubuntu: 作为操作系统,是整个软件开发环境的载体,相应的开发工具都布置在此系统中。
LTIB: 这是freescale的提供的一个编译工具链,能够很方便的将源代码文件编译为适合的程序代码,并对程序进行调试; 用户也可以通过下载源码构建自己的编译工具链。
tftp: 用于从开发主机Ubuntu上向arm-board 下载内核文件、应用文件等。
nfs网络文件系统: 用于在开发主机上建立网络nfs文件根系统,arm-board通过nfs网络文件系统读取开发主机上的虚拟根文件系统,完成系统的启动; 方便系统的开发与调试。
minicom: 串口调试工具,用于在开发主机上与arm-board通信,实现对arm-board上应用程序的操作与调试;
Eclipse: 集成开发环境,主要方便代码的编辑、编译等,也可采用DS5,RealView等; 或者采用gedit进行编辑,通过LTIB进行编译和管理。
这篇文章将为大家详细讲解有关ARM-Linux开发与MCU开发有何不同,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
ARM-Linux: 开发板,网线,串口线,SD卡;
对于ARM-Linux开发,通常是没有硬件的调试器的,尤其是在应用开发的过程中,很少使用硬件的调试器,程序的调试主要是通过串口进行调试的; 但是需要说明的是,对于ARM芯片也是有硬件仿真器的,但通常用于裸机开发。
ARM-Linux:串口下载、tftp网络下载、或者直接读写SD、MMC卡等存储设备,实现程序下载;
这个与开发环境的硬件设备是有直接关系的,由于没有硬件仿真器,故ARM-Linux开发时通常不采用仿真器下载; 这样看似不方便,其实给ARM-Linux的应用开发提供了更多的下载方式。
单片机: 通常是一个完整的计算机系统,包含片内RAM,片内FLASH,以及UART、I2C、AD、DA等各种外设;
ARM: 通常只有CPU,需要外部电路提供RAM以供ARM正常运行,外部电路提供FLASH、SD卡等存储系统映像,并通过外部电路实现各种外设功能。 由于ARM芯片的处理能力很强,通过外部电路可以实现各种复杂的功能,其功能远远强于单片机。
单片机: 通常具备片内flash存储器,固件程序通常存储在该区域,若固件较大则需要通过外部电路设计外部flash用于存储固件。
ARM-Linux: 由于其没有片内的flash, 并且需要运行操作系统,整个系统映像通常较大,故ARM-Linux开发的操作系统映像和应用通常存储在外部的MMC、SD卡上,或者采用SATA设备等。
单片机: 其结构简单,内部集成flash, 通常是芯片厂商在程序上电时加入固定的跳转指令,直接跳转到程序入口(通常在flash上); 开发的应用程序通过编译器编译,采用专用下载工具直接下载到相应的地址空间; 所以系统上电后直接运行到相应的程序入口,实现系统的启动。
(a)启动BIOS: BIOS是设备厂家(芯片或者是电路板厂家)设置的相应启动信息,在设备上电后,其将读取相应硬件设备信息,进行硬件设备的初始化工作,然后跳转到bootloader所在位置(该位置是一个固定的位置,由BIOS设置)。 (根据个人理解,BIOS的启动和单片机启动类似,需要采用相应的硬件调试器进行固件的写入,存储在一定的flash 空间,设备上电启动后读取flash空间的指令,从而启动BIOS程序。 )
开发板: ARM运行的硬件环境,或者是相应项目的ARM电路板;
计算机: 作为开发主机使用,安装Linux(如Ubuntu)),或者采用虚拟机安装Ubuntu;
串口线: 用于开发过程中采用终端进行串口调试或下载程序;
网线: 用于连接arm-board和开发主机,实现tftp下载内核(程序等),通过网络nfs运行程序等。
SD卡(及读卡器)或者其他存储设备: 用于存储bootloader、内核映像等,以及最终的软件系统的存储; 开发过程中,通常用于保存bootloader,引导系统启动。
Ubuntu: 作为操作系统,是整个软件开发环境的载体,相应的开发工具都布置在此系统中。
LTIB: 这是freescale的提供的一个编译工具链,能够很方便的将源代码文件编译为适合的程序代码,并对程序进行调试; 用户也可以通过下载源码构建自己的编译工具链。
tftp: 用于从开发主机Ubuntu上向arm-board 下载内核文件、应用文件等。
nfs网络文件系统: 用于在开发主机上建立网络nfs文件根系统,arm-board通过nfs网络文件系统读取开发主机上的虚拟根文件系统,完成系统的启动; 方便系统的开发与调试。
minicom: 串口调试工具,用于在开发主机上与arm-board通信,实现对arm-board上应用程序的操作与调试;
Eclipse: 集成开发环境,主要方便代码的编辑、编译等,也可采用DS5,RealView等; 或者采用gedit进行编辑,通过LTIB进行编译和管理。
关于ARM-Linux开发与MCU开发有何不同就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
开发
系统
程序
应用
硬件
不同
内核
单片机
环境
存储
应用开发
设备
操作系统
方式
电路
芯片
文件
串口
编译
运行
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
武汉公共信息网络安全监察
轻钢别墅龙骨设备加工软件开发
泰州网络led大屏服务器
管理视频服务器
安徽工控软件开发大概多少钱
db2数据库备份
远程 服务器 管理
mc服务器管理办法
网络安全法的意义都包括什么
新吴区专注软件开发渠道资讯
外派软件开发员怎么样
惠普服务器掉电后无法启动
软件开发没有逻辑
服务器关键设备
服务器更新第三阶段
监控服务器是有哪些
网络安全宣传周江西
软件开发自己创业适合哪种
好友服务器
同一张表查不同列匹配数据库
非洲经贸数据库
索尼相机数据库修改
杭州市网络安全研究所 概况
三个火枪手网络技术公司
网络安全的国内外研究
欧盟r155汽车网络安全详解
东营软件开发多少钱
数据库分库策略
如何用计算机当服务器
烟台戴尔服务器销售电话