CW080 开发板快速上手:从 SDK 编译到系统启动
本文面向首次使用 CW080 开发板的用户,介绍如何准备编译环境、生成固件、通过 Windows USB 烧录工具写入固件,并通过串口确认系统启动。
本文所说的“点亮”,是指开发板成功启动 Linux 系统,并能通过串口执行命令,不包含摄像头出图、视频预览或显示屏显示。
适用范围:本文以
Tassadar-CW080-1.0.0-20260825SDK、图示 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 type | 2 | ISVP |
| Flash type | 1 | NOR |
| Linux version | 1 | Linux 4.4.94 |
| U-Boot version | 1 | U-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 容量、内核板级配置和传感器等。本文对应的关键配置为:
| 配置项 | 本文示例 |
|---|---|
project | PRJ010 |
chip_version | sn |
toolchain | gcc540 |
libc | uclibc |
uboot_version | 2013.07 |
kernel_config | PRJ010_pyxis_defconfig |
support_multicam | 1 |
flash_size | 16*1024*1024,即 16 MiB |
传感器配置也应与实际连接的模组一致;本文只验证系统启动,不将“进入命令行”等同于“摄像头已正常工作”。
3.3 执行编译
确认仍在 software/board 目录,并已完成上一节环境设置后,执行:
python3 build/isvp/Tassadar_image_package.py
此处使用 SDK 随包说明中的显式 Python 调用方式,避免依赖脚本可执行权限。首次编译还可能解压工具链等文件,请耐心等待。
编译成功的判断标准:
脚本正常结束,未报告构建失败。
终端出现整包
.img文件路径以及is ready!提示。对应输出目录中存在本次生成的
.img和同名.txt文件。
不要仅凭输出目录已经创建,或目录里存在旧固件,就判断本次编译成功。

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.jffs2 | system 分区的 JFFS2 文件系统镜像,本例不单独烧录 |
目录或中间文件会随 SDK 配置变化,以实际输出为准。示例中的 202610271606 是一次构建的时间戳,不是固定名称,请以本次编译日志中给出的输出路径为准。

将本次生成的 .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。


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

在主板断电状态下,将配套串口板连接到开发板 Debug 串口。
将串口板的 USB 端连接到 Windows 电脑;此时先不连接主板的 USB 烧录供电线。
在设备管理器的“端口(COM 和 LPT)”中查看串口号,例如
COM6。该号码仅为示例,以电脑实际显示为准。打开 Xshell 等串口终端,选择该 COM 口,并设置以下参数:
| 参数 | 设置值 |
|---|---|
| 波特率 | 115200 |
| 数据位 | 8 |
| 停止位 | 1 |
| 校验位 | 无(None) |
| 流控 | 无(None) |
串口连接用于查看日志和输入命令,主板的 USB 烧录连接用于写入固件,两者不要混淆。安装 USB 烧录驱动时,应选择进入烧录模式后出现的主板设备,不要选择串口 COM 设备。
4.3 首次安装 USB 烧录驱动
本节安装的是 USB Cloner 烧录驱动,不是串口驱动。按照《USBCloner烧录工具快速上手指南》第 2.1 节,需先让主板进入 USB 烧录模式,再通过 Windows 设备管理器手动安装。若当前电脑已安装该驱动,且主板进入烧录模式后能正常识别,可跳过重复安装。

第一步:让主板进入 USB 烧录模式。
保持主板断电,按住图中标出的 bootselo按键(原图标注为
bootselo,请按图定位,并以实物丝印为准)。保持按住按键,将主板 USB 烧录接口连接到 Windows 电脑,使主板上电。
待 Windows 检测到设备后松开按键,保持 USB 连接,安装过程中不要断电或拔线。

第二步:在设备管理器中安装烧录驱动。
右键点击 Windows 的“计算机”或“此电脑”,选择“管理”→“设备管理器”。找到主板进入 USB 烧录模式后新增的设备;未安装驱动时,该设备通常带有黄色叹号。指南中的设备名称仅为示例,以实际显示为准。
继续按照文档图示手动安装驱动;若已正确识别为烧录设备,则无需重复安装。
右键点击该未识别设备,选择“更新驱动软件”或“更新驱动程序”,再选择“浏览计算机以查找驱动程序软件”。
点击“浏览”,选择解压后的烧录工具根目录中的
cloner-win32-driver文件夹,点击“确定”;勾选 “包括子文件夹”,再点击“下一步”。等待驱动安装。如果弹出“Windows 安全”安装确认框,确认驱动来自配套工具包且发布者可信后,点击“安装”。指南示例还勾选了“始终信任……”;
出现驱动安装成功提示后,点击“关闭”,返回设备管理器检查结果。指南中的设备名称为
usb cloner device,设备不应再带有黄色叹号等驱动异常标记。确认安装成功后,断开主板的 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 烧录 |
其他参数先保持该板级配置的默认值。

5.2 设置整包固件烧录策略
切换到 POLICY 页面:
仅勾选
all一行,取消uboot、kernel、rootfs等其他行的勾选。确认
all一行的类型为“文件”,操作类型为SFC_NOR。确认
offset为0x0。点击该行右侧的
...按钮,选择刚才复制到 Windows 的本次完整.img固件。再次核对文件名、路径及版本。

.img已包含 U-Boot、内核和文件系统,本例从 Flash 起始地址整体写入,不需要再单独勾选各分区。截图中的旧文件路径和时间戳只用于展示界面,必须替换为你自己的本次固件路径。
5.3 设置擦除方式并保存
进入 SFC → “基本信息”,将“擦除”设置为 “全部擦除”,然后点击“保存”。

请再次确认:此操作会清除 Flash 中的原有数据。尚未完成备份时,不要继续。
5.4 开始烧录
确认主板当前断电,串口终端已打开。
在 USB Cloner 主界面点击“开始”,使工具进入等待烧录状态。
按住开发板的
bootselo按键。保持按住按键,将主板 USB 烧录接口连接到 Windows 电脑,使主板上电。
确认工具识别设备并出现
boot阶段进度后,松开按键。等待烧录结束,期间不要拔线、断电或关闭工具。

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

预期结果:工具完成 boot 和 all 阶段,显示成功结果且没有报错。boot 阶段出现进度不代表整包已烧录完成,不能此时断电。
六、启动系统并确认“点亮”成功
6.1 查看正常启动日志
图示板级配置启用了“强制重启”,烧录完成后可观察串口是否出现正常启动日志。
如果没有自动进入正常启动流程,请先确认烧录已成功结束,在工具中点击“停止”,确保启动选择按键已松开,再对主板断电重启。正常启动时不要按住 bootselo按键。
串口终端应能看到 U-Boot、Linux 内核和文件系统启动信息,随后进入登录或命令行界面。

若出现 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 配置和报错截图。