查看: 2278|回复: 0
收起左侧

嵌入式IoT[01]_在qemu上体验芯来RISC-V处理器运行鸿蒙LiteOS-M内核

[复制链接]

  离线 

  • TA的每日心情
    慵懒
    2021-7-23 17:16
  • 签到天数: 17 天

    [LV.4]

    发表于 2021-5-18 15:15:22 | 显示全部楼层 |阅读模式

    有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    本帖最后由 草帽王子 于 2021-5-18 15:14 编辑

    在qemu上体验芯来RISC-V处理器
    运行鸿蒙LiteOS-M内核

    1.本文概述
    2.下载qemu
    3.下载鸿蒙LiteOS-M
    4.运行与测试
    5.gdb调试


    1.本文概述

    由于前几天芯来科技对鸿蒙LiteOS-M内核进行支持,在手上没有开发板的小伙伴,想要了解riscv和学习鸿蒙来说,也是十分的困难,所以我就打算做一下在qemu上运行鸿蒙的liteos-m内核,其行为和真实的硬件并无差别,这样在手上有硬件之后,能够快速的将程序下载到真机上。用qemu是研究软件,研究系统的非常好的工具,下面我实际演示一下具体的操作。


    2.下载qemu

    当前官方的qemu并未对芯来科技的soc进行集成,或许要等一段时间才能合并,目前我自己基于plct实验室的qemu版本编译了一个带有芯来RISC-V处理器的qemu。
    1. https://github.com/plctlab/plct-qemu/tree/plct-nuclei-rebase
    复制代码
    编译生成直接可以在Linux上的二进制程序已经上传,可以方便下载。

    自己编译则需要
    1. git clone https://github.com/plctlab/plct-qemu.git
    2. cd plct-qemu
    3. git checkout plct-nuclei-rebase
    4. git submodule init
    5. git submodule update
    复制代码
    操作完成后,安装如下的工具
    1. sudo apt-get install -y git build-essential pkg-config zlib1g-dev libglib2.0-0 libglib2.0-dev libsdl1.2-dev libpixman-1-dev libfdt-dev autoconf automake libtool librbd-dev libaio-dev flex bison make
    复制代码
    还需要安装meson ninja
    1. pip3 install meson ninja
    复制代码
    然后在plct-qemu中新建一个build的目录。
    1. ../configure --prefix=your_path/linux_qemu --target-list=riscv32-softmmu,riscv64-softmmu && make -j8 && make install
    复制代码
    其中your_path/linux_qemu表示的目录则是生成的可以在Linux运行的二进制程序。


    3.下载 鸿蒙LiteOS-M

    当前最新代码在gitee上
    1. https://gitee.com/riscv-mcu/kernel_liteos_m
    复制代码
    首先下载代码
    1. git clone git@gitee.com:riscv-mcu/kernel_liteos_m.git
    复制代码
    然后下载交叉编译工具链
    1. wget  https://www.nucleisys.com/upload/files/toochain/gcc/nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2
    复制代码
    下载后解压至指定的文件夹,比如/opt目录。

    修改/etc/profile文件,文末添加
    1. PATH=$PATH:/opt/gcc/bin/
    复制代码
    最后更新一下环境
    1. source /etc/profile
    复制代码
    接着进入
    1. kernel_liteos_m/targets/riscv_nuclei_gd32vf103_soc_gcc/GCC   <span style="font-family: Tahoma; font-size: medium; background-color: rgb(255, 255, 255);">目录。</span>
    复制代码
    输入make开始编译。
    GD32VF 单片机芯片及应用-嵌入式IoT[01]_在qemu上体验芯来RISC-V处理器运行鸿蒙LiteOS-M内核risc-v单片机中文社区(1)

    最后生成了Nuclei-rvstart-gd32vf103-soc.hex


    4.运行与测试

    首先找到编译好的qemu程序的位置
    1. /home/bigmagic/linux_qemu/bin/qemu-system-riscv32 -M gd32vf103_rvstar -kernel build/Nuclei-rvstar-gd32vf103-soc.elf -serial stdio -nodefaults -nographic
    复制代码
    此时可以看到程序的正常运行
    GD32VF 单片机芯片及应用-嵌入式IoT[01]_在qemu上体验芯来RISC-V处理器运行鸿蒙LiteOS-M内核risc-v单片机中文社区(2)

    注意,这里需要修改一下源代码由于实际代码中有按键的配置,qemu中目前不能使用实体按键,所以需要屏蔽。
    1. kernel_liteos_m/targets/riscv_nuclei_gd32vf103_soc_gcc/Src/main.c
    复制代码
    GD32VF 单片机芯片及应用-嵌入式IoT[01]_在qemu上体验芯来RISC-V处理器运行鸿蒙LiteOS-M内核risc-v单片机中文社区(3)

    屏蔽掉这里就可以了。


    5.gdb调试
    若想分析程序运行的逻辑,gdb功能非常好用。

    一个窗口输入
    1. /home/bigmagic/linux_qemu/bin/qemu-system-riscv32 -M gd32vf103_rvstar -kernel build/Nuclei-rvstar-gd32vf103-soc.elf -serial stdio -nodefaults -nographic -s -S
    复制代码
    另外一个窗口开启gdb
    1. riscv-nuclei-elf-gdb build/Nuclei-rvstar-gd32vf103-soc.elf
    复制代码
    依次输入
    1. target remote localhost:1234
    2. b main
    3. c
    4. list
    复制代码
    更多gdb相关的调试可以查阅gdb的使用手册。
    GD32VF 单片机芯片及应用-嵌入式IoT[01]_在qemu上体验芯来RISC-V处理器运行鸿蒙LiteOS-M内核risc-v单片机中文社区(4)

    这样就能够愉快的玩qemu和riscv以及鸿蒙LiteOS-M内核。







    上一篇:教你玩转[15]_RVSTAR—SPI总线通信篇
    下一篇:嵌入式IoT[02]_从riscv底层原理分析gd32vf103的中断行为
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

    RISC-V单片机中文网上一条 /2 下一条



    版权及免责声明|RISC-V单片机中文网 |网站地图

    GMT+8, 2024-4-20 20:07 , Processed in 0.755943 second(s), 48 queries .

    快速回复 返回顶部 返回列表