• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# QEMU(C-SKY 教程)
2
3## 1.简介
4
5QEMU可以模拟内核运行在不同的单板,解除对物理开发板的依赖。`SmartL_E802/`子目录包含部分Qemu C-SKY虚拟化平台验证的OpenHarmony kernel\_liteos\_m的代码,通过它来模拟一个基于C-SKY架构的单板。
6
7## 2.环境搭建
8
9   1. 编译工具链安装
10
11      提示:用户也可以直接使用下列指令来使用默认环境中配置好的编译器,跳过该步骤。
12
13      若要使用默认环境请先执行 '3.获取源码' ,然后在根目录下执行下列指令安装默认编译器。
14
15         ```shell
16         sh build/prebuilts_download.sh
17         ```
18
19      可选的编译器安装流程:
20
21      a) 创建`csky_toolchain`文件夹并进入
22
23         ```shell
24         mkdir csky_toolchain && cd csky_toolchain
25         ```
26
27      b) 下载csky-elfabiv2-tools-x86_64-minilibc-20210423.tar.gz 到`csky_toolchain`文件夹并解压,下载地址:https://occ.t-head.cn/community/download?id=3885366095506644992
28
29         ```shell
30         wget https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource/1356021/1619529111421/csky-elfabiv2-tools-x86_64-minilibc-20210423.tar.gz
31         tar -xf csky-elfabiv2-tools-x86_64-minilibc-20210423.tar.gz
32         ```
33
34      c) 将csky-elfabiv2编译工具链加入环境变量(将user_toolchain_xxx_path修改为自己的安装路径):
35
36         ```shell
37         vim ~/.bashrc
38         export PATH=$PATH:user_toolchain_xxx_path/csky_toolchain/bin
39         source ~/.bashrc
40         ```
41
42      d) 删除默认的编译器路径:
43
44         修改SmartL_E802\liteos_m\config.gni45
46         ```c
47         board_toolchain_path = "$ohos_root_path/prebuilts/gcc/linux-x86/csky/csky/bin"
48         ```
49
50         改为
51
52         ```c
53         board_toolchain_path = ""
54         ```
55
56   2. qemu安装
57
58      a) 创建`csky_qemu`文件夹并进入
59
60         ```shell
61         mkdir csky_qemu && cd csky_qemu
62         ```
63
64      b) 下载csky-qemu-x86_64-Ubuntu-16.04-20210202-1445.tar.gz到`csky_qemu`文件夹下并解压,下载地址:https://occ.t-head.cn/community/download?id=636946310057951232
65
66         ```shell
67         wget https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource/1356021/1612269502091/csky-qemu-x86_64-Ubuntu-16.04-20210202-1445.tar.gz
68         tar -xf csky-qemu-x86_64-Ubuntu-16.04-20210202-1445.tar.gz
69         ```
70
71      c) 将qemu加入环境变量(将user_qemu_xxx_path修改为自己的安装路径):
72
73         ```shell
74         vim ~/.bashrc
75         export PATH=$PATH:user_qemu_xxx_path/csky-qemu/bin
76         source ~/.bashrc
77         ```
78
79      d) 安装依赖
80
81         ```shell
82         ldd qemu_installation_path/bin/qemu-system-cskyv2
83         ```
84
85         根据ldd执行结果,安装缺少的依赖库
86
87         (注:更多使用安装指导,请参考官方指南:https://occ.t-head.cn/community/download?id=636946310057951232)
88
89## 3.获取源码
90
91[代码获取](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/sourcecode-acquire.md)
92
93提示: 可以使用 `repo` 命令来获取源码。
94
95## 4.源码构建
96
97   1. 执行hb set命令并选择项目`qemu_csky_mini_system_demo`。
98
99   2. 执行hb clean && hb build命令构建产生 `OHOS_Image` 的可执行文件。
100
101      ```shell
102      hb set
103      hb clean && hb build
104      ```
105
106   3. 在构建完成之后,对应的可执行文件在主目录下:
107
108      ```
109      out/SmartL_E802/qemu_csky_mini_system_demo/
110      ```
111
112## 5.在Qemu中运行镜像
113
114   1. 启动qemu(不配合GDB)
115
116      ```shell
117      ./qemu-run
118      ```
119
120   2. 启动qemu(配合GDB)
121
122      a) 启动GDB服务器,等待连接
123
124         ```shell
125         ./qemu-run -g
126         ```
127
128      b) 新建终端并使用GDB连接qemu
129
130         ```shell
131         csky-abiv2-elf-gdb out/SmartL_E802/qemu_csky_mini_system_demo/OHOS_Image -ex "target remote localhost:1234"
132         ```
133
134   注:qemu退出方式为:按下ctrl加a键,然后松开再按下x键。
135