Skip to content

Latest commit

 

History

History
243 lines (199 loc) · 8.56 KB

README.cn.md

File metadata and controls

243 lines (199 loc) · 8.56 KB

English Readme | 中文说明

关于

联盛德MCU W806 开发套件

文件结构

wm-sdk-w806
├─app              # 用户应用代码
├─bin              # 编译中间及结果产物
├─demo             # 功能演示代码
├─include          # SDK头文件
├─ld               # 链接脚本
├─lib              # 库文件
├─Makefile
├─platform         # SDK源代码
└─tools            # 编译脚本和工具

Linux环境说明

下载

安装

上面下载的tar.gz文件外层路径用的是./目录, 建议放到一个单独的目录中解压, 或者指定解压目录解压目录, 参考命令如下

mkdir csky-elfabiv2-tools-x86_64-minilibc-20210423
tar xvf csky-elfabiv2-tools-x86_64-minilibc-20210423.tar.gz  -C csky-elfabiv2-tools-x86_64-minilibc-20210423/

移动到/opt下, 目录可以自己定, 设置权限禁止普通用户修改

cd /opt/toolchains/
sudo mv ~/Download/csky-elfabiv2-tools-x86_64-minilibc-20210423/ .
sudo chown -R root:root csky-elfabiv2-tools-x86_64-minilibc-20210423/

不需要添加系统路径

编译

导出此项目

git clone https://github.com/IOsetting/wm-sdk-w806.git

运行menuconfig, 配置工具路径

cd wm-sdk-w806
make menuconfig

在menuconfig界面中, Toolchain Configuration -> 第二个toolchain path, 将刚才的路径填进去, 需要完整路径, 带最后的斜杆, 例如

/opt/toolchains/csky-elfabiv2-tools-x86_64-minilibc-20210423/bin/

其他不用动, Save后退出menuconfig

执行编译

make

更多编译选项

  • 串口0打印printf()输出
    在 /include/arch/xt804/csi_config.h 中通过USE_UART0_PRINT控制是否使用串口0打印printf()输出, 默认开启. 注意: 此功能会占用串口0, 如果需要使用串口0与其他设备通信, 请关闭此选项

  • 免按键自动下载
    在 /include/arch/xt804/csi_config.h 中通过USE_UART0_AUTO_DL控制是否开启免按键自动下载, 默认关闭. 需要先开启USE_UART0_PRINT才能开启此选项, 如果关闭USE_UART0_PRINT则此选项关闭.

写入开发板

首先通过dmesg,lsusb, ls /dev/tty*等命令确定自己开发板在系统中对应的USB端口, 例如ttyUSB0.

运行menuconfig, 配置端口名称

cd wm-sdk-w806
make menuconfig

在menuconfig界面中, Download Configuration -> download port, 填入开发板在你的系统中对应的USB端口, 例如ttyUSB0, 注意这里只需要填纯端口名, 不需要用完整的路径. 可以调高波特率加快下载, 只支持115200, 460800, 921600, 1000000, 2000000, Save后退出menuconfig

执行烧录

make flash

根据输出的提示, 按一下reset键就会开始下载. 如果前一次写入的固件已经开启了USE_UART0_AUTO_DL则不需要按键, 会自动开始下载

enerate compressed image completed.
build finished!
connecting serial...
serial connected.
wait serial sync.........         <----- 这里按下reset
please manually reset the device. <----- 或者这里
....
serial sync sucess.
mac CC-CC-CC-CC-CC-CC.
start download.
0% [###] 100%
download completed.
reset command has been sent.

下载完成后, 下载工具会发送复位指令, 复位成功后程序会自动开始执行.

更多下载选项

显示串口列表

make list

烧录并打开串口监视器

make run

只打开串口监视器

make monitor

Windows环境说明

下载相关软件

安装和配置

  • 在本机运行MSYS2的安装文件安装MSYS2
  • 在MSYS2命令行下, 参考下面的命令安装必要的软件
# 更新软件包
pacman -Syu
# 安装 make
pacman -S msys/make
# 安装 automake
pacman -S msys/automake
# 安装 autoconf
pacman -S msys/autoconf
# 安装 gcc
pacman -S msys/gcc
# 安装 git
pacman -S msys/git
# 安装编译时需要的依赖库
pacman -S msys/ncurses-devel
pacman -S msys/gettext-devel

解压工具链到指定目录, 注意这个tar包没有顶层目录, 建议指定目录解压

mkdir csky-elfabiv2-tools-mingw-minilibc-20210423
tar xvf csky-elfabiv2-tools-mingw-minilibc-20210423.tar.gz -C csky-elfabiv2-tools-mingw-minilibc-20210423/

记下这个目录的路径, 例如 /d/w806/csky-elfabiv2-tools-mingw-minilibc-20210423/bin/ , 下面配置menuconfig需要用到

编译

导出SDK

git clone https://github.com/IOsetting/wm-sdk-w806.git

用menuconfig配置工具链路径

cd wm-sdk-w806
make menuconfig

在menuconfig界面中, Toolchain Configuration -> 第二个toolchain path, 将刚才的路径填入, 需要包含最后的/, 例如

/d/w806/csky-elfabiv2-tools-mingw-minilibc-20210423/bin/

其他使用默认设置, Save后退出menuconfig. 如果下面一排菜单高亮不显示, 可以使用快捷键Alt+E=退出, Alt+S=保存

然后执行编译

make

生成的固件在 bin/W806 目录下

写入开发板

选项一: 使用 Upgrade_Tools

  • 连接开发板
  • 运行官方烧录工具 Upgrade_Tools_V1.4.8.exe,
  • 选择正确的端口, 波特率使用默认的115200, 点击打开串口
  • 选择刚才编译好的固件, 文件路径为 bin/W806/W806.fls
  • 点击下载
  • 短按开发板的Reset键, 等待烧录工具完成烧录
  • 再次短按开发板的Reset键, 烧录好的程序会开始执行

选项二: 使用 wm_tool

首先通过Windows设备管理器确定自己开发板在系统中对应的USB端口, 例如COM5.

运行menuconfig, 配置端口名称

cd wm-sdk-w806
make menuconfig

在menuconfig界面中, Download Configuration -> download port, 填入开发板在你的系统中对应的USB端口, 例如COM5, 注意这里只需要填纯端口名, 不需要用完整的路径. 可以调高波特率加快下载, 只支持115200, 460800, 921600, 1000000, 2000000, Save后退出menuconfig

其余烧录和选项与Linux环境相同, 请参考Linux相应说明.

问题

  1. 下载失败
    如果出现can not open serial make: *** [tools/w806/rules.mk:158: flash] Error 255错误, 检查一下是否有其他串口软件占用了这个端口, 如果有需要先关闭
  2. 使用FreeRTOS时, 延时无效
    请检查: 在/include/arch/xt804/csi_config.h中, 是否未将#define CONFIG_KERNEL_NONE 1宏定义注释掉?
  3. 编译结果未更新
    如果修改代码后编译, 发现固件未更新, 可以执行下面的命令清空旧的编译输出, 然后再次编译
# 清理旧的编译结果和中间结果
make distclean
# 重新编译
make
  1. 自动复位失败
    在个别情况下, 自动复位会失败, 这时候需要按开发板的 Reset 键进行手工复位

授权

WM-SDK-W806 项目的代码使用 Apache-2.0 协议授权.

WM-SDK-W806 项目中包含的, 来自于其它上游项目的代码及其派生的补丁, 其版权为各上游项目所有. 除非特别指出, 否则 WM-SDK-W806 不会主张任何版权. 若需获得各项目的完整版权声明, 请查看源代码中的授权信息. 除非特别声明, 所有以任何形式提交至 WM-SDK-W806 项目的代码将使用同样的Apache-2.0 协议授权. 源代码作者如需声明代码版权, 请在文件头部添加声明. 如果提交的代码中包含第三方作品, 提交者应当负责避免版权和授权冲突, 并在文件头部添加声明.