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开发环境集成了, |
- 本工具提供了 Phytium RTOS SDK 的 Windows 开发环境,在 64 位 Windows 10/11 上完成测试 |
||||
- `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服务的脚本 |
|
||||
|
|
||||
## 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 |
||||
- (1). 添加Windows环境变量,`PHYTIUM_DEV_PATH`(环境变量名**不能自定义**),例如,指向文件夹`E:\phytium-dev-windows-nt`(可以自定义) |
python -m pip install windows-curses |
||||
|
``` |
||||
|
|
||||
![配置环境变量](../../fig/add_path_for_win.png) |
- 9. GDB-Multiarch 工具,来自 https://static.grumpycoder.net/pixel/gdb-multiarch-windows/ |
||||
|
- 10. TFTP 工具,来自 https://bitbucket.org/phjounin/tftpd64/downloads/ |
||||
|
|
||||
- (2). 进入DEV目录,双击脚本`run_msys2.cmd`, 进入msys2控制台, 运行`./setup_dev.py`,注册开发环境 |
## 使用方法 |
||||
|
|
||||
![安装开发环境](../../fig/install_for_mingw.png) |
- (1)从百度网盘链接下载获取开发环境,下载完成后双击 phytium-rtos-dev-tools.exe 解压到指定目录 |
||||
|
|
||||
- (3). 安装完成后重启系统,或者关闭当前终端,新开一个终端继续后面的操作 |
- [Windows 10/11 x64 环境下载链接](https://pan.baidu.com/s/1J7dndPqMtQD1RNmfdVHblQ) |
||||
|
>提取码:phyt |
||||
|
|
||||
- (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 |
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) |
||||
|
|
||||
|
- (4) 进入Phytium Standalone SDK代码目录,选择一个 example 进行编译开发,例如使用 letter shell 例程,目标平台为 E2000D Demo 板,首先加载默认配置 |
||||
|
|
||||
``` |
``` |
||||
cd ./phytium-standalone-sdk |
cd phytium-standalone-sdk\example\system\letter_shell_test |
||||
./install.py |
make list_kconfig |
||||
|
make load_kconfig LOAD_CONFIG_NAME=e2000d_aarch64_demo_shell |
||||
``` |
``` |
||||
|
|
||||
![开发环境安装完成](../../fig/setup_win.png) |
![Alt text](../../fig/windows_load_defconfig.png) |
||||
|
|
||||
|
|
||||
### Q: 如果当前环境无法连接互联网 |
|
||||
|
|
||||
- 在执行第(2)步前,需要手动下载Phytium Standalone SDK,放置在DEV目录下 |
- (5)如果需要进行配置的话,可以进入 menuconfig 界面 |
||||
|
|
||||
- https://gitee.com/phytium_embedded/phytium-standalone-sdk |
``` |
||||
|
make menuconfig |
||||
![手动下载SDK](../../fig/git_url.png) |
``` |
||||
|
|
||||
## 1.3 检查安装是否成功 |
|
||||
|
|
||||
- 打印下列环境变量,观察各变量是否存在,指向的目录是否正确 |
|
||||
>`PHYTIUM_DEV_PATH`指向DEV目录 |
|
||||
|
|
||||
>`AARCH32_CROSS_PATH`指向32位交叉编译链目录 |
![Alt text](../../fig/windows_menuconfig.png) |
||||
|
|
||||
>`AARCH64_CROSS_PATH`指向64位交叉编译链目录 |
- (6) 配置完成之后进行编译 |
||||
|
|
||||
``` |
``` |
||||
echo $PHYTIUM_DEV_PATH $AARCH32_CROSS_PATH $AARCH64_CROSS_PATH |
make clean |
||||
|
make all |
||||
``` |
``` |
||||
|
|
||||
- 环境变量打印正确无误,表示**安装成功** |
![Alt text](../../fig/windows_compile.png) |
||||
## 1.4 Windows 10安装Msys2(可选) |
|
||||
|
|
||||
- (1). 获取[Windows环境安装包](https://pan.baidu.com/s/17WX5hec7t8_ubAKzFCwQAA) |
- (7) 编译成功后可以看到生成的镜像,然后拷贝镜像到上传路径,如 d:\tftpboot |
||||
>提取码:MGW6 |
|
||||
|
|
||||
- msys2, `msys2-x86_64-20210725.exe` |
![Alt text](../../fig/windows_compile_output.png) |
||||
- 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` |
|
||||
|
|
||||
- (2). 创建Windows集成开发环境(DEV目录),如`D:/phytium-dev`, 将DEV目录添加在Windows环境变量中,变量名为`PHYTIUM_DEV_PATH`,如下图所示,保存环境变量, |
> 上传路径可以在例程 makefile 中通过修改 USR_BOOT_DIR 变量指定 |
||||
>对于Windows 10,在桌面左下角系统搜索框中输入“环境变量”即可进入环境变量编辑界面 |
``` |
||||
|
make image |
||||
|
``` |
||||
|
|
||||
>DEV目录中不要留空格 |
- (8) 本环境中集成了 tftp 工具,可以支持通过网络将镜像下载到开发板,具体的使用方法是 |
||||
|
|
||||
![输入图片说明](../../fig/add_path_for_win.png) |
``` |
||||
|
1. 固定电脑端网卡的 ip 地址(如 192.168.4.30),手动设置电脑端网卡的 ip 地址,或者通过路由器设置绑定 ip |
||||
|
2. 通过网线连接开发板和设置了固定 ip 地址的电脑端网卡 |
||||
|
3. 在电脑端运行 tftp64.exe,将 tftp 目录指向*.bin 或 *.elf 镜像 (baremetal.elf)所在的位置 |
||||
|
4. 启动开发板停留在 u-boot 控制台界面,然后通过串口工具输入下列命令 |
||||
|
|
||||
- (3). 保存DEV环境变量后,打开一个控制台,输入`echo %PHYTIUM_DEV_PATH%`,检查环境变量是否设置成功, |
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 |
||||
|
``` |
||||
|
|
||||
![输入图片说明](../../fig/check_env_for_win.png) |
- 可以使用开源串口工具 [WindTerm](https://github.com/kingToolbox/WindTerm) 连接开发板 |
||||
|
|
||||
- (4). 双击`msys2-x86_64-20210725.exe`,设置`Msys2`的安装路径在DEV路径下,其余设置按默认安装,注意安装完成后不要马上启动,最后一步取消勾选“马上启动Msys2” |
![Alt text](../../fig/windows_tftpupload.png) |
||||
|
|
||||
![输入图片说明](../../fig/install_msys2.png) |
![Alt text](../../fig/windows_terminal_output.png) |
||||
|
|
||||
![Msys2安装过程](../../fig/installing_msys2.png) |
- (9) 本环境中集成了 JTAG OpenOCD 调试工具,可以支持 AARCH64 和 AARCH32 调试,具体使用方法可以参考[JTAG 调试例程](https://gitee.com/phytium_embedded/phytium-standalone-sdk/tree/master/example/system/jtag_debugging) |
||||
|
|
||||
- (5). `Msys2`安装完成后,需要添加国内软件源,否则下载速度会很慢,进入`D:\phytium-dev\msys64\etc\pacman.d`目录下,找到以下三个文件,在文件末尾分别添加对应的软件源 |
- 首先使用 JTAG 适配器连接电脑端和开发板,我们这里使用的是 FireDAP,使用 OpenOCD 的话,需要参考原理图,连接 TDI TDO TMS 和 TCK 四根线 |
||||
|
|
||||
- mirrorlist.mingw32 |
![Alt text](../../fig/windows_jtag_connect.jpg) |
||||
|
|
||||
``` |
- 双击 terminal.cmd 两次创建两个窗口,一个窗口运行 OpenOCD,另一个窗口运行 GDB,其中,运行 OpenOCD 的窗口输入下列命令,启动 OpenOCD 进程 |
||||
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686 |
|
||||
``` |
|
||||
|
|
||||
- mirrorlist.mingw64 |
|
||||
|
|
||||
``` |
``` |
||||
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64 |
cd phytium-standalone-sdk\example\system\jtag_debugging |
||||
|
make run_openocd |
||||
``` |
``` |
||||
|
|
||||
- mirrorlist.msys |
- 等待 OpenOCD 进程启动完成后, 运行 GDB 的窗口输入下列命令,启动 GDB 调试进程,连接 OpenOCD 进程,后续的调试作业可以在这个窗口完成 |
||||
|
|
||||
``` |
``` |
||||
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch |
cd phytium-standalone-sdk\example\system\jtag_debugging |
||||
|
make run_gdb |
||||
``` |
``` |
||||
|
|
||||
- (6). 进入`D:\phytium-dev\msys64`目录,双击`msys2_shell.cmd`启动运行`Msys2`,输入以下命令,更新`Msys2`软件,安装必要组件 |
> 调试适配器支持 Jlink 和 CMSIS DAP,可以在 example 的 makefile 中通过修改 OPENOCD_CMD 指定是使用 Jlink 还是 CMSIS DAP |
||||
|
|
||||
>如果执行失败,可以多次尝试,直到没有报错 |
|
||||
|
|
||||
>安装过程全部选用默认方式`default`或选择`y`,注意如果没有`default = all`,需要输入`y` |
|
||||
|
|
||||
``` |
![Alt text](../../fig/windows_jtag_upload.png) |
||||
$ pacman -Syu |
|
||||
$ pacman -S mingw-w64-x86_64-toolchain |
|
||||
$ pacman -S base-devel git python3 python3-pip |
|
||||
``` |
|
||||
|
|
||||
![更新Msys2软件源](../../fig/update_packman.png) |
## 注意事项 |
||||
|
|
||||
- (7). 运行以下命令,检查组件是否安装完全 |
- 1. 运行 terminal.cmd 会自动设置环境变量,后续的操作都必须在 terminal.cmd 弹出的控制台中进行,可以通过下列方法验证环境是否可以工作 |
||||
|
|
||||
``` |
``` |
||||
$ 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 |
#!/bin/sh |
||||
|
|
||||
if [ "$(expr substr $(uname -s) 1 5)"=="Linux" ];then |
|
||||
sudo $PHYTIUM_OPENOCD_PATH/bin/openocd \ |
sudo $PHYTIUM_OPENOCD_PATH/bin/openocd \ |
||||
-f $PHYTIUM_OPENOCD_PATH/share/openocd/scripts/target/e2000d_cmsisdap_v1.cfg \ |
-f $PHYTIUM_OPENOCD_PATH/share/openocd/scripts/target/e2000d_cmsisdap_v1.cfg \ |
||||
-s $PHYTIUM_OPENOCD_PATH/share/openocd/scripts |
-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 |
|
@ -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 |
#!/bin/sh |
||||
|
|
||||
if [ "$(expr substr $(uname -s) 1 5)"=="Linux" ];then |
|
||||
sudo $PHYTIUM_OPENOCD_PATH/bin/openocd \ |
sudo $PHYTIUM_OPENOCD_PATH/bin/openocd \ |
||||
-f $PHYTIUM_OPENOCD_PATH/share/openocd/scripts/target/e2000d_jlink_v9.cfg \ |
-f $PHYTIUM_OPENOCD_PATH/share/openocd/scripts/target/e2000d_jlink_v9.cfg \ |
||||
-s $PHYTIUM_OPENOCD_PATH/share/openocd/scripts |
-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 |
|