ARM-Linux开发与MCU开发有何不同
发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,这篇文章将为大家详细讲解有关ARM-Linux开发与MCU开发有何不同,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。针对ARM-Linux程序的开发,
千家信息网最后更新 2025年01月28日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安全错误
数据库的锁怎样保障安全
建材管理系统数据库建立
智能柜软件开发报价表
汪涛无线网络技术导论的作者
ibm服务器关机记录查看
赛尔网络技术服务
游戏数据库修复软件下载
童车服务器
中国移动通信虚拟服务器怎么设置
如何配置腾讯云服务器安全组
广西佐泰网络技术有限公司
软件开发怎么做帐
余姚手机软件开发公司
第一届ASC网络安全峰会
北京通勤人员数据库怎样查询
工业网络技术从事职业
美女日记软件开发
网络安全员支付宝
杭州中紫网络技术有限公司
武汉留才网络技术有限公司怎么样
戴尔服务器一直在启动
金融从业者查询数据库
中天科技软件开发工资
rpc服务器手动和自动
自动排课数据库设计
打开server服务器
服务器虚拟内存
云企网络技术
互联网科技中心跟科技中心
大专软件开发毕业设计题目
关于网络安全的视频怎么拍