1. 项目概述
作为一名长期从事嵌入式开发的工程师,最近在接触鸿蒙系统开发时发现,很多初学者在环境搭建阶段就会遇到各种"拦路虎"。今天我就以小熊派鸿蒙季开发板为例,带大家完整走一遍南向轻内核开发的环境搭建流程。这个开发板搭载了Hi3861芯片,是目前市面上性价比很高的鸿蒙开发硬件选择。
南向开发指的是面向硬件底层的开发工作,与面向应用层的北向开发相对应。轻内核(LiteOS)作为鸿蒙系统的核心组件,具有占用资源少、启动速度快、实时性强的特点,非常适合物联网设备使用。通过这次环境搭建,我们不仅能熟悉鸿蒙开发的基本流程,更能理解轻内核在资源受限设备上的优势。
注意:本文基于OpenHarmony 3.0 LTS版本,使用Windows 10系统作为开发主机。不同版本或系统可能会有细微差异。
2. 开发环境准备
2.1 硬件设备清单
在开始之前,我们需要准备以下硬件:
- 小熊派BearPi-HM Nano开发板(基于Hi3861芯片)
- Type-C数据线(用于供电和烧录)
- 路由器(开发板需要通过WiFi连接网络)
- Windows PC(建议配置8GB以上内存)
这块开发板最大的特点是集成了WiFi功能,方便我们后续进行网络相关的开发调试。Hi3861芯片采用32位RISC-V架构,主频160MHz,内置352KB SRAM和2MB Flash,完全满足轻量级物联网设备的需求。
2.2 软件工具安装
首先需要安装以下必要软件:
- DevEco Device Tool:鸿蒙官方提供的设备开发IDE
- Visual Studio Code:代码编辑器
- CH340驱动:开发板串口通信驱动
- HiBurn工具:固件烧录工具
安装DevEco Device Tool时有个小技巧:建议选择自定义安装路径,避免中文目录。安装完成后需要配置Python环境,这里推荐使用3.8.x版本,太新的Python版本可能会有兼容性问题。
# 检查Python版本 python --version # 应该显示3.8.x3. 开发板连接与配置
3.1 硬件连接步骤
- 使用Type-C线连接开发板和电脑
- 拨动开发板上的电源开关到ON位置
- 检查设备管理器中的串口设备是否正常识别
如果看到"USB-SERIAL CH340"设备且没有黄色感叹号,说明驱动安装成功。如果未识别,需要手动安装CH340驱动。
3.2 网络配置要点
由于开发板需要通过WiFi连接,我们需要提前准备:
- 2.4GHz WiFi网络(不支持5GHz)
- 知道SSID和密码
- 确保网络没有MAC地址过滤
在后续的代码配置中,我们需要修改wifi_connect.c文件中的网络信息:
#define WIFI_DEVICE_CONNECT_AP_SSID "Your_SSID" #define WIFI_DEVICE_CONNECT_AP_PSK "Your_Password"4. 工程创建与编译
4.1 新建工程流程
在DevEco Device Tool中:
- 选择"New Project"
- 选择"BearPi-HM Nano"开发板
- 选择"LiteOS"内核
- 输入工程名称和存储路径
创建完成后,工程目录结构如下:
├── applications ├── build ├── kernel ├── out └── vendor4.2 编译配置技巧
编译前需要检查几个关键配置:
build.py脚本中的工具链路径config.json中的烧录参数- 确保Python环境变量已配置
使用以下命令开始编译:
python build.py BearPi-HM_Nano编译过程中常见的问题:
- 工具链路径错误:检查
build/lite/config/compiler/riscv32/下的配置 - Python包缺失:使用
pip install ohos-build安装依赖 - 内存不足:关闭其他占用内存大的程序
5. 固件烧录与调试
5.1 烧录步骤详解
- 按住开发板上的BOOT键
- 同时按下RST键复位
- 在HiBurn工具中选择生成的
Hi3861_boot_signed.bin和Hi3861_loader_signed.bin文件 - 设置烧录地址分别为0x0和0x8000
- 点击"Burn"开始烧录
重要提示:必须在开发板进入烧录模式后再操作HiBurn工具,否则会报错。
5.2 串口调试方法
烧录完成后,使用串口工具(如MobaXterm)连接开发板:
- 波特率:115200
- 数据位:8
- 停止位:1
- 无校验
成功连接后,复位开发板应该能看到类似以下输出:
[Init] Hello HarmonyOS! [WLAN] Connected to AP6. 常见问题排查
6.1 烧录失败处理
如果烧录失败,可以尝试:
- 检查USB线是否接触良好
- 重新安装CH340驱动
- 确保严格按照BOOT+RST的顺序操作
- 尝试更换USB端口(建议使用主板原生USB口)
6.2 WiFi连接问题
当WiFi连接失败时:
- 确认SSID和密码正确
- 检查路由器是否开启了MAC过滤
- 尝试修改代码中的重试次数和超时时间
- 查看串口日志中的具体错误信息
7. 进阶配置与优化
7.1 内核裁剪技巧
轻内核的一个主要优势是可裁剪性。在kernel/liteos_m/components目录下,可以通过修改config.mk文件来裁剪不需要的组件,例如:
LOSCFG_COMPONENTS_FS_VFS = n # 关闭虚拟文件系统 LOSCFG_COMPONENTS_NET_LWIP = y # 开启轻量级TCP/IP协议栈裁剪后可以显著减小固件体积,提升运行效率。
7.2 调试优化建议
- 使用
dprintf替代printf可以节省资源 - 合理配置任务堆栈大小避免内存浪费
- 启用看门狗防止程序跑飞
- 使用
LOS_TaskDelay代替忙等待
8. 开发心得与建议
在实际开发过程中,我发现几个特别有用的技巧:
- 保持串口日志的详细输出,这是排查问题的重要依据
- 定期备份工程,特别是在大的修改之前
- 使用Git进行版本控制,方便回退
- 善用鸿蒙官方文档和社区资源
对于初学者,建议从简单的GPIO控制开始,逐步过渡到更复杂的外设和网络功能。小熊派开发板提供了丰富的示例代码,这些都是很好的学习材料。