【技术大神】应用低功耗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
相关推荐
【经验】RL78系列MCU如何在boot中使用自编程库函数
瑞萨电子新一代微控制器RL78系列是继承了NEC 78K和R8C系列的优点开发出来的低功耗高性能产品,其集成了两个boot区域,对于客户产品的升级非常方便。
设计经验 发布时间 : 2017-08-10
【技术大神】由MCU的可承受输入电流谈电路设计
本文通过瑞萨电子的R5F10PPJ这款MCU,结合项目中遇到的一些实际例子来探讨下MCU的可承受输入电压和电流的问题。
设计经验 发布时间 : 2019-07-02
【技术大神】光电感烟火灾探测器的硬件设计
UPD79F7024内部具有16位高速定时器TM00,可配置成PWM输出模式,用于对红外发射的PWM调制。因此,其在光电感烟探测器电路设计时,有着举足轻重的作用。
设计经验 发布时间 : 2019-09-03
世界上最节能的微控制器EFM32之十大低功耗奥秘
Silicon Labs EFM32 32 位微控制器系列是世界上最为节能的微控制器,特别适用于低功耗和能源敏感型应用,包括能源、水表和燃气表、楼宇自动化、警报及安防和便携式医疗/健身器材。本文着重强调10个Silicon Labs32位MCU功耗低的因素。
新产品 发布时间 : 2016-07-11
Silicon Labs EFM32系列32位低功耗MCU Cortex系列微控制器采用的软件接口标准CMSIS有哪些特性?
嵌入式系统越来越复杂,开发和软件测试的工作量也显著增加,为了减少开发时间并且降低产品中存在的风险,软件重用已经越来越普遍。为了各种软件产品间的配合,ARM同各大 微控制器供应商、工具供应商和软件解决方案提供商一起开发了CMSIS,一个涵盖了大多数Cortex-M处理器和Cortex-M微控制器产品的软件框架。 CMSIS的设计目标和特性包括以下几点: 1、提高软件的可用性。 2、提高软件的兼容性。 3、独立的工具链特性。 4、开放性。 5、易用性。
技术问答 发布时间 : 2017-10-10
Silicon Labs 32位低功耗MCU EFM32G232F128系列微控制器GPIO的最大翻转速度为多少?
EFM32G232F128系列微控制器GPIO的最大翻转速度为系统时钟的1/6。例如,当主频为32MHz时,GPIO最大翻转速度大约为5.3MHz。
技术问答 发布时间 : 2017-10-10
Silicon Labs EFM32系列32位低功耗MCU Cortex-M3内核嵌套向量终端控制器(NVIC)有哪些特性?
1、支持最多240个中断输入、不可屏蔽中断输入和多个系统异常。除了NMI外,每个中断都可以被单独使能或禁止。 2、中断和多个系统异常具有可编程的优先级。对于Cortex-M3/M4,优先级可以在运行时动态修改(注意,Cortex-M0/M0+不支持优先级的动态修改)。 3、嵌套中断/异常以及中断/异常按照优先级自动处理。 4、向量中断/异常。意味着处理器会自动取出中断/异常向量,无需软件确定产生的是哪个中断/异常。 5、向量表可以重定位在存储器中的多个区域。 6、低中断等待。对于具有零等待状态的存储器系统,中断等待仅为12个周期。 7、中断和多个异常可由软件触发。 8、多个优化用于降低不同异常上下文切换时的中断处理开销。 9、中断/异常屏蔽功能可以将所有的中断和异常(NMI除外)屏蔽掉,或者将中断/异常屏蔽为某个优先级之下。 为了支持这些特性,NVIC使用了多个可编程寄存器。这些寄存器经过了存储器映射,而CMSIS-Core则为大多数常见的中断控制任务提供了所需的寄存器定义和访问函数 (API),这些访问函数非常已于使用。
技术问答 发布时间 : 2017-10-10
Silicon Labs 32位低功耗MCU EFM32ZG210F32是否支持Audio jack音频接口通讯?
Silicon Labs 32位低功耗MCU EFM32ZG210F32支持Audio jack音频接口通讯,通过Timer定时器的捕捉功能实现的。原厂有提供音频通讯的参考代码,请参考AN0054。
技术问答 发布时间 : 2017-10-10
Silicon Labs EFM32系列32位低功耗MCU存储器保护单元MPU有什么作用,什么情况下需要使用MPU功能?
MPU为Cortex-M3、M4处理器中的可选特性,微控制器供应商可以决定是否使用MPU。MPU为监控总线传输的可编程设备,需要通过软件(一般是嵌入式OS)配 置。若MPU存在,应用程序可以将存储器空间分为多个部分,并为每个部分定义访问权限。当违反访问规则时,错误异常就会产生,错误异常处理则会分析问题,而且如果可能,还 可将错误加以修复。 MPU可以有多重使用方式。一般情况下,OS会设置MPU以保护OS内核和其他特权任务使用的数据,防止恶意用户程序的破坏。而且OS也可以选择将不同用户任务使 用的存储器隔离开来。这些处理有助于检测系统错误,并且提高了系统在处理错误情况时的健壮性。 MPU也可以将系统配置为只读的,防止意外擦除SRAM中的数据或覆盖指令代码。 MPU默认禁止,若应用不需要存储器保护特性,就无需将其初始化。
技术问答 发布时间 : 2017-10-10
Silicon Labs 32位低功耗MCU EFM32LG系列的USART 作为 SPI 主模式时可以自动控制 CS 片选引脚吗?
Silicon Labs 32位低功耗MCU EFM32LG系列的USART 作为 SPI 主模式时可以自动控制 CS 片选引脚。 在 SPI 主模式下,需要先在 GPIO 模块中配置 CS 对应输出引脚为推挽输出模式,然后使能 USARTn_ROUTE 寄存器中 CSPEN 位,并置位 USARTn_CTRL 寄存器中AUTOCS 位即可自动产生片选信号。
技术问答 发布时间 : 2017-10-10
8位低功耗MCU EFM8BB21F16G(QSOP24封装)的调试器有哪些型号?U-EC5是否可用来开发该芯片?
8位低功耗MCU EFM8BB21Fxxx系列用的开发工具调试器有U-EC6,SLSTK2021A。U-EC5是较U-EC6早的版本,也支持EFM8BB2系列调试用。
技术问答 发布时间 : 2017-07-12
Silicon Labs 32位低功耗MCU EFM32JG的在外部高频振荡器HFXO的频率范围要求多少?
Silicon Labs 32位低功耗MCU EFM32JG的外部高频振荡器HFXO的频率范围是38-40MHz,它允许的最低频率是38MHz,这比Classic系列的EFM32允许的(4MHz)高很多。
技术问答 发布时间 : 2017-10-10
32位低功耗MCU EFM32系列内部的LFRCO是32K还是32.768K?
EFM32系列32位低功耗MCU内部的LFRCO为32K。
技术问答 发布时间 : 2017-10-10
Silicon Labs EFM32系列32位低功耗MCU的硬件设计时要关注什么?
1、对于Silicon Labs EFM32系列32位低功耗MCU的系统设计者,有几个值得关注的因素,包括如何为芯片提供鲁棒性的电源,如何连接外部调试接口以及如何设计外部时钟源。 2、电源: 尽管EFM32支持宽的电压范围并且消耗很小的平均电流,但是正确的去耦是极其重要的。对于高频暂态信号去耦电容能使得电源和MCU以及地之间的电流回路尽量 短。 3、调试接口及外部复位引脚 (RESETn): 除了可选的SWO(串行线输出), 调试接口包括SWCLK(时钟输入)和SWDIO(数据输入输出)线, 除此之外可 选的SWO(串行线输出)。在无需外部复位的情况下因为复位引脚(RESETn)具有内部上拉电阻所以可以不做连接。强行拉低RESETn引脚将对产生EFM32触发复 位。 4、外部时钟源: EFM32除了内部低频和高频RC振荡器模式外也支持不同的外部时钟源来产生低频以及高频时钟。可能的低频LF和高频HF域外部时钟源是外部振荡器(方 波或者正弦波)或者晶体/陶瓷谐振器。
技术问答 发布时间 : 2017-10-10
Silicon Labs 32位低功耗MCU EFM32LG系列的运算放大器OPAMP是否可以和DAC同时使用?
Silicon Labs 32位低功耗MCU EFM32LG系列的运算放大器OPAMP不能和DAC同时使用。 EFM32 系列微控制器片上拥有三个运算放大器(Gecko 系列芯片内部没有运算放大器),分别为 OPA0、OPA1 和 OPA2。但是只有 OPA2 是独立运 算放大器,而 OPA0和 OPA1 是 DAC 电路的一部分,所以 OPA0 和 OPA1 不能与 DAC 同时使用。若使能 OPA0和 OPA1 则 DAC 无法输出;禁止OPA0 和 OPA1,DAC 恢复输出。
技术问答 发布时间 : 2017-10-10
电子商城
现货市场
服务
支持微型计算机 、便携式计算机显示设备、投影仪、打印设备、绘图仪、多用途打印复印机、扫描仪、计算机内置电源、电源适配器、充电器、服务器、收款机等产品中国强制性产品认证。
提交需求>
可定制波导隔离器频率覆盖5.5GHz~110GHz,插损损低至0.25dB、隔离度、正向方向功率、封装尺寸参数。
最小起订量: 1pcs 提交需求>
登录 | 立即注册
提交评论