1# Qemu Arm Cortex-m55 mps3-an547 教程 2 3## 1. 简介 4`arm_mps3_an547/` 子目录包含部分Qemu arm cortex-m55虚拟化平台验证的OpenHarmony kernel\_liteos\_m的代码,目录名为*arm_mps3_an547*。 5Arm Cortex-m55 虚拟化平台是一个 `qemu-system-arm` 的目标设备,通过它来模拟一个通用的、基于arm cortex-m55架构的单板。 6 7这次模拟的配置是:arm cortex-m55架构,1个CPU,16M内存。 8 9提示: 系统内存硬编码为16MB。 10 11## 2. 环境搭建 12 13[环境搭建](https://gitee.com/openharmony/docs/blob/HEAD/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md) 14 15编译器安装 16 171.命令安装 18 19提示:命令安装的工具链无 arm-none-eabi-gdb,无法进行gdb调试 20 21``` 22sudo apt install gcc-arm-none-eabi 23``` 24 252.安装包安装 26 27提示:安装2020年后推出的交叉工具链才能支持cortex-m55处理器的MVE特性。如果已经通过命令安装了gcc-arm-none-eabi, 可以通过命令:`sudo apt remove gcc-arm-none-eabi` 卸载之后,再进行安装。 28 29下载工具链[安装包](https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2)。 30 31``` 32chmod 777 gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 33tar -xvf gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 install_path 34``` 35 36将安装路径添加到环境变量中: 37 38``` 39vim ~/.bashrc 40``` 41 42在~/.bashrc最末尾加入: 43 44``` 45export PATH=$PATH:install_path/gcc-arm-none-eabi-10.3-2021.10/bin 46``` 47 48## 3. 获取源码 49 50[代码获取](https://gitee.com/openharmony/docs/blob/HEAD/zh-cn/device-dev/get-code/sourcecode-acquire.md) 51 52提示: 可以使用 `repo` 命令来获取源码。 53 54## 4. 源码构建 55 56在已经获取的源码根目录,请输入: 57 58``` 59hb set 60``` 61 62选择ohemu下的`qemu_cm55_mini_system_demo`选项。 63 64 65然后执行构建命令如下: 66``` 67hb build -f 68``` 69 70这个命令构建会产生 `OHOS_Image` 的镜像文件。 71 72在构建完成之后,对应的镜像文件在如下目录: 73``` 74out/arm_mps3_an547/qemu_cm55_mini_system_demo/ 75``` 76## 5. 在Qemu中运行镜像 77 78提示:安装6.2.0版本的qemu才能支持cortex-m55处理器的MVE特性。 79 80a) 如果没有安装 `qemu-system-arm` ,安装请参考链接:[Qemu安装指导](https://gitee.com/openharmony/device_qemu/blob/HEAD/README_zh.md) 81 82b) 运行 83 84执行`./qemu-run --help`提示如下: 85 86``` 87Usage: qemu-run [OPTION]... 88Run a OHOS image in qemu according to the options. 89 90 Options: 91 92 -e, --exec file_name kernel exec file name 93 -g, --gdb enable gdb for kernel 94 -t, --test test mode, exclusive with -g 95 -h, --help print help info 96 97 By default, the kernel exec file is: out/arm_mps3_an547/qemu_cm55_mini_system_demo/OHOS_Image. 98``` 99 100## 6. gdb调试 101 102``` 103cd device/qemu/arm_mps3_an547 104vim liteos_m/config.gni 105``` 106 107将 `board_opt_flags` 中的 108 109``` 110board_opt_flags = [] 111``` 112 113编译选项修改为: 114 115``` 116board_opt_flags = [ "-g" ] 117``` 118 119保存并退出,在OHOS根目录重新编译: 120 121``` 122hb build -f 123``` 124 125在一个窗口中输入命令: 126 127``` 128./qemu-run -g 129``` 130 131在另一个窗口中输入命令: 132 133``` 134arm-none-eabi-gdb out/arm_mps3_an547/qemu_cm55_mini_system_demo/OHOS_Image 135(gdb) target remote localhost:1234 136(gdb) b main 137``` 138 139更多gdb相关的调试可以查阅:[gdb指导手册](https://sourceware.org/gdb/current/onlinedocs/gdb)。 140