快速开始
本文档介绍如何快速完成 WS63 系列开发板的工程创建、编译和烧录。
环境搭建请参考 环境搭建。
第一个程序:Hello World
本节将引导您从创建工程开始,完成编译、烧录,最终在串口输出 "hello world"。
1. 新建工程
-
打开 HiSpark Studio 插件,进入
欢迎使用页面,然后单击新建工程
-
在
新建工程窗口配置参数:
- 芯片:选择
WS63 - 开发板:选择芯片后会自动填充芯片的开发板名称
- 工程类型:选择
示例工程 - 工程名:自定义工程名称(如
HelloWorld) - 工程路径:选择工程存放目录
- 软件包:选择下载好的
WS63 SDK文件夹根目录(需要选择到src目录)
- 芯片:选择
-
点击
完成新建工程 - 如弹出
是否信任此文件夹中的文件的作者确认提示窗口,点击是,我信任此作者即可。
2. 编译工程
-
工程创建成功后,HiSpark Studio 会自动打开新创建的工程,再次点击HiSpark Studio图标,进入插件页面。

- 工程文件:包含
src目录下的所有文件,以及include目录下的头文件。 - 命令:包含编译、调试、烧录等操作按钮。
- 底部快捷按钮:与
命令面板中的按钮对应,方便快捷操作。
- 工程文件:包含
-
点击
命令面板中的系统配置按钮,弹出配置窗口,依次点击Application->Enable Sample->Enable the Sample of peripheral->Support hello world Sample->Save保存,保存成功后在配置窗口底部会提示`Configuration saved to ...`后关闭即可。
-
点击左侧
命令面板的编译按钮,进行编译,也可以使用重编译先清理再编译,等待编译完成,终端窗口输出SUCCESS表示编译成功
3. 硬件连接
-
打开设备管理器,可以使用快捷键
Win + X,选择设备管理器
-
使用 Type-C USB 数据线连接开发板的 USB 端口和电脑的 USB 接口,确认开发板上电后电源指示灯亮起
-
查看当前设备管理器显示的新设备,通常为 CH340 或 CP2102 设备,如下图示的
COM4,是本文示例开发板的端口号,以实际显示的端口号为准。
4. 配置烧录
-
点击左侧
命令面板的工程配置按钮,在弹出的配置窗口中选择程序加载选项卡
-
配置烧录参数:
- 传输方式:选择
serial(串口烧录) - 烧写文件:默认即可(当前工程目录下的
output\ws63\fwpkg\ws63-liteos-app\ws63-liteos-app_all.fwpkg) - 端口选择:在设备管理器中查看 COM 口(通常为 CH340 或 CP2102 设备), 如
COM4 - 波特率:选择
115200
- 传输方式:选择
5. 开始烧录
-
点击左侧
命令面板的烧录按钮触发烧录,当控制台显示的内容出现类似Reset the device...的提示时,按下开发板上的RST复位按钮
提示:不同开发板的复位按钮位置不同,请参考 支持的开发板 中的硬件说明。
-
等待烧录完成,显示类似
All images burnt successfully内容时表示烧录成功
6. 验证结果
-
点击左侧
命令面板的命令行打开终端窗口,然后再选择监视器。
-
监视模式选择
serial,根据实际情况选择开发板的端口 (如COM4),设置波特率115200,点击开始监视按钮,串口将输出如下图示:
每秒输出一行 hello world,表示程序运行成功!
7. Sample 代码说明
本示例使用的源码位于 src/application/samples/peripheral/helloworld/helloworld.c,核心代码如下:
#define DEFAULT_TASK_STACK_SIZE 0x1000
#define DEFAULT_TASK_PRIORITY 26
#define DELAYS_MS 1000
static void *hw_task(const char *arg)
{
unused(arg);
osal_printk("start helloworld sample\r\n");
for(;;){
osal_printk("hello world\r\n");
osal_msleep(DELAYS_MS);
}
return NULL;
}
static void helloworld_entry(void)
{
osal_task *task_handle = NULL;
osal_kthread_lock();
task_handle = osal_kthread_create((osal_kthread_handler)hw_task, 0,
"HW_Task", DEFAULT_TASK_STACK_SIZE);
if (task_handle != NULL) {
osal_kthread_set_priority(task_handle, DEFAULT_TASK_PRIORITY);
}
osal_kthread_unlock();
}
/* Run the helloworld_entry. */
app_run(helloworld_entry);
代码解析:
| 函数/宏 | 说明 |
|---|---|
helloworld_entry |
程序入口,创建内核线程 |
osal_kthread_create |
创建内核线程,执行 hw_task |
hw_task |
任务主函数,循环打印 "hello world" |
osal_msleep(1000) |
每次打印后休眠 1000ms(1秒) |
app_run |
注册程序入口,系统启动时自动调用 |