离线
TA的每日心情 | 慵懒 2021-7-23 17:16 |
---|
签到天数: 17 天 [LV.4]
|
有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 草帽王子 于 2021-5-18 15:14 编辑
运行鸿蒙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。
- https://github.com/plctlab/plct-qemu/tree/plct-nuclei-rebase
复制代码 编译生成直接可以在Linux上的二进制程序已经上传,可以方便下载。
自己编译则需要
- git clone https://github.com/plctlab/plct-qemu.git
- cd plct-qemu
- git checkout plct-nuclei-rebase
- git submodule init
- git submodule update
复制代码 操作完成后,安装如下的工具
- 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
然后在plct-qemu中新建一个build的目录。
- ../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上
- https://gitee.com/riscv-mcu/kernel_liteos_m
复制代码 首先下载代码
- git clone git@gitee.com:riscv-mcu/kernel_liteos_m.git
复制代码 然后下载交叉编译工具链
- wget https://www.nucleisys.com/upload/files/toochain/gcc/nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2
复制代码 下载后解压至指定的文件夹,比如/opt目录。
修改/etc/profile文件,文末添加
最后更新一下环境
接着进入
- 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开始编译。
最后生成了Nuclei-rvstart-gd32vf103-soc.hex
4.运行与测试
首先找到编译好的qemu程序的位置
- /home/bigmagic/linux_qemu/bin/qemu-system-riscv32 -M gd32vf103_rvstar -kernel build/Nuclei-rvstar-gd32vf103-soc.elf -serial stdio -nodefaults -nographic
复制代码 此时可以看到程序的正常运行
注意,这里需要修改一下源代码由于实际代码中有按键的配置,qemu中目前不能使用实体按键,所以需要屏蔽。
- kernel_liteos_m/targets/riscv_nuclei_gd32vf103_soc_gcc/Src/main.c
复制代码
屏蔽掉这里就可以了。
5.gdb调试
若想分析程序运行的逻辑,gdb功能非常好用。
一个窗口输入
- /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
- riscv-nuclei-elf-gdb build/Nuclei-rvstar-gd32vf103-soc.elf
复制代码 依次输入
- target remote localhost:1234
- b main
- c
- list
复制代码 更多gdb相关的调试可以查阅gdb的使用手册。
这样就能够愉快的玩qemu和riscv以及鸿蒙LiteOS-M内核。
完
|
上一篇: 教你玩转[15]_RVSTAR—SPI总线通信篇下一篇: 嵌入式IoT[02]_从riscv底层原理分析gd32vf103的中断行为
|