LiteOS qemu realview-pbx-a9 环境搭建与运行

这篇具有很好参考价值的文章主要介绍了LiteOS qemu realview-pbx-a9 环境搭建与运行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

  • 最近打算移植搭建 一些常见的 RTOS 的 qemu 开发学习环境,当前 RT-Thread、FreeRTOS 已经成功运行 qemu,LiteOS 初步验证可以正常 运行 qemu realview-pbx-a9,这里做个记录

  • 首先学习或者研究 RTOS,只是看内核源码,会比较的枯燥,而是要开发板,可能一上来牵涉过多的硬件驱动,造成学习研究 RTOS 内核的兴趣降低了一些,前期需要对 RTOS 内核的运行有个全局的掌握,此时是要 qemu 来学习与验证,相对于实际的开发板,会便捷与高效

LiteOS

  • 当前 验证的 LiteOS 内核是 : https://gitee.com/LiteOS/LiteOS

  • 这里与 https://gitee.com/openharmony/kernel_liteos_a 相比,可能有一点区别,不过前期建议使用 LiteOS 验证,kernel_liteos_a 缺少一些板级的配置文件

  • 可以通过 Git 克隆 LiteOS 内核,当前 qemu 验证发现不再需要其他的软件包就可以运行起来

  • git clone https://gitee.com/LiteOS/LiteOS.git

qemu realview-pbx-a9

  • git 克隆 LiteOS 的内核仓库后,可以进入内核,通过查看内核目录 tools/build/config/ 发现,有一些支持的板子的配置文件,其中 qemu 当前支持 qemu-virt-a53.config realview-pbx-a9.config,当前建议使用 realview-pbx-a9.config,因为是 ARM 平台,相关的资料与编译工具链比较的方便获取

  • 配置文件: 复制 tools/build/config/realview-pbx-a9.config 到内核根目录下,改为 .config 文件

  • 内核目录下执行 make menuconfig 可以进入图形界面配置

  • 【备注】如果 make menuconfig 失败,一般需要配置 交叉编译环境

配置 arm gcc 交叉编译环境

  • 下载 arm gcc 交叉编译工具链: 在 ARM 官方下载 https://developer.arm.com/downloads/-/gnu-rm,当前验证的版本: gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2,我当前使用 gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 可以正常编译

  • 下载 arm gcc 工具链后,解压到 Linux 环境(ubuntu 20.04),然后设置环境变量:如修改 /etc/profile 文件

  • sudo vim /etc/profile

  • 最后添加 : export PATH=$PATH:/home/zhangsz/tools/gcc-arm-none-eabi-10-2020-q4-major/bin

  • 然后保存, source /etc/profile 使环境变量生效

  • 可以在 shell 运行 arm-none-eabi-gcc -v 确认 arm gcc 工具链环境变量生效

LiteOS qemu realview-pbx-a9 环境搭建与运行,LiteOS,LiteOS,qemu,realview-pbx-a9

LiteOS qemu realview-pbx-a9 环境搭建与运行,LiteOS,LiteOS,qemu,realview-pbx-a9

安装 kconfiglib

  • LiteOS 需要安装 python2 版本的 kconfiglib

  • 如果当前 Linux 如 ubuntu 20.04 无法安装 python2 版本的 kconfiglib,需要手动获取 python2 版本的 pip,然后再 使用 python2 版本的 pip 安装 kconfiglib

  • 我当前的系统 ubuntu 20.04,python 版本是 Python 2.7.18,但是没有 python 2 版本的 pip,默认 pip 的版本是 python3的,所以需要手动安装 python2 版本的 pip

  • 获取 get-pip.py,获取的地址:https://bootstrap.pypa.io/pip/2.7/get-pip.py,ubuntu 可以使用 wget https://bootstrap.pypa.io/pip/2.7/get-pip.py 获取

  • 然后确保当前的 python 版本是 2 版本, 使用 python get-pip.py 即可安装 python2 版本的 pip

  • 安装 完 python2 版本的 pip,再安装 kconfiglib,命令 :

$ pip --version
pip 20.3.4 from /home/zhangsz/.local/lib/python2.7/site-packages/pip (python 2.7)


$ pip install Kconfiglib

menuconfig 配置 LiteOS

  • 当前可以直接保存,不需要配置,后面熟悉了 LiteOS 的内核与功能模块,可以尝试添加与修改内核的配置

编译 LiteOS

  • make 即可编译,如果提示 arm-none-eabi-gcc 工具链没有找到,请按上面的操作,先把 arm gcc 工具链配置好

  • 编译完成后,就可以运行 qemu realview-pbx-a9 了

运行 qemu realview-pbx-a9

  • 编写一个 qemu.sh 的 shell 脚本,内容如下,并 chmod +x qemu.sh 设置可执行权限

  • 其中 out/realview-pbx-a9/Huawei_LiteOS.bin 是 qemu realview-pbx-a9 的编译后的产物

#!/bin/bash

qemu-system-arm -machine realview-pbx-a9 \
    -smp 4 -m 512M \
    -kernel out/realview-pbx-a9/Huawei_LiteOS.bin \
    -nographic
  • 运行 ./qemu.sh

LiteOS qemu realview-pbx-a9 环境搭建与运行,LiteOS,LiteOS,qemu,realview-pbx-a9

  • 进入了 LiteOS 的 shell,LiteOS 运行起来了

小结

  • 本篇记录 了 LiteOS 在 qemu realview-pbx-a9 上的环境搭建、系统运行

  • 后续继续熟悉 LiteOS,尝试使用 GDB 调试基于 qemu 的 LiteOS 内核,了解内核的启动流程、内核模块等文章来源地址https://www.toymoban.com/news/detail-676799.html

到了这里,关于LiteOS qemu realview-pbx-a9 环境搭建与运行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QEMU搭建arm虚拟机开发环境

    使用git指令切换到对应的分支上,我这里使用的是stable-4.0的分支 git checkout -b stable-4.0 remotes/origin/stable-4.0 在工程的根目录下执行 ./configure --target-list=aarch64-linux-user,aarch64-softmmu --enable-virtfs --enable-debug 然后执行make,视情况是否要执行make install

    2024年01月25日
    浏览(30)
  • qemu-基础篇——arm 裸机调试环境搭建

    裸机篇系列文章主要用于熟悉 arm 汇编及处理器结构 本系列使用 mcimx6ul-evk mcimx6ul-evk 0x80000000-0xFFFFFFFF 2048MB 空间为 DDR 地址,所以将程序链接到 0x80000000 。 通过-Ttext 选项,可以指定链接地址 -s :监听在 gdb 1234 端口 -S :表示启动后就挂起,等待 gdb 连接 -kernel 指定启用的内核

    2024年01月21日
    浏览(34)
  • 手把手教你搭建ARM32 QEMU环境

    我们知道嵌入式开发调试就要和各种硬件打交道,所以学习就要专门购买各种开发版,浪费资金,开会演示效果还需要携带一大串的板子和电线,不胜其烦。然而Qemu的使用可以避免频繁在开发板上烧写版本,如果进行的调试工作与外设无关,仅仅是内核方面的调试,Qemu模拟

    2024年02月19日
    浏览(41)
  • QEMU搭建X86_64 + Ubuntu虚拟系统环境

    QEMU搭建X86_64 + Ubuntu虚拟系统环境 本文记录一下学习和使用QEMU虚拟工具的过程,初次尝试,如有错误请各位大佬帮忙指正。 提示 :不推荐在低版本的Ubuntu中操作,QEMU需要很多依赖所用到的版本比较高,低版本ubuntu系统无法一键安装或者升级到对应的高版本的依赖,需要手动

    2024年02月05日
    浏览(32)
  • 利用WSL2搭建Qemu仿真Vexpress-a9开发环境

    最近想熟悉下Linux开发方面的知识,由于不想安装个虚拟机,便想着利用windows自身带的linux子系统,跑qemu模拟ARM vexpress-a9开发板,过程是逐渐摸索的,参考了网上不少文章,算是做下总结吧! 本身电脑是多年前的win10 64位,性能更不上,不想安装太多软件,WSL2可以在Mircosof

    2024年02月06日
    浏览(30)
  • ubuntu22.04 x86环境上使用QEMU搭建arm虚拟机

    apt-get -y install qemu apt-get -y install bridge-utils apt-get -y install vnc4server apt-get -y install qemu-kvm apt install -y qemu-system-arm apt-get -y install libvirt0 apt-get -y install libvirt-daemon apt-get -y install libvirt-daemon-system 安装完成后检查: virsh version ls /usr/bin/|grep qemu wget http://releases.linaro.org/components/kernel/

    2024年02月07日
    浏览(64)
  • 基于Ubuntu20.04搭建OpenHarmony v3.0.6的qemu仿真环境

    出于个人兴趣,也出于对国产操作系统的好奇,想尝试一下以LiteOS为内核的Openharmony。但过程相当不顺利,主要原因是官方文档内容组织的不敢恭维。挺好的东西,不把说明书写好,让用户怎么用?我研究的核心问题就一个:如何在基于Qemu仿真的Openharmony中输出一个hello worl

    2024年02月09日
    浏览(30)
  • 鸿蒙LiteOs读源码教程+向LiteOS中添加一个简单的基于线程运行时的短作业优先调度策略

    【找到了一种简单易懂的实验实现方式,适合基础较薄弱的同学,见第二部分】 最终效果如下: 依次创建了3个任务线程,以One、Two、Three指代,时间分别为15秒、30秒、10秒。 如果按生成顺序输出应该是:One-Two-Three,但我们修改了OsPriQueueEnqueue函数,由原先的“先进先出”,

    2024年02月05日
    浏览(31)
  • QEMU运行openBMC

    在Ubuntu 编译服务器自己的目录中执行命令: wget https://jenkins.openbmc.org/job/latest-qemu-x86/lastSuccessfulBuild/artifact/qemu/build/qemu-system-arm 给QEMU 执行权限: chmod u+x qemu-system-arm cp build/evb-ast2500/tmp/deploy/images/evb-ast2500/obmc-phosphor-image-evb-ast2500-20230831101603.static.mtd ./ ./qemu-system-arm -m 256 -M ro

    2024年02月10日
    浏览(36)
  • 使用QEMU运行虚拟机

    1,get kernel source from here 2,将当前guest os的内核配置文件 /boot/config-5.10.0 拷贝至内核源码目录并命名为.config 3,执行命令“make rpm-pkg -j10” 将内核各个组件编译为RPM包 4,生成的RPM包位于“/root/rpmbuild/RPMS/aarch64/”: kernel-headers-5.10.0-1.aarch64.rpm, kernel-devel-5.10.0-1.aarch64.rpm, kernel-5

    2024年02月05日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包