【技术大神】应用低功耗MCU搭建XIP Linux开发环境
RZ/A1是瑞萨电子于2013年推出的RZ族MCU的第一个系列,也是瑞萨电子首款基于ARM核的高端通用MCU产品。
该产品的主要有如下两大优点:
1)基于ARM Cortex-A9 内核,最大支持400MHz主频,1000DMIPS,内嵌有MMU内存管理单元和NEON协处理器,因此拥有超强的运算处理能力。
2)片内集成了2~10M字节的SRAM,可以简化硬件设计,用户无需外扩SDRAM,也少了SDRAM采购风险。而且该SRAM分成5个块,每块又拥有独立的128位数据总线,数据处理效率极高。该产品CPU性能卓越,外围资源丰富,可以广泛应用于工业面板、二维码扫描、医疗设备、高端家电等领域。具体芯片的详细介绍和规格,这里就不赘述了。
基于RZ/A1的XIP Linux 介绍
1)什么是XIP?
言归正传,回到本文的主题XIP Linux。XIP是英语eXecute In Place的字母缩写,即芯片内执行,指应用程序可以直接在Flash闪存内运行。
RZ/A1是如何实现XIP模式的呢?是使用Nor-Flash吗?当然不是,Nor-Flash那么多引脚,封装也比较大,已经Out了。RZ/A1内嵌了SPI Multi IO总线控制器,不同于普通的SPI Flash控制器,它除了通过设置寄存器的方式来实现SPI通信外,还支持把SPI通信转换成总线式的并行通信。这样CPU读Flash的时候,控制器自动把读操作转换成SPI命令,从外部的串行Flash读取数据,换句话说,CPU可以像访问内存一样访问串行Flash。因此,应用程序可以直接在串行Flash内运行,不必再把代码复制到SRAM中,如下图所示。
大家可能又会想了,串行Flash的速度会不会很慢呢?并不然,RZ/A1除了支持普通的SPI Flash外,还支持四线的QSPI Flash,还支持双四线的Dual QSPI Flash (8线),速度不会比普通的Nor-Flash速度慢。而且,有RZ/A1双重的缓存机制来保障串行Flash更快的运行速度,其一,SPI Multi IO总线控制器带有读缓存,其二,芯片内嵌了大容量的L1和L2缓存。
2)什么是XIP Linux?
XIP Linux与传统Linux又有什么不同之处呢?
传统Linux的Kernel映像文件被压缩并存储在外部Flash,在系统启动时,需要将Kernel映像拷贝到RAM中,并解压缩后,跳转到Kernel运行,Kernel需要常驻内存中。而且应用程序是存储在文件系统中的,文件系统是以块的形式存储(数据读写需要固定尺寸的块),程序不能直接从块设备运行,需根据动态加载到RAM中运行。
而基于RZ/A1的XIP Linux,CPU可以直接从外部串行Flash运行Kernel,无需做任何拷贝,如此一来Linux启动会很快,而且也节省了很大的RAM空间。另外,XIP Linux使用了AXFS(Advanced XIP File System)文件系统,MMU可以把基于AXFS系统的应用程序的Flash物理地址直接映射到Linux的虚拟地址空间,应用程序也不需要拷贝到RAM,能够直接运行。所以应用程序的启动速度也非常快,同样也节省了大量的RAM空间,如下图所示。
总而言之,相比传统Linux,基于RZ/A1的XIP Linux优势在于,其一,不用加载Kernel和应用程序而致使系统启动速度非常快;其二,使用非常小的RAM空间。因此基于RZ/A1的XIP Linux可以仅使用片内的SRAM,无需扩展SDRAM。
XIP Linux开发环境的搭建
1)PC Linux系统安装
要做Linux的开发,当然少不了Linux的PC系统。用户首先需要在Windows的PC机上安装一个虚拟机软件,然后在虚拟机里安装好Linux系统。虚拟机软件可以选择的很多,此处不多说了。这里Linux PC系统,推荐使用Ubuntu 14.04,当然Ubuntu的其它版本也可以,因为我们使用的GCC已经预编译好了,因此版本对系统的影响不大。安装步骤不赘述了,但需要强调的是,应使用如下命令在Ubuntu系统安装两个工具。
2)RZ/A1 Linux BSP下载
基于RZ/A1的Linux BSP源码仓库放在网站:https://github.com/RENESAS-rz。
用户可以从该网址的rskrza1_bsp_releases目录下下载到最新版的Linux BSP,然后解压到用户目录下。也可以直接在Ubuntu的终端用如下命令操作。
用户也可以从网址——http://renesasrulz.com/renesas_forum_home/rz/m/mediagallery/——下载到最新的Linux BSP,世强平台也还有一些基于RZ/A1的Linux应用笔记可供参考。
3)Linux编译
进入上一步解压的目录:RSKRZA1-BSP-V1.1.0,里面有个setup_env.sh和build.sh文件。setup_env.sh用于设置编译输出及GCC工具链的目录,当然也可以使用默认的,不作修改。Build.sh文件功能很强大,可以用于获取工具链,编译u-boot、Kernel和根文件系统。在RSKRZA1-BSP-V1.1.0下输入如下命令,就会显示出操作菜单,提示用户该如何使用该命令,如下所示。
不同版本的BSP,菜单选项可能有细微差别,但是只需按照上面提示的步骤一步一步操作即可完成编译。
4)目标文件烧录
到现在Linux系统的二进制文件全部编译完成了,那么怎么把生成的bin文件烧录到Flash中呢?这里推荐使用Segger J-Link工具。为方便调试,推荐分别下载安装Windows版本和Ubuntu下用的DEB版本。最好要安装5.0以上版本,也支持RZ/A1板8兆以上的二进制文件烧录。
在2.2节里解压的RSKRZA1-BSP-V1.1.1/Extra/ J-Link_QSPI_Program目录下,即包含了J-Link脚本工具,首先需要把上一步2.3 Section编译生成的二进制文件复制到该目录。该目录下Program_QSPI.bat文件可以运行在Windows环境,Program_QSPI.sh可以运行在Ubuntu环境,选择其中一个操作即可。执行该脚本后,提示如下选项,用户依次选择1、2、4、6、9项后即可完成整个Linux系统的烧录。
重新上电后,通过串口即可看到u-boot启动的命令提示行,这时输入命令”run xa_boot”即可启动Linux系统。
Linux应用程序的下载调试方法。
对于Linux应用程序的开发,大家可以借助Eclipse或者QT等工具,可以可视化配置交叉编译环境,也省了写Makefile文件的工作。由于本文篇幅有限,这里就不详细说明怎么使用这些工具进行应用程序开发了。
那么写好并编译完成的应用程序,怎么下载到RZ/A1的XIP Linux上运行测试呢?方法有多种,这里只介绍一种最有效的方法,就是把应用程序全部放在一个目录下,用axfs工具(该工具在Linux编译的时候会自动生成)把该目录也打包成axfs格式的映像文件。再用J-Link工具把该映像文件烧录到Flash指定的地址(如:0x1A000000)。在开发板的系统里使用如下命令把该区域挂载到Linux系统下,然后进入该挂载目录运行应用程序。
也可以把上面的内容添加到文件SNNxxx(NN代表两位数字,xxx代表字母,个数不限),使其具有可执行属性,然后放到根文件系统的/etc/init.d/目录下面,这样每次嵌入式Linux系统启动后,可以自动加载应用程序的axfs映像文件。
后记
后记
实际的Linux应用开发是比较复杂的,尤其驱动程序的移植等。本文在介绍有关操作时,由于篇幅有限描述比较粗略,主要起抛砖引玉的作用,让用户能够了解在RZ/A1平台上开发Linux是怎么一回事。后续如果有具体的项目开发,可以详细咨询世强。
作者:陈绪典
- |
- +1 赞 0
- 收藏
- 评论 1
本网站所有内容禁止转载,否则追究法律责任!
评论
全部评论(1)
-
竹游子 Lv4. 资深工程师 2017-03-08这个系列有什么评估板呢?
- 世小强回复: 这系列的开发板可以参考:http://www.sekorm.com/doc/55116.html http://www.sekorm.com/doc/55117.html 或者您可以直接搜索“Renesas RZA1H 开发板”,购买可以联系:400-887-3266
相关推荐
【技术大神】由MCU的可承受输入电流谈电路设计
本文通过瑞萨电子的R5F10PPJ这款MCU,结合项目中遇到的一些实际例子来探讨下MCU的可承受输入电压和电流的问题。
【经验】瑞萨微控制器RX65N芯片唯一ID码读取方法
物联网(IoT)和工业4.0的扩张增加了对微控制器的需求,在人机交互的基础上,还需要对保密性、完整性和可用性等不同安全要求提供支持。针对于这些应用特点,瑞萨电子推出了RX600系列的新型RX65N/RX651 微控制器 (MCU)。本文以RX65N系列的MCU为例,介绍RX65N系列芯片自带的唯一ID识别码的读取方法。
【技术大神】光电感烟火灾探测器的硬件设计
UPD79F7024内部具有16位高速定时器TM00,可配置成PWM输出模式,用于对红外发射的PWM调制。因此,其在光电感烟探测器电路设计时,有着举足轻重的作用。
世界上最节能的微控制器EFM32之十大低功耗奥秘
Silicon Labs EFM32 32 位微控制器系列是世界上最为节能的微控制器,特别适用于低功耗和能源敏感型应用,包括能源、水表和燃气表、楼宇自动化、警报及安防和便携式医疗/健身器材。本文着重强调10个Silicon Labs32位MCU功耗低的因素。
Silicon Labs 32位低功耗MCU EFM32JG1P在故障指示器的应用中,GPIO拉低后,电平为0.8V,而不是0V,根本原因是什么?
Silicon Labs 32位低功耗MCU EFM32JG1P GPIO拉低后,电平为0.8V,主要是因为底下大焊盘PIN0没有连接到GND或者与GND接触不良造成。
超低功耗MCUEFM32能耗模式探讨
世强代理的Silicon Labs EFM32 MCU 旨在在低能耗模式下实现高度的自主运行。该MCU 智能结合了外围设备、低漏电 RAM、数据保持、DMA 和互联能力、低功耗振荡器以及极短的唤醒时间,因此长时间在低能耗模式下的运行效果很好,大幅降低了能耗。
如何为Silicon Labs 32位低功耗MCU EFM32GG230F512实现基于RTC的软件无滴答日历?
在Silicon Labs 32位低功耗MCU EFM32GG230F512上实现软件方式的无滴答日历,可以通过使用日历标准C库 time.h, 在time.h中实现的timer()函数基于RTC计数值来计 算日历时间。
Silicon Labs EFM32系列32位低功耗MCU Cortex系列微控制器采用的软件接口标准CMSIS有哪些特性?
嵌入式系统越来越复杂,开发和软件测试的工作量也显著增加,为了减少开发时间并且降低产品中存在的风险,软件重用已经越来越普遍。为了各种软件产品间的配合,ARM同各大 微控制器供应商、工具供应商和软件解决方案提供商一起开发了CMSIS,一个涵盖了大多数Cortex-M处理器和Cortex-M微控制器产品的软件框架。 CMSIS的设计目标和特性包括以下几点: 1、提高软件的可用性。 2、提高软件的兼容性。 3、独立的工具链特性。 4、开放性。 5、易用性。
【产品】帅到飞起,有60种选择的256 KB闪存低功耗MCU
为使MCU在运行模式和睡眠状态下获得最低功耗,EFM32 WG系列还融入了eLL技术。
32位低功耗MCU EFM32系列内部的LFRCO是32K还是32.768K?
EFM32系列32位低功耗MCU内部的LFRCO为32K。
请推荐工作电压1.2到5V的低功耗MCU,6到10pin,无需AD。
很抱歉,没有完全符合要求的低功耗MCU可以推荐。资源相对接近的低功耗MCU推荐EFM8SB1,工作电压是1.8V-3.6V,QFN20封装,Flash从2KB到8KB。
Silicon Labs 32位低功耗MCU EFM32G232F128系列微控制器GPIO的最大翻转速度为多少?
EFM32G232F128系列微控制器GPIO的最大翻转速度为系统时钟的1/6。例如,当主频为32MHz时,GPIO最大翻转速度大约为5.3MHz。
【产品】20年不用换电池!这款低功耗MCU就是这么任性
C8051F96x是Silicon Labs推出的一款功耗比同类产品降低40%的超低功耗MCU,电池寿命可达20年,是智能仪表、家用装置监测、便携式医疗等产品的理想选择,也可提供完整的低功耗sub-GHz无线解决方案。
Silicon Labs 32位低功耗MCU EFM32ZG210F32是否支持Audio jack音频接口通讯?
Silicon Labs 32位低功耗MCU EFM32ZG210F32支持Audio jack音频接口通讯,通过Timer定时器的捕捉功能实现的。原厂有提供音频通讯的参考代码,请参考AN0054。
Silicon Labs 32位低功耗MCU EFM32JG的在外部高频振荡器HFXO的频率范围要求多少?
Silicon Labs 32位低功耗MCU EFM32JG的外部高频振荡器HFXO的频率范围是38-40MHz,它允许的最低频率是38MHz,这比Classic系列的EFM32允许的(4MHz)高很多。
电子商城
现货市场
服务
可定制波导隔离器频率覆盖5.5GHz~110GHz,插损损低至0.25dB、隔离度、正向方向功率、封装尺寸参数。
最小起订量: 1pcs 提交需求>
布莫让支持超微型单级/多级、微型单级/多级、超微型 TEC 封装产品定制,最小晶粒高度:0.3 mm; 最小横截面:0.2 mm; 最小节距:0.15 mm;能做到最小尺寸 1mm*1mm, 最高级数可达到 7 级。
提交需求>
登录 | 立即注册
提交评论