ARM-Linux与MCU开发的不同之处 - 与非网

文章推薦指數: 80 %
投票人數:10人

今天我们来看看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号



請為這篇文章評分?