ARM-Linux与MCU开发的不同之处 - 与非网
文章推薦指數: 80 %
今天我们来看看ARM-Linux 开发和MCU 开发的不同点,以及ARM-Linux 的基本开发 ... 针对ARM-Linux 程序的开发,主要分为三类:应用程序开发、驱动程序 ...
热点:与非专题|与非观察|与非主题月|与非研究院|硬核拆评|论坛|datasheet|专栏|新品|博客|课程|电路方案|活动|原厂资料 |技术文档
主页 >
控制器/处理器
>
技术方案
>
正文
ARM-Linux与MCU开发的不同之处
2020-04-2909:05
预计 10 分钟读完
分享到:
针对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
分享到:
版权声明:网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有。
如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
侵权投诉
相关推荐
郭天祥—多角度分析51单片机真的已经过时了吗?
课程
14:21
mcu是什么mcu和单片机的区别
资讯
MCU要如何选择,才最正确?
资讯
如何快速掌握一款MCU,可以从这几方面入手
资讯
单片机功能如此强大,为何不能取代PLC?
资讯
满足各种图形显示应用的Microchip32位MCU/MPU单片机
课程
01:08:34
单片机源代码,基于HC32L136系列MCU,额温枪,体温枪设计参考示例源码等
电路方案
STM32F105RBT6STM32MCU单片机40路IO工业级数据采集板AD版硬件原理图+PCB文件
电路方案
推荐热点
推荐百科
最新热点
最新百科
产品
技术
厂商
gpu温度
波特率9600
232接口针脚定义
biss0001
半导体制冷原理
晶体二极管
发光二极管电流
看门狗定时器
空压机型号
低通滤波电路
阈值是什么意思
芯片组驱动
触发器的作用
肖特基二极管和普通二极管区别
联发科是哪个国家的
发光二极管电压
稳压二极管参数
滑动变阻器的作用
中国十大芯片企业
网线颜色顺序
UC3842
STC89C52
七段译码器
MEAS压力传感器
LM311
音频变压器
虚拟示波器
加法器电路
轻触开关电路
麦克风放大电路
脚踏开关
激励器
冰箱电路图
欠压保护电路
拉线开关
马达保护器
整流二极管
升压变压器
LM358
电子管计算机
钽电容器
固定电感器
整流二极管
可变电阻器
制动电阻发热严重怎么处理制动电阻如何测量好坏
压力继电器的图形符号常用压力继电器的符号
稳压管的稳压值是什么意思如何测量稳压管的稳压值
贴片电容怎么看参数贴片电容规格型号对照表
贴片电容怎么测量好坏贴片电容怎么测量容量
贴片电容是什么贴片电容识别方法
如何判断稳压管是否正常工作稳压管怎么量好坏
热继电器怎么选择大小热继电器型号规格表
苹果电池怎么恢复到100苹果电池保修期多久
苹果电池健康度剩余多少就该换了苹果电池免费更换条件
通讯继电器
水晶头
耳机放大器
电阻屏
电动燃油泵
单晶硅
磁流变阻尼器
背光模组
射电望远镜
汽车电子技术
LLC
IGZO
BLDC
JTAG
鸿鹄818
鸿鹄芯片
焊盘
TDA4VM
安全芯片
FTDI
三星a70s
骁龙690
TCXO
VCO
irf540n
ir2110
cr2025
tda2822
SDMA
2.4G
SSOP
GPON
TPMS
BPSK
超宽带
MJPEG
ADAS
CPLD
过温保护
艾矽易
川土微电子
安森美
贸泽电子
加特兰微电子
格科微
e络盟
长鑫存储
华大北斗
瑞萨
微鲸科技
矽力杰
赛普拉斯
格科微电子
迈来芯
onsemiconductor
icinsights
trinamic
意法半导体
优普电子
Esquilo
宏海微电子
Harwin
LEDIL
ARM-Linux与MCU开发的不同之处-控制器/处理器-与非网
热门活动更多活动
ST专区
【研讨会报名】2021STM32全国研讨会走进十大城市
【观看】STM32官方视频课程资源,下载!
【直播】意法半导体边缘人工智能解析
【下载】人机界面|TouchGFX图形应用在亮屏时的低功耗实现
【下载】STM32MCU和MPU板级仿真应用手册
【下载】通信接口|USB发送数据时出现迟滞现象
【下载】计数外设|BCM控制方式在STM32中的实现-使用高级定时器
【下载】STM32U5超低功耗高性能Cortex_M33MCU技术解析培训资料
【下载】STM32以太网MACLoopback的实现
【下载】调试|带有空片检测功能的STM32需要注意的GPIO设计
公众号
技术交流群
与非网微博
©2010-2021苏州灵动帧格网络科技有限公司版权所有.
Supplyframe旗下
Supplyframe四方维
与非网
电路城
摩尔吧
Datasheet5
FindChips
bom2buy
合作机构
中电港
EETOP
元器件交易网
艾睿电子
PulseRain
友情链接
EDA365
电源网
工控网
唯样商城
电子工程网
米尔科技
更多
关于我们
公司介绍
联系我们
加入我们
客户服务
相关法律
网站地图
ICP经营许可证苏B2-20140176
苏ICP备14012660号-6
苏公网安备32059002001874号
延伸文章資訊
- 1ARM-Linux開發與MCU開發的差別是什麼 - 人人焦點
針對ARM-Linux程序的開發,主要分爲三類:應用程式開發、驅動程序 ... 今天我們來看看ARM-Linux開發和MCU開發的不同點,以及ARM-Linux的基本開發環境 ...
- 2ARM-Linux開發與MCU開發的區別 - 每日頭條
ARM-Linux開發與MCU開發的區別. 2018-10-22 由 朗銳智科 發表于程式開發. 對於ARM的應用開發主要有兩種方式:一種是直接在ARM晶片上進行應用開發,不採用作業系統,也 ...
- 3ARM-Linux与MCU开发的不同之处 - 与非网
今天我们来看看ARM-Linux 开发和MCU 开发的不同点,以及ARM-Linux 的基本开发 ... 针对ARM-Linux 程序的开发,主要分为三类:应用程序开发、驱动程序 ...
- 4Re: [請益] 研替Linux/MCU - 看板Soft_Job - 批踢踢實業坊
我覺得可以先從MCU下手在轉linux kernel。 好處是MCU架構相對支援linux的ARM A系列,或是mips到x86等CPU相對簡單很多很多,透過JTAG配合簡單的程式碼 ...
- 5用于MCU/MPU的uCLinux与Linux有什么区别? - CSDN博客
uClinux是针对控制领域的嵌入式linux操作系统,它从Linux 2.0/2.4内核派生 ... uCLinux主要用于MCU和MPU,对于市面上常见的STM32也是做了很好的支持。