Before Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 101 KiB |
After Width: | Height: | Size: 103 KiB |
After Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 197 KiB |
After Width: | Height: | Size: 81 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 79 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 151 KiB |
After Width: | Height: | Size: 34 KiB |
@ -1,40 +0,0 @@ |
|||
# SDK参考手册 |
|||
|
|||
`SDK参考手册模板` |
|||
|
|||
- 版本:v0.1 |
|||
|
|||
## 1. SDK用户指南 |
|||
|
|||
`提供使用API过程中可能遇到的问题,按照用户使用的一般顺序排列` |
|||
|
|||
### 1.1 配套目标平台 |
|||
|
|||
### 1.2 使用构建系统 |
|||
|
|||
### 1.3 使用驱动组件 |
|||
|
|||
### 1.4 生成链接器脚本 |
|||
|
|||
### 1.5 完成引导加载 |
|||
|
|||
### 1.6 处理API错误码 |
|||
|
|||
## 2. 组件使用指南 |
|||
|
|||
`提供分模块的具体API说明,按照模块分类说明,模块内按照字母顺序排列,方便检索` |
|||
|
|||
### I2C |
|||
|
|||
[](./driver/fi2c.md) |
|||
|
|||
## 3. 硬件使用指南 |
|||
|
|||
`提供硬件平台的参考资料,按字母顺序排列` |
|||
|
|||
### D2000 |
|||
|
|||
### E2000 |
|||
|
|||
### FT2000/4 |
|||
|
@ -1,144 +1,145 @@ |
|||
# 1. Windows10 SDK安装方法 |
|||
# Windows 环境下的 SDK 开发方法 |
|||
|
|||
Windows 10 SDK开发环境集成了, |
|||
- `msys64`,Msys2 portable环境, 主要提供Windows上的shell命令行开发环境,包括了Cygwin (POSIX 兼容性层) 和 MinGW-w64(从"MinGW-生成") |
|||
- `setup_dev.py`, 安装脚本,主要的功能包括创建sdk的profile文件,创建`PHYTIUM_DEV_PATH`环境变量,通过git拉取SDK源码,以及完成SDK安装 |
|||
- `gcc-arm-10.3-2021.07-mingw-w64-i686-aarch64-none-elf.tar.xz`和`gcc-arm-10.3-2021.07-mingw-w64-i686-arm-none-eabi.tar.xz`, mingw64交叉编译链, SDK安装过程中会被解压到DEV目录的`cross_tool`目录下 |
|||
- `tftp`, tftp工具, 提供tftp服务,用于开发板下载二进制镜像文件,主要的功能包括安装tftp32服务和配置tftp目录 |
|||
- `run_msys2.cmd`,用于打开和配置msys2 shell的脚本,需要设置`PHYTIUM_DEV_PATH`后才能使用 |
|||
- `run_tftd.cmd`,用于打开tftpd工具的脚本,需要设置`PHYTIUM_DEV_PATH`后才能使用 |
|||
- `tftp/reinstall.cmd`, 用于安装和配置tftpd服务的脚本 |
|||
- `tftp/uninstall.cmd`, 用于卸载tftpd服务的脚本 |
|||
- 本工具提供了 Phytium RTOS SDK 的 Windows 开发环境,在 64 位 Windows 10/11 上完成测试 |
|||
|
|||
## 1.1 获取SDK的开发环境 |
|||
![Alt text](../../fig/windows_native_env.png) |
|||
|
|||
- [Windows10](https://pan.baidu.com/s/1V96isNcPq4F7nKi3_8GoGg) |
|||
>提取码:WX64 |
|||
- 本工具支持 |
|||
- 1. [Phytium Standalone SDK](https://gitee.com/phytium_embedded/phytium-standalone-sdk) |
|||
- 2. [Phytium FreeRTOS SDK](https://gitee.com/phytium_embedded/phytium-free-rtos-sdk) |
|||
|
|||
- Windows环境下可以用通用的unzip工具解压,如7zip和winrar |
|||
- 本工具包集成了, |
|||
- 1. AARCH64 交叉编译链 xpack-aarch64-none-elf-gcc-11.3.1-1.2,来自 https://github.com/xpack-dev-tools/aarch64-none-elf-gcc-xpack/releases/ |
|||
- 2. AARCH32 交叉编译链 xpack-arm-none-eabi-gcc-11.3.1-1.1,来自 https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases/ |
|||
- 3. busybox 工具包 xpack-windows-build-tools-4.3.0-1,来自 https://github.com/xpack-dev-tools/windows-build-tools-xpack/releases/ |
|||
- 4. CMake 工具 xpack-cmake-3.25.3-1,来自 https://github.com/xpack-dev-tools/cmake-xpack/releases/ |
|||
- 5. Ninja 工具 xpack-ninja-build-1.11.1-2,来自 https://github.com/xpack-dev-tools/ninja-build-xpack/releases/ |
|||
- 6. Git 工具 PortableGit,来自 https://github.com/git-for-windows/git/releases/download/v2.43.0.windows.1/PortableGit-2.43.0-32-bit.7z.exe |
|||
- 7. OpenOCD 工具,基于 OpenOCD 0.12.0 开发,支持 Phytium 系列 CPU 的调试 |
|||
- 8. Python 3.8 工具,来自 https://www.python.org/ftp/python/3.8.0/python-3.8.0-embed-win32.zip,下载 [get-pip.py](https://bootstrap.pypa.io/get-pip.py) ,额外安装了 pip工具和 windows-curses 包 |
|||
|
|||
## 1.2 安装SDK开发环境 |
|||
``` |
|||
python get-pip.py |
|||
python -m pip install windows-curses |
|||
``` |
|||
|
|||
- (1). 添加Windows环境变量,`PHYTIUM_DEV_PATH`(环境变量名**不能自定义**),例如,指向文件夹`E:\phytium-dev-windows-nt`(可以自定义) |
|||
- 9. GDB-Multiarch 工具,来自 https://static.grumpycoder.net/pixel/gdb-multiarch-windows/ |
|||
- 10. TFTP 工具,来自 https://bitbucket.org/phjounin/tftpd64/downloads/ |
|||
|
|||
![配置环境变量](../../fig/add_path_for_win.png) |
|||
## 使用方法 |
|||
|
|||
- (2). 进入DEV目录,双击脚本`run_msys2.cmd`, 进入msys2控制台, 运行`./setup_dev.py`,注册开发环境 |
|||
- (1)从百度网盘链接下载获取开发环境,下载完成后双击 phytium-rtos-dev-tools.exe 解压到指定目录 |
|||
|
|||
![安装开发环境](../../fig/install_for_mingw.png) |
|||
- [Windows 10/11 x64 环境下载链接](https://pan.baidu.com/s/1J7dndPqMtQD1RNmfdVHblQ) |
|||
>提取码:phyt |
|||
|
|||
- (3). 安装完成后重启系统,或者关闭当前终端,新开一个终端继续后面的操作 |
|||
|
|||
- (4). DEV目录注册完成后,通过git拉取Phytium Standalone SDK的代码,如 |
|||
- (2)进入 phytium-rtos-dev-tools 目录,双击 terminal.cmd 打开控制台,后续的操作都在这个控制台中进行 |
|||
- (3)通过git拉取Phytium Standalone SDK的代码,如 |
|||
|
|||
``` |
|||
git clone https://gitee.com/phytium_embedded/phytium-standalone-sdk.git ./phytium-standalone-sdk |
|||
``` |
|||
|
|||
- (5). 进入Phytium Standalone SDK代码目录,运行`./install.py` |
|||
![Alt text](../../fig/windows_clone.png) |
|||
|
|||
``` |
|||
cd ./phytium-standalone-sdk |
|||
./install.py |
|||
``` |
|||
- (4) 进入Phytium Standalone SDK代码目录,选择一个 example 进行编译开发,例如使用 letter shell 例程,目标平台为 E2000D Demo 板,首先加载默认配置 |
|||
|
|||
![开发环境安装完成](../../fig/setup_win.png) |
|||
``` |
|||
cd phytium-standalone-sdk\example\system\letter_shell_test |
|||
make list_kconfig |
|||
make load_kconfig LOAD_CONFIG_NAME=e2000d_aarch64_demo_shell |
|||
``` |
|||
|
|||
![Alt text](../../fig/windows_load_defconfig.png) |
|||
|
|||
### Q: 如果当前环境无法连接互联网 |
|||
- (5)如果需要进行配置的话,可以进入 menuconfig 界面 |
|||
|
|||
- 在执行第(2)步前,需要手动下载Phytium Standalone SDK,放置在DEV目录下 |
|||
``` |
|||
make menuconfig |
|||
``` |
|||
|
|||
- https://gitee.com/phytium_embedded/phytium-standalone-sdk |
|||
![Alt text](../../fig/windows_menuconfig.png) |
|||
|
|||
![手动下载SDK](../../fig/git_url.png) |
|||
- (6) 配置完成之后进行编译 |
|||
|
|||
## 1.3 检查安装是否成功 |
|||
``` |
|||
make clean |
|||
make all |
|||
``` |
|||
|
|||
- 打印下列环境变量,观察各变量是否存在,指向的目录是否正确 |
|||
>`PHYTIUM_DEV_PATH`指向DEV目录 |
|||
![Alt text](../../fig/windows_compile.png) |
|||
|
|||
>`AARCH32_CROSS_PATH`指向32位交叉编译链目录 |
|||
- (7) 编译成功后可以看到生成的镜像,然后拷贝镜像到上传路径,如 d:\tftpboot |
|||
|
|||
>`AARCH64_CROSS_PATH`指向64位交叉编译链目录 |
|||
![Alt text](../../fig/windows_compile_output.png) |
|||
|
|||
> 上传路径可以在例程 makefile 中通过修改 USR_BOOT_DIR 变量指定 |
|||
``` |
|||
echo $PHYTIUM_DEV_PATH $AARCH32_CROSS_PATH $AARCH64_CROSS_PATH |
|||
make image |
|||
``` |
|||
|
|||
- 环境变量打印正确无误,表示**安装成功** |
|||
## 1.4 Windows 10安装Msys2(可选) |
|||
- (8) 本环境中集成了 tftp 工具,可以支持通过网络将镜像下载到开发板,具体的使用方法是 |
|||
|
|||
- (1). 获取[Windows环境安装包](https://pan.baidu.com/s/17WX5hec7t8_ubAKzFCwQAA) |
|||
>提取码:MGW6 |
|||
``` |
|||
1. 固定电脑端网卡的 ip 地址(如 192.168.4.30),手动设置电脑端网卡的 ip 地址,或者通过路由器设置绑定 ip |
|||
2. 通过网线连接开发板和设置了固定 ip 地址的电脑端网卡 |
|||
3. 在电脑端运行 tftp64.exe,将 tftp 目录指向*.bin 或 *.elf 镜像 (baremetal.elf)所在的位置 |
|||
4. 启动开发板停留在 u-boot 控制台界面,然后通过串口工具输入下列命令 |
|||
|
|||
- msys2, `msys2-x86_64-20210725.exe` |
|||
- mingw64-arm交叉编译链, `gcc-arm-10.3-2021.07-mingw-w64-i686-arm-none-eabi.tar.xz`, `gcc-arm-10.3-2021.07-mingw-w64-i686-aarch64-none-elf.tar.xz` |
|||
- tftp工具,`tftp.zip` |
|||
setenv ipaddr 192.168.4.20 |
|||
setenv serverip 192.168.4.30 |
|||
setenv gatewayip 192.168.4.1 |
|||
tftpboot 0x90100000 baremetal.elf |
|||
bootelf -p 0x90100000 |
|||
``` |
|||
|
|||
- (2). 创建Windows集成开发环境(DEV目录),如`D:/phytium-dev`, 将DEV目录添加在Windows环境变量中,变量名为`PHYTIUM_DEV_PATH`,如下图所示,保存环境变量, |
|||
>对于Windows 10,在桌面左下角系统搜索框中输入“环境变量”即可进入环境变量编辑界面 |
|||
- 可以使用开源串口工具 [WindTerm](https://github.com/kingToolbox/WindTerm) 连接开发板 |
|||
|
|||
>DEV目录中不要留空格 |
|||
|
|||
![输入图片说明](../../fig/add_path_for_win.png) |
|||
![Alt text](../../fig/windows_tftpupload.png) |
|||
|
|||
- (3). 保存DEV环境变量后,打开一个控制台,输入`echo %PHYTIUM_DEV_PATH%`,检查环境变量是否设置成功, |
|||
|
|||
![输入图片说明](../../fig/check_env_for_win.png) |
|||
![Alt text](../../fig/windows_terminal_output.png) |
|||
|
|||
- (4). 双击`msys2-x86_64-20210725.exe`,设置`Msys2`的安装路径在DEV路径下,其余设置按默认安装,注意安装完成后不要马上启动,最后一步取消勾选“马上启动Msys2” |
|||
|
|||
![输入图片说明](../../fig/install_msys2.png) |
|||
- (9) 本环境中集成了 JTAG OpenOCD 调试工具,可以支持 AARCH64 和 AARCH32 调试,具体使用方法可以参考[JTAG 调试例程](https://gitee.com/phytium_embedded/phytium-standalone-sdk/tree/master/example/system/jtag_debugging) |
|||
|
|||
![Msys2安装过程](../../fig/installing_msys2.png) |
|||
- 首先使用 JTAG 适配器连接电脑端和开发板,我们这里使用的是 FireDAP,使用 OpenOCD 的话,需要参考原理图,连接 TDI TDO TMS 和 TCK 四根线 |
|||
|
|||
- (5). `Msys2`安装完成后,需要添加国内软件源,否则下载速度会很慢,进入`D:\phytium-dev\msys64\etc\pacman.d`目录下,找到以下三个文件,在文件末尾分别添加对应的软件源 |
|||
![Alt text](../../fig/windows_jtag_connect.jpg) |
|||
|
|||
- mirrorlist.mingw32 |
|||
- 双击 terminal.cmd 两次创建两个窗口,一个窗口运行 OpenOCD,另一个窗口运行 GDB,其中,运行 OpenOCD 的窗口输入下列命令,启动 OpenOCD 进程 |
|||
|
|||
``` |
|||
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686 |
|||
cd phytium-standalone-sdk\example\system\jtag_debugging |
|||
make run_openocd |
|||
``` |
|||
|
|||
- mirrorlist.mingw64 |
|||
- 等待 OpenOCD 进程启动完成后, 运行 GDB 的窗口输入下列命令,启动 GDB 调试进程,连接 OpenOCD 进程,后续的调试作业可以在这个窗口完成 |
|||
|
|||
``` |
|||
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64 |
|||
cd phytium-standalone-sdk\example\system\jtag_debugging |
|||
make run_gdb |
|||
``` |
|||
|
|||
- mirrorlist.msys |
|||
> 调试适配器支持 Jlink 和 CMSIS DAP,可以在 example 的 makefile 中通过修改 OPENOCD_CMD 指定是使用 Jlink 还是 CMSIS DAP |
|||
|
|||
``` |
|||
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch |
|||
``` |
|||
![Alt text](../../fig/windows_jtag_upload.png) |
|||
|
|||
- (6). 进入`D:\phytium-dev\msys64`目录,双击`msys2_shell.cmd`启动运行`Msys2`,输入以下命令,更新`Msys2`软件,安装必要组件 |
|||
## 注意事项 |
|||
|
|||
>如果执行失败,可以多次尝试,直到没有报错 |
|||
- 1. 运行 terminal.cmd 会自动设置环境变量,后续的操作都必须在 terminal.cmd 弹出的控制台中进行,可以通过下列方法验证环境是否可以工作 |
|||
|
|||
>安装过程全部选用默认方式`default`或选择`y`,注意如果没有`default = all`,需要输入`y` |
|||
|
|||
``` |
|||
$ pacman -Syu |
|||
$ pacman -S mingw-w64-x86_64-toolchain |
|||
$ pacman -S base-devel git python3 python3-pip |
|||
``` |
|||
|
|||
![更新Msys2软件源](../../fig/update_packman.png) |
|||
|
|||
- (7). 运行以下命令,检查组件是否安装完全 |
|||
|
|||
``` |
|||
$ pacman -Q make git wget python3 python3-pip |
|||
``` |
|||
``` |
|||
aarch64-none-elf-gcc --version |
|||
arm-none-eabi-gcc --version |
|||
openocd --version |
|||
make --version |
|||
``` |
|||
|
|||
## 1.5 卸载开发环境 |
|||
![](../../fig/windows_env_check.png) |
|||
|
|||
- 在DEV目录下双击`run_msys2.cmd`, 启动`Msys2`控制台,在控制台输入`./uninstall.py`完成SDK卸载 |
|||
- 2. JTAG 适配器驱动问题,使用 Jlink 或者 FireDAP 要使用 WinUSB 的驱动不要使用官方的驱动,具体修改方法是在设备管理器里卸载官方驱动,然后用 Zadig 工具将设备驱动换成 WinUSB, OpenOCD 中会将 Jlink 当作一个普通的 USB Bulk 设备,将 CMSIS DAP 当成一个 USB Hid 设备进行通信 |
|||
|
|||
- 在`Msys2`控制台运行`rm /etc/profile.d/phytium_standalone_sdk.sh`,删除SDK配置文件 |
|||
![Alt text](../../fig/windows_jtag_drvier.png) |
|||
|
|||
- 在DEV目录`D:\phytium-dev\tftp`下以**管理员权限**打开Windows命令行中断,运行`uninstall.cmd`完成Tftd卸载 |
|||
- 3. 部分 Windows 中存在环境问题,有些 Windows 环境中已经之前已经安装了 MINGW 或者 Cygwin 等工具,必须确保编译环境中使用的是 xpack-windows-build-tools 里提供的 busybox 工具 |
|||
|
|||
- 重启系统完成卸载 |
|||
![Alt text](../../fig/windows_tools_check.png) |
@ -0,0 +1,3 @@ |
|||
set OPENOCD_SCRIPTS_PATH=%PHYTIUM_OPENOCD_PATH%//share//openocd//scripts |
|||
|
|||
%PHYTIUM_OPENOCD_PATH%//bin//openocd.exe -f %OPENOCD_SCRIPTS_PATH%//target//e2000d_cmsisdap_v1.cfg -s %OPENOCD_SCRIPTS_PATH% |
@ -1,12 +1,5 @@ |
|||
#!/bin/sh |
|||
|
|||
if [ "$(expr substr $(uname -s) 1 5)"=="Linux" ];then |
|||
sudo $PHYTIUM_OPENOCD_PATH/bin/openocd \ |
|||
-f $PHYTIUM_OPENOCD_PATH/share/openocd/scripts/target/e2000d_cmsisdap_v1.cfg \ |
|||
-s $PHYTIUM_OPENOCD_PATH/share/openocd/scripts |
|||
fi |
|||
if [ "$(expr substr $(uname -s) 1 7)"=="MSYS_NT" ];then |
|||
$PHYTIUM_OPENOCD_PATH/bin/openocd.exe \ |
|||
-f $PHYTIUM_OPENOCD_PATH/scripts/target/e2000d_cmsisdap_v1.cfg \ |
|||
-s $PHYTIUM_OPENOCD_PATH/scripts |
|||
fi |
|||
sudo $PHYTIUM_OPENOCD_PATH/bin/openocd \ |
|||
-f $PHYTIUM_OPENOCD_PATH/share/openocd/scripts/target/e2000d_cmsisdap_v1.cfg \ |
|||
-s $PHYTIUM_OPENOCD_PATH/share/openocd/scripts |
@ -0,0 +1,3 @@ |
|||
set OPENOCD_SCRIPTS_PATH=%PHYTIUM_OPENOCD_PATH%//share//openocd//scripts |
|||
|
|||
%PHYTIUM_OPENOCD_PATH%//bin//openocd.exe -f %OPENOCD_SCRIPTS_PATH%//target//e2000d_jlink_v9.cfg -s %OPENOCD_SCRIPTS_PATH% |
@ -1,12 +1,5 @@ |
|||
#!/bin/sh |
|||
|
|||
if [ "$(expr substr $(uname -s) 1 5)"=="Linux" ];then |
|||
sudo $PHYTIUM_OPENOCD_PATH/bin/openocd \ |
|||
-f $PHYTIUM_OPENOCD_PATH/share/openocd/scripts/target/e2000d_jlink_v9.cfg \ |
|||
-s $PHYTIUM_OPENOCD_PATH/share/openocd/scripts |
|||
fi |
|||
if [ "$(expr substr $(uname -s) 1 7)"=="MSYS_NT" ];then |
|||
$PHYTIUM_OPENOCD_PATH/bin/openocd.exe \ |
|||
-f $PHYTIUM_OPENOCD_PATH/scripts/target/e2000d_jlink_v9.cfg \ |
|||
-s $PHYTIUM_OPENOCD_PATH/scripts |
|||
fi |
|||
sudo $PHYTIUM_OPENOCD_PATH/bin/openocd \ |
|||
-f $PHYTIUM_OPENOCD_PATH/share/openocd/scripts/target/e2000d_jlink_v9.cfg \ |
|||
-s $PHYTIUM_OPENOCD_PATH/share/openocd/scripts |