0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于瑞萨64位MPU RZ/G2L进行32位应用软件开发

瑞萨嵌入式小百科 来源:瑞萨MCU小百科 2025-06-26 15:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文主要介绍基于瑞萨64位MPU RZ/G2L进行32位应用软件开发的介绍,用于解决客户32位软件移植相关问题,供客户参考。

很多客户在32bit开发平台迁移过程中,会遇到Linux应用程序移植问题,老平台应用程序是基于32bit ARMv7a处理器开发的,新平台通常是基于64bit的ARMv8a的MPU平台,比如RZ/G2L系列。有些客户误认为,切换到64bit Linux平台,必须重新开发64bit应用程序,其实并不是必须的。

首先,在硬件层面:

64bit ARMv8a MPU是能兼容32bit ARMv7a应用程序的,也就是ARMv8a体系支持32bit(AArch32)和64bit(AArch64)两套指令集,这两套指令集或者说是工作模式,会根据具体的32/64bit应用程序自动切换,这是指令集层面的兼容,不是模拟或者翻译,不会导致性能损失。这种设计,很大一部分原因,是为了保护客户在32bit老平台上面的投资。

其次,在软件层面:

64bit MPU的Linux kernel运行在特权模式,应用程序运行在非特权的用户空间。通常厂商仅仅移植64bit Linux kernel,如果移植32bit Linux kernel,很多底层64bit相关特性会不支持,特别是大寻址空间,而且只能支持32bit应用程序。64bit Linux kernel则能发挥MPU的全部性能,并能运行32bit和64bit应用程序(基于上述硬件层面的设计)。

ARM官方提供的ARMv8a相关设计框图如下:

cdead4c6-4fe7-11f0-b715-92fbcf53809c.png

ELx

ARMv8a引入的Exception Level,数字越大,特权越高,类似ARMv7a的异常模式,EL0最低,运行应用程序。

图中的AArch64 OS/AArch32 OS,指具体64/32bit操作系统kernel,通常是Linux kernel。OS运行于更高EL等级的Hypervisor的管理之下,AArch64 OS可以支持32或者64bit应用程序App,AArch32 OS则只能支持32bit应用程序。上面的设计,跟x86 Linux的设计非常相似,比如,64bit x86处理器也原生支持32bit和64bit两种应用程序,64bit Linux系统,也能直接运行32bit App,微软64bit Windows系统也是一样的,用户从来不用关心EXE是之前32位Windows下的老应用,还是新开发出来的64位应用软件,直接双击运行即可。个人认为,ARMv8a很大程度上参考借鉴了64bit x86处理器的设计思路,因为ARMv8a是在2012年左右发布的,而64bit x86处理器在2003年左右就上市了。

下面介绍一下64bit RZ/G2L相关内容。RZ/G2L官方发布的Yocto系统,里面已经提供了64bit Linux kernel,并且集成了64bit和32bit的各种库,还有适配好的64bit和32bit的工具链,在Yocto系统编译完成之后,以core-image-qt为例进行说明:

1提取工具链安装包

MACHINE=smarc-rzg2l bitbake core-image-qt -c populate_sdk

2安装工具链到本机

sudo sh poky-glibc-x86_64-core-image-qt-aarch64-smarc-rzg2l-toolchain-3.1.26.sh

通常安装到默认的/opt目录下,安装之后,如果需要使用工具链编译32bit源码,需要首先运行一个工具链所在目录的脚本:

ce072ad6-4fe7-11f0-b715-92fbcf53809c.png

即图中的environment-开头的脚本文件,对于32bit App开发,运行:

source /opt/poky/3.1.26/environment-setup-armv7vet2hf-neon-vfpv4-pokymllib32-linux-gnueabi

即可准备好32bit App开发环境,可以使用:echo $CC等命令查看,相关环境变量已经设置好:

ce17cd14-4fe7-11f0-b715-92fbcf53809c.png

另一个environment-开头的脚本,是用来设置64位App开发环境的。

另一方面,如果客户愿意往64bit应用移植,也是可以的,因为64bit模式下,可以使用更加强大的指令集,还有海量的寻址空间。但是面临的问题,主要是需要重新编译源代码,FPU相关配置选项可能失效,ARMv7a处理器的FPU相关配置是可选的,ARMv8a处理器则标配FPU,还有一点,就是代码里面指针的处理,32bit应用程序中,可能使用了不可移植的数据类型如unsigned int保存指针,这是可以的,但是不加修改,编译成64位应用程序的话,会出现警告或错误,地址数值截断了32位,肯定是不安全的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    20149

    浏览量

    247206
  • Linux
    +关注

    关注

    88

    文章

    11628

    浏览量

    217989
  • MPU
    MPU
    +关注

    关注

    0

    文章

    442

    浏览量

    51045
  • 应用程序
    +关注

    关注

    38

    文章

    3342

    浏览量

    59926
  • 应用软件
    +关注

    关注

    0

    文章

    53

    浏览量

    9375
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于64MPU RZ/G2L的uboot串口多波特率支持介绍

    本文主要介绍基于64MPU RZ/G2L,讨论
    的头像 发表于 07-04 15:54 2769次阅读
    基于<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>64</b><b class='flag-5'>位</b><b class='flag-5'>MPU</b> <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>的uboot串口多波特率支持介绍

    基于电子RZ/G2L的FET-G2LD-C核心板和OK-G2LD-C开发板评测

    基于电子RZ/G2L处理器开发的FET-G2LD-C核心板和OK-
    发表于 05-30 17:24 1493次阅读
    基于<b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>的FET-<b class='flag-5'>G2</b>LD-C核心板和OK-<b class='flag-5'>G2</b>LD-C<b class='flag-5'>开发</b>板评测

    RZ/G2L串口SCI的使用(上)

    RZ/G2L的串口简称SCI,全称Serial Communication Interface。
    的头像 发表于 01-17 12:19 2653次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>串口SCI的使用(上)

    【米尔RZ/G2L开发板-试用体验】开箱

    感谢 感谢电子发烧友论坛、感谢米尔电子,把米尔RZ/G2L开发板试用话动的机会给了我。虽然周五就收到了
    发表于 05-14 19:41

    【米尔RZ/G2L开发板-试用体验】开箱 + 开机

    感谢 感谢电子发烧友论坛、感谢米尔电子,把米尔RZ/G2L开发板试用话动的机会给了我。最近事情比较多,赶在这个空挡时间完成开箱报告。 开
    发表于 05-18 19:33

    【米尔RZ/G2L开发板-试用体验】米尔-RZG2L - 64双核MPU开发板开箱测评

    刚收到米尔RZ/G2L开发板打开包装后看到的很大的一块黑色PCB,做工精美的开发板,给人眼前
    发表于 05-22 21:53

    【米尔RZ/G2L开发板-试用体验】米尔RZ/G2L开发板开箱视频

    今天刚刚收到米尔RZ/G2L开发板,拆开包裹后给人的感觉是惊艳,板卡设计真的很棒,来看看视频做个简单了解吧。 更多板卡可以登
    发表于 05-22 21:58

    150套开发板免费送!还有5G手机拿?米尔RZ/G2L开发板创意秀

    为感谢广大客户一直以来的支持,推动嵌入式行业技术发展,鼓励工程师勇于创新探索的精神,促进64MPU的生态,米尔电子联合共同发起“米
    发表于 05-24 16:36

    【米尔RZ/G2L开发板-试用体验】米尔RZ/G2L开发板使用SSH登录

    收到的米尔RZ/G2L开发板上电测试一下SSH登录方式和其它测试! SSH登录 在使用之前,需要事先连接网络,笔者这里使用的是以太
    发表于 06-11 21:47

    【米尔RZ/G2L开发板-试用体验】认识一下米尔RZ/G2L开发板的核心板

    收到米尔RZ/G2L开发板后一直对米尔旗下开发板的做工感到非常精致,同时也有着很强大的功能,
    发表于 07-29 00:21

    电子推全新RZ/G2L MPU,可实现降低整体系统成本

    全球半导体解决方案供应商电子集团(TSE:6723)今日宣布,扩大其通用64微处理器(MPURZ
    的头像 发表于 01-19 15:16 3538次阅读

    米尔RZ/G2L开发板 TF卡读写速度测试

    米尔RZ/G2L开发板TF卡读写测试
    的头像 发表于 05-22 09:07 2331次阅读
    米尔<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b><b class='flag-5'>开发</b>板 TF卡读写速度测试

    米尔RZ/G2L开发板 安装交叉编译器

    米尔RZ/G2L开发板安装交叉编译器
    的头像 发表于 05-26 22:05 3119次阅读
    米尔<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b><b class='flag-5'>开发</b>板 安装交叉编译器

    米尔RZ/G2L开发米派双核A55Remi Pi学习板兼容树莓派扩展模块

    RemiPi第一款MPU生态板卡兼容树莓派扩展模块RZ/
    发表于 01-29 17:05 7次下载

    电子推出64RZ/G3E MPU

    电子于2025年7月推出64RZ/G3E MPU
    的头像 发表于 08-04 13:55 1525次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>电子推出<b class='flag-5'>64</b><b class='flag-5'>位</b><b class='flag-5'>RZ</b>/<b class='flag-5'>G</b>3E <b class='flag-5'>MPU</b>