CW080 开发板快速上手:从 SDK 编译到系统启动

本文面向首次使用 CW080 开发板的用户,介绍如何准备编译环境、生成固件、通过 Windows USB 烧录工具写入固件,并通过串口确认系统启动。

本文所说的“点亮”,是指开发板成功启动 Linux 系统,并能通过串口执行命令,不包含摄像头出图、视频预览或显示屏显示。

适用范围:本文以 Tassadar-CW080-1.0.0-20260825 SDK、图示 CW080 PYXIS 开发板及 16 MiB SPI NOR Flash 固件配置为例。

数据安全提醒:本文采用整包固件烧录,并选择“全部擦除”。这会清除 Flash 中原有的系统和数据。请先备份需要保留的配置、校准信息和其他重要数据;烧录过程中不要断电或拔线。

一、开始前需要准备什么

项目用途与要求
CW080 开发板确认板卡型号、硬件版本和 Flash 配置与本文一致
Ubuntu 环境用于解压 SDK、编译并生成固件;需具备软件安装权限
Windows 环境用于运行 USB Cloner 并烧录固件
SDK 压缩包Tassadar-CW080-1.0.0-20260825.7z,请提前从 SDK 发布渠道获取
USB 数据线连接开发板的 USB 烧录接口和 Windows 电脑;不能使用仅支持充电的线材
配套 USB 转串口板及连接线连接开发板 Debug 串口,用于查看启动日志和输入命令
串口终端软件例如 Xshell,用于打开开发板对应的串口
文件传输方式网络共享或 U 盘等,用于将固件和烧录工具从 Ubuntu 传到 Windows

整个流程如下:

准备 Ubuntu 环境 → 解压 SDK → 设置编译环境 → 编译固件 → 准备 Windows 烧录工具 → 连接开发板并烧录 → 串口验证启动。

后文会标明每一步在 Ubuntu、Windows 还是开发板终端执行。代码块中的命令按顺序输入,不需要输入终端提示符。

二、在 Ubuntu 中准备编译环境

2.1 安装依赖工具

在 Ubuntu 中打开 Bash 终端,执行:

sudo apt update
sudo apt install -y p7zip-full build-essential lzop u-boot-tools \
  libncurses5-dev mtd-utils python3 doxygen graphviz

安装过程中如需输入密码,请输入当前 Ubuntu 用户的密码。输入时终端不显示字符,属于正常现象。

检查工具是否可用:

command -v 7z make gcc lzop mkimage mkfs.jffs2 python3
python3 --version

预期结果:各工具均返回安装路径,且 Python 版本符合 SDK 要求。

SDK 的 software/board/README.txt 标明固件脚本目前仅支持 Python 3.8。安装 python3 并不保证得到 3.8;如果显示的是其他版本,请先按 SDK 配套环境说明准备 Python 3.8,并确认后续命令使用该解释器。不要直接替换系统 Python,也不要将其他版本视为已经验证兼容。

2.2 解压 SDK

先进入 SDK 压缩包所在目录。例如,文件放在当前用户的 Downloads 目录时执行:

cd ~/Downloads
7z x Tassadar-CW080-1.0.0-20260825.7z

如果压缩包不在该目录,请先进入实际存放位置,再执行解压命令。

解压完成后,当前目录下应出现:

Tassadar-CW080-1.0.0-20260825/

进入 SDK 的板端工作目录:

cd Tassadar-CW080-1.0.0-20260825/software/board
pwd

预期结果:pwd 输出的路径以 /software/board 结尾。后续环境设置和编译命令均在这个目录执行。

三、配置环境并编译固件

3.1 设置 SDK 编译环境

在刚才的 Ubuntu Bash 终端中执行:

source build/Tassadar_env_setup.sh

首次运行时,脚本会按需解压 SDK 内部源码,请等待解压完成,再根据提示选择编译选项。

本文示例按下表选择,每输入一个序号后按回车:

提示项输入对应配置
SDK type2ISVP
Flash type1NOR
Linux version1Linux 4.4.94
U-Boot version1U-Boot 2013.07

设置完成后,可执行以下命令检查:

echo "$TASSADAR_ENV_TOP"
echo "$ISVP_ENV_FLASH_TYPE"

预期结果:第一行指向当前 SDK 的 software/board 目录,第二行输出 NOR。

必须使用 source,不能改成 sh build/Tassadar_env_setup.sh。请继续使用当前终端编译;关闭终端或新开终端后,需要重新进入 software/board 并设置环境。

3.2 确认本次固件配置

固件生成脚本位于:

software/board/build/isvp/Tassadar_image_package.py

该脚本末尾的 config 配置决定固件的芯片型号、Flash 容量、内核板级配置和传感器等。本文对应的关键配置为:

配置项本文示例
projectPRJ010
chip_versionsn
toolchaingcc540
libcuclibc
uboot_version2013.07
kernel_configPRJ010_pyxis_defconfig
support_multicam1
flash_size16*1024*1024,即 16 MiB

传感器配置也应与实际连接的模组一致;本文只验证系统启动,不将“进入命令行”等同于“摄像头已正常工作”。

3.3 执行编译

确认仍在 software/board 目录,并已完成上一节环境设置后,执行:

python3 build/isvp/Tassadar_image_package.py

此处使用 SDK 随包说明中的显式 Python 调用方式,避免依赖脚本可执行权限。首次编译还可能解压工具链等文件,请耐心等待。

编译成功的判断标准:

  1. 脚本正常结束,未报告构建失败。

  2. 终端出现整包 .img 文件路径以及 is ready! 提示。

  3. 对应输出目录中存在本次生成的 .img 和同名 .txt 文件。

不要仅凭输出目录已经创建,或目录里存在旧固件,就判断本次编译成功。

step-04.jpg

3.4 找到生成的固件

固件默认输出到以下目录,路径相对于 software/board:

_release/image_PRJ010/

例如,一次编译生成的目录和文件如下:

_release/image_PRJ010/
└── PRJ010sn_gcc540_uclibc_4.4_S1_16M_202610271606/
    ├── PRJ010sn_gcc540_uclibc_4.4_S1_16M_202610271606.img
    ├── PRJ010sn_gcc540_uclibc_4.4_S1_16M_202610271606.txt
    └── system.jffs2
文件用途
.img完整固件,本文 USB 整包烧录时选择这个文件
同名 .txt记录本次固件配置及构建信息,建议与固件一起保存
system.jffs2system 分区的 JFFS2 文件系统镜像,本例不单独烧录

目录或中间文件会随 SDK 配置变化,以实际输出为准。示例中的 202610271606 是一次构建的时间戳,不是固定名称,请以本次编译日志中给出的输出路径为准。

step-05.jpg

将本次生成的 .img 及同名 .txt 文件,通过网络共享或 U 盘复制到 Windows。

四、在 Windows 中准备 USB 烧录工具

4.1 解压 Windows 版本的工具

将 SDK 中的以下文件复制到 Windows:

Tassadar-CW080-1.0.0-20260825/software/pc/USB-cloner-2.7.0.1-20260728.7z

解压后,目录中同时包含 Ubuntu 和 Windows 版本的工具压缩包。还需要继续解压 cloner-2.7.0.1-windows_alpha.7z,直到找到 cloner.exe。

step-06.png

step-08.png

4.2 连接调试串口,暂不向主板上电

先对照下图找到开发板的 Debug 串口和 USB 烧录接口。本文使用的配套串口板无需另外安装驱动,连接后直接查看 COM 口即可;下一节安装的是主板的 USB 烧录驱动。

step-14.png

  1. 在主板断电状态下,将配套串口板连接到开发板 Debug 串口。

  2. 将串口板的 USB 端连接到 Windows 电脑;此时先不连接主板的 USB 烧录供电线。

  3. 在设备管理器的“端口(COM 和 LPT)”中查看串口号,例如 COM6。该号码仅为示例,以电脑实际显示为准。

  4. 打开 Xshell 等串口终端,选择该 COM 口,并设置以下参数:

参数设置值
波特率115200
数据位8
停止位1
校验位无(None)
流控无(None)

串口连接用于查看日志和输入命令,主板的 USB 烧录连接用于写入固件,两者不要混淆。安装 USB 烧录驱动时,应选择进入烧录模式后出现的主板设备,不要选择串口 COM 设备。

4.3 首次安装 USB 烧录驱动

本节安装的是 USB Cloner 烧录驱动,不是串口驱动。按照《USBCloner烧录工具快速上手指南》第 2.1 节,需先让主板进入 USB 烧录模式,再通过 Windows 设备管理器手动安装。若当前电脑已安装该驱动,且主板进入烧录模式后能正常识别,可跳过重复安装。

image.png

第一步:让主板进入 USB 烧录模式。

  1. 保持主板断电,按住图中标出的 bootselo按键(原图标注为 bootselo,请按图定位,并以实物丝印为准)。

  2. 保持按住按键,将主板 USB 烧录接口连接到 Windows 电脑,使主板上电。

  3. 待 Windows 检测到设备后松开按键,保持 USB 连接,安装过程中不要断电或拔线。

step-15.png

第二步:在设备管理器中安装烧录驱动。

  1. 右键点击 Windows 的“计算机”或“此电脑”,选择“管理”→“设备管理器”。找到主板进入 USB 烧录模式后新增的设备;未安装驱动时,该设备通常带有黄色叹号。指南中的设备名称仅为示例,以实际显示为准。

  2. 继续按照文档图示手动安装驱动;若已正确识别为烧录设备,则无需重复安装。

  3. 右键点击该未识别设备,选择“更新驱动软件”或“更新驱动程序”,再选择“浏览计算机以查找驱动程序软件”。

  4. 点击“浏览”,选择解压后的烧录工具根目录中的 cloner-win32-driver 文件夹,点击“确定”;勾选 “包括子文件夹”,再点击“下一步”。

  5. 等待驱动安装。如果弹出“Windows 安全”安装确认框,确认驱动来自配套工具包且发布者可信后,点击“安装”。指南示例还勾选了“始终信任……”;

  6. 出现驱动安装成功提示后,点击“关闭”,返回设备管理器检查结果。指南中的设备名称为 usb cloner device,设备不应再带有黄色叹号等驱动异常标记。

  7. 确认安装成功后,断开主板的 USB 烧录供电线,让主板恢复断电状态,再进行下一章的烧录配置。

预期结果:主板进入 USB 烧录模式后,设备管理器能正常识别烧录设备;串口仍通过原来的 COM 口使用,无需为配套串口板另装驱动。

图文步骤可参照工具根目录下的 docs\中文\USBCloner烧录工具快速上手指南.pdf 第 2.1 节(第 5~10 页,图 2-2~图 2-10)。该指南以 Windows 7 为例,其他 Windows 版本的菜单文字可能不同;

五、配置 USB Cloner 并烧录

5.1 选择平台和板级

打开 cloner.exe,点击“配置”,在 INFO 页面选择:

配置项本文示例
平台系列C
芯片平台cw080
板级配置cw080_sfc_nor_ddr3_linux.cfg
烧录方式USB 烧录

其他参数先保持该板级配置的默认值。

step-10.png

5.2 设置整包固件烧录策略

切换到 POLICY 页面:

  1. 仅勾选 all 一行,取消 uboot、kernel、rootfs 等其他行的勾选。

  2. 确认 all 一行的类型为“文件”,操作类型为 SFC_NOR。

  3. 确认 offset 为 0x0。

  4. 点击该行右侧的 ... 按钮,选择刚才复制到 Windows 的本次完整 .img 固件。

  5. 再次核对文件名、路径及版本。

step-11.png

.img 已包含 U-Boot、内核和文件系统,本例从 Flash 起始地址整体写入,不需要再单独勾选各分区。截图中的旧文件路径和时间戳只用于展示界面,必须替换为你自己的本次固件路径。

5.3 设置擦除方式并保存

进入 SFC → “基本信息”,将“擦除”设置为 “全部擦除”,然后点击“保存”。

step-12.png


请再次确认:此操作会清除 Flash 中的原有数据。尚未完成备份时,不要继续。

5.4 开始烧录

  1. 确认主板当前断电,串口终端已打开。

  2. 在 USB Cloner 主界面点击“开始”,使工具进入等待烧录状态。

  3. 按住开发板的bootselo按键。

  4. 保持按住按键,将主板 USB 烧录接口连接到 Windows 电脑,使主板上电。

  5. 确认工具识别设备并出现 boot 阶段进度后,松开按键。

  6. 等待烧录结束,期间不要拔线、断电或关闭工具。

step-16.png

烧录过程中,可通过 USB Cloner 查看进度,同时通过串口终端观察日志。

step-17.png

预期结果:工具完成 boot 和 all 阶段,显示成功结果且没有报错。boot 阶段出现进度不代表整包已烧录完成,不能此时断电。

六、启动系统并确认“点亮”成功

6.1 查看正常启动日志

图示板级配置启用了“强制重启”,烧录完成后可观察串口是否出现正常启动日志。

如果没有自动进入正常启动流程,请先确认烧录已成功结束,在工具中点击“停止”,确保启动选择按键已松开,再对主板断电重启。正常启动时不要按住 bootselo按键。

串口终端应能看到 U-Boot、Linux 内核和文件系统启动信息,随后进入登录或命令行界面。

step-19.png

若出现 login: 提示,按 SDK《开发板使用指南》输入用户名 root。如果固件提示输入密码,请以该固件的交付说明为准;本文不假定所有固件均使用空密码。

6.2 在开发板上执行验证命令

以下命令在 Windows 串口终端所连接的开发板命令行 中执行,不是在 Ubuntu 编译终端或 Windows 命令提示符中执行:

uname -a
cat /proc/mtd

预期结果:

  • uname -a 能输出 Linux 系统信息,内核版本与本例的 4.4.94 配置相符。

  • cat /proc/mtd 能列出当前 NOR 固件的 MTD 分区信息。

  • 命令执行后能返回提示符,并能继续输入命令。

满足“完整固件烧录成功、Linux 正常启动、串口命令可以交互执行”这三个条件,即完成本次开发板快速上手。

接下来可以继续阅读 SDK 中的《开发板使用指南》,开展网络配置、摄像头调试和视频预览。

七、常见问题与排查方法

现象优先检查
Ubuntu 提示压缩包不存在当前目录是否正确,文件名是否与实际 SDK 包一致
提示找不到 7z、mkimage 或 mkfs.jffs2依赖是否安装成功;对应软件包分别为 p7zip-full、u-boot-tools、mtd-utils
Python 脚本启动即报错核对 python3 --version;SDK 随包说明要求 Python 3.8,保留完整报错供支持人员分析
找不到脚本或环境变量不正确是否位于 software/board;是否在同一个 Bash 终端中执行过 source build/Tassadar_env_setup.sh
输出目录存在,但没有本次固件检查本次编译是否真正成功,不要将旧产物当成本次产物
USB Cloner 无法识别主板是否安装烧录驱动、是否使用数据线、是否连接正确 USB 接口、是否在按住启动选择按键时上电
烧录进度报错或停滞记录错误提示及停滞阶段,检查平台/板级、固件路径、USB 连接和供电;对照工具指南“常见问题”章节排查
烧录成功但不能启动确认已松开启动选择按键;核对固件与芯片、板级、Flash 类型及容量是否匹配,并保存完整串口日志
串口没有输出检查 Debug 接口、串口板 USB 连接、实际 COM 号和串口参数,确认主板已上电且串口接线正确;本文配套串口板无需另装驱动
串口显示乱码核对 115200 / 8 / 1 / 无校验 / 无流控,并检查接口和电平是否匹配
能进入系统,但摄像头没有图像本文仅完成系统启动验证,需继续核对传感器型号、连接和 SDK 传感器配置

如果仍无法解决,请向技术支持提供:板卡型号及版本、Flash 类型与容量、SDK 版本、Ubuntu/Windows/Python 版本、完整编译或串口日志,以及 USB Cloner 配置和报错截图。