Skip to content

本栏目讲什么

「系统控制」是 Ai-M6x(BL616/BL618)开发教程中的一个栏目,收录让芯片按你的意图运行、保存数据、排查问题这一类基础能力。它们不像点灯、串口那样点亮某个外设,而是控制芯片自身的行为:日志怎么打、数据怎么存、怎么休眠省电、怎么重启、崩溃了怎么定位。

每个功能都有独立页面,页面结构统一为:概念先知道 → 例程功能简介 → 操作步骤 → 代码执行流程 → API 介绍 → 完整代码 → FAQ。第一次接触建议先看本页总览,再按需进入对应页面。

功能一览

功能页面作用(一句话)对应 SDK 例程
blog 日志blog 日志把运行状态按致命/错误/警告/信息/调试/跟踪分级打印到串口,支持按标签过滤,是排查问题的基础工具examples/bflog/barebone_sync
Flash 操作Flash 操作对内部 Flash 数据区做擦除、写入、读取校验,用于存放掉电不丢的数据examples/peripherals/flash/flash_read_write
睡眠模式睡眠模式进入 PDS 深度睡眠,RTC 每 1 秒定时唤醒,是低功耗项目的核心手段examples/pmu/bl616/pds_rtc
软件定时器软件定时器用 FreeRTOS 软件定时器做“闹钟”,到期执行回调,不占用硬件定时器自编示例(基于 FreeRTOS xTimerCreate
软件重启软件重启程序主动调用复位 API 重启系统,用于配置生效、OTA 后重启等场景自编示例(基于 bl_sys_reset_system() 等)
掉电保存掉电保存用 EasyFlash 把键值对(Wi-Fi 账号、设备配置等)写进 Flash,掉电不丢、重启可读examples/easyflash
分区表分区表读取并打印 Flash 分区表,看清固件、PSM、OTA 等区域各占哪块地址examples/partition
日志断言日志断言用 DBG 宏打印变量/数组/hexdump,用断言检查“这里一定成立”,快速定位逻辑错误examples/log_dbg_assert
崩溃调试崩溃调试制造崩溃并把现场(coredump)存入 Flash,离线还原调用栈,定位崩溃位置examples/crash

怎么挑选

  • 想让程序“开口说话”:先看 blog 日志,日志分级与过滤是后续所有调试的基础。
  • 想省电:看 睡眠模式,PDS/HBN 和唤醒源是低功耗设计的关键。
  • 想保存配置或数据:优先 掉电保存(键值对最省事);需要自己管理 Flash 区域再配合 Flash 操作分区表
  • 想定时做某事:看 软件定时器
  • 程序异常、死机、复位:先用 日志断言 加断言定位逻辑错误;真崩溃了用 崩溃调试 分析 coredump;需要主动重启则用 软件重启

环境准备

所有页面共用同一套编译烧录流程,前提是先搭建好 SDK 开发环境:

编译统一使用 make CHIP=bl616 BOARD=bl616dk(Ai-M62 的 BL616 与 Ai-M61 的 BL618 同系列,统一 bl616),烧录用 make flash CHIP=bl616 COMX=/dev/ttyUSB0(Windows 用 COMx),串口波特率 2000000

遇到问题?

如有其他问题,请到统一的提问与讨论区:Ai-Thinker Discussions

Released under the MIT License. Build Time 2026-09-11 14:52:23