summaryrefslogtreecommitdiff
path: root/bsp/phytium/aarch64/README.md
blob: 3a00b6d0a216cd12facb08fe4f131c3abdc6ce1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
# AARCH64 工作模式使用

- 当开发者需要基于 Phytium 系列芯片进行开发时,可以从以下几个步骤出发配置芯片

## 1. 准备编译环境

- 在aarch64目录下创建tools文件夹,用于存放编译链,目前支持在以下两种环境进行开发
```shell
mkdir tools
```
注:使用RT-Smart编译链也可编译RT-Thread,但当前不支持C++

### Ubuntu 环境

#### RT-Thread

- 点击[下载编译链工具](https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/10.3-2021.07/binrel/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar.xz)压缩包,放置在tools目录下

- 在tools目录下,使用tar命令解压缩
```shell
tar xvf gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar.xz
```

![tar_toolschain_ubuntu](./figures/tar_toolschain_ubuntu.png)

- 返回`aarch64`目录,运行`thread-env.sh脚本`,生效环境变量
```shell
source ./thread-env.sh
```

- 如下所示是`aarch64`编译相关的环境变量,运行`scons`前要确保环境变量设置正确

![aarch64_thread](./figures/aarch64_thread.png)

#### RT-Smart

- 点击[下载编译链工具](https://github.com/RT-Thread/toolchains-ci/releases/tag/v1.7)压缩包,放置在tools目录下

![aarch64_tools](./figures/aarch64_tools.png)

- 在tools目录下,使用tar命令解压缩
```shell
tar jxvf aarch64-linux-musleabi_for_x86_64-pc-linux-gnu_stable.tar.bz2
```

![tar_toolschain](./figures/tar_toolschain.png)

- 返回`aarch64`目录,运行`smart-env.sh`脚本,生效环境变量
```shell
source ./smart-env.sh
```

- 如下所示是`aarch64`编译相关的环境变量,运行`scons`前要确保环境变量设置正确

![aarch64_env](./figures/aarch64_env.png)

- 输入以下指令进行编译,初次编译会拉取`phytium_standalone_sdk工具包`,请确保当前环境下网络畅通
```shell
scons -j8
```
![aarch64_ubuntu_scons](./figures/aarch64_ubuntu_scons.png)

- 完成编译之后目录下将会生成以下几个文件
```
rtthread_a64.bin
rtthread_a64.elf
rtthread_a64.map
```

- 若需切换版本进行调试,请先在`bsp\phytium\libraries\phytium_standalone_sdk`目录下删除现有的`phytium_standalone_sdk`工具包,然后重新执行上述指令以拉取指定版本。

### RT-Thread env 环境

#### RT-Thread

- 点击[下载编译链工具](https://developer.arm.com/-/media/Files/downloads/gnu/11.2-2022.02/binrel/gcc-arm-11.2-2022.02-mingw-w64-i686-aarch64-none-elf.zip)压缩包,放置在tools目录下

- 在tools目录下,将下载好的编译链工具压缩包解压


- 返回`aarch32`目录,运行`thread-env.bat`脚本,生效环境变量
```shell
./thread-env.bat
```

- 如下所示是`aarch32`编译相关的环境变量,运行`scons`前要确保环境变量设置正确

![aarch64_env_thread_tools](./figures/aarch64_env_thread_tools.png)

#### RT-Smart

- 点击[下载编译链工具](https://download.rt-thread.org/download/rt-smart/toolchains/aarch64-linux-musleabi_for_i686-w64-mingw32_latest.zip
)压缩包

- 在tools目录下,将下载好的编译链工具压缩包解压

![aarch64_env_tools](./figures/aarch64_env_tools.png)

- 运行脚本smart-env.bat脚本,脚本生效环境变量
```shell
.\smart-env.bat
```

- 输入以下指令进行编译,初次编译会拉取`phytium_standalone_sdk工具包`,请确保当前环境下网络畅通
```shell
scons -j8
```
![aarch64_env_scons](./figures/aarch64_env_scons.png)

- 完成编译之后目录下将会生成以下几个文件
```
rtthread_a64.bin
rtthread_a64.elf
rtthread_a64.map
```

## 2. 如何选择开发板

>注:在 RT-Thread env 环境下使用`menuconfig`指令即可打开配置菜单,在Ubuntu下需要使用`scons --menuconfig`
- 使用`scons --attach=?`查看当前支持的开发板
![](./figures/scons_attach.png)

- 以`E2000Q_DEMO`开发板为例,进入aarch64目录后,运行`scons --attach=board.e2000q_demo_rtthread`加载默认的`rtconfig.h`, 然后输入下列命令,进入`menuconfig`进一步配置

```shell
scons --menuconfig
```

## 3. 如何选择驱动

```shell
scons --menuconfig
```

开发者通过以下选项进行驱动的使能
```
Hardware Drivers Config > On-chip Peripheral Drivers
```

![](./figures/select_driver.png)

## 4. 开启SDK中内部调试信息

```shell
scons --menuconfig
```

开发者通过以下选项开启调试信息

![](./figures/debug_info.png)

## 5. 如何切换至 RT-Thread Smart 工作模式

- 输入下列命令,进入`menuconfig`进一步配置
```shell
scons --menuconfig
```
- 在RT-Thread Kernel菜单中勾选以下选项

![](./figures/rtsmart_config.png)
## 6. 启动镜像程序

1. 完成配置后,使用以下指令进行clean和重新编译
```shell
scons -c
scons -j8
```
2. 按照指导[启动镜像程序](../doc/how_to_flashed_binary.md)