<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://docs.bouffalolab.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%E7%8E%8B%E6%89%AC%E6%90%8F</id>
	<title>Bouffalo Lab Docs - 用户贡献 [zh-cn]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.bouffalolab.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%E7%8E%8B%E6%89%AC%E6%90%8F"/>
	<link rel="alternate" type="text/html" href="https://docs.bouffalolab.com/index.php?title=%E7%89%B9%E6%AE%8A:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/%E7%8E%8B%E6%89%AC%E6%90%8F"/>
	<updated>2026-07-14T03:17:36Z</updated>
	<subtitle>用户贡献</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://docs.bouffalolab.com/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=311</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://docs.bouffalolab.com/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=311"/>
		<updated>2026-06-15T06:39:42Z</updated>

		<summary type="html">&lt;p&gt;王扬搏：​/* Getting Started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Getting Started =&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/bouffalolab/bouffalo_sdk 如何获取SDK]&lt;br /&gt;
* [[如何在Ubuntu上搭建编译环境]]&lt;br /&gt;
* [[如何在Windows上搭建编译环境]]&lt;br /&gt;
* [[如何获取开发板]]&lt;br /&gt;
* [[烧录固件到开发板]]&lt;br /&gt;
* [[DebuggingBouffaloLabChipsWithGDB|如何调试博流开发板]]&lt;br /&gt;
* [[DebugProcedure|提交BUG流程]]&lt;br /&gt;
&lt;br /&gt;
= Bouffalo SDK =&lt;br /&gt;
&#039;&#039;&#039;BouffaloSDK&#039;&#039;&#039; 是 Bouffalo Lab 提供的 IOT 和 MCU 软件开发包，支持博流智能所有系列芯片，也是 &#039;&#039;&#039;bl_mcu_sdk&#039;&#039;&#039; 和 &#039;&#039;&#039;bl_iot_sdk&#039;&#039;&#039; 的结合体。&lt;br /&gt;
&lt;br /&gt;
[[文件:BouffaloSDK.png|无框|600x600像素]]&lt;br /&gt;
&lt;br /&gt;
= Peripherals =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[I2S]]&lt;br /&gt;
*[[I2C]]&lt;br /&gt;
*[[CVBS]]&lt;br /&gt;
*[[Watchdog]]&lt;br /&gt;
*[[GSM/GPRS]]&lt;br /&gt;
*[[Codec]]&lt;br /&gt;
*[[PCIe]]&lt;br /&gt;
*[[GPIO]]&lt;br /&gt;
*[[eMMC]]&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[WiFi]]&lt;br /&gt;
*[[LED]]&lt;br /&gt;
*[[Serial port]]&lt;br /&gt;
*[[PWM]]&lt;br /&gt;
*[[SPI]]&lt;br /&gt;
*[[USB OTG]]&lt;br /&gt;
*[[LCD]]&lt;br /&gt;
*[[CPU]]&lt;br /&gt;
*[[Network]]&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Bluetooth]]&lt;br /&gt;
*[[HDMI]]&lt;br /&gt;
*[[Camera]]&lt;br /&gt;
*[[Memory]]&lt;br /&gt;
*[[RTC]]&lt;br /&gt;
*[[EEPROM]]&lt;br /&gt;
*[[MIPI-DSI]]&lt;br /&gt;
*[[NPU]]&lt;br /&gt;
*[[VPU]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Products =&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
* [[BL602]]&lt;br /&gt;
* [[BL702]]&lt;br /&gt;
* [[BL618]]&lt;br /&gt;
* [[BL606P]]&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
* [[BL702L]]&lt;br /&gt;
* [[BL616]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Develop Boards =&lt;br /&gt;
* BL602EVB&lt;br /&gt;
&lt;br /&gt;
= Application Notes =&lt;br /&gt;
* [[NetHub]]&lt;br /&gt;
* [[BL616低功耗开发手册]]&lt;br /&gt;
* [[USB Wi-Fi用户手册]]&lt;br /&gt;
&lt;br /&gt;
= Demos =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Demo:FreeRTOS]]&lt;br /&gt;
* [[Demo:wifi sta]]&lt;br /&gt;
* [[Demo:boot2_isp]]&lt;br /&gt;
* [[Demo:helloworld]]&lt;br /&gt;
* [[Demo:smartconfig ble]]&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Demo:DMA]]&lt;br /&gt;
* [[Demo:Btble]]&lt;br /&gt;
* [[Demo:coremark]]&lt;br /&gt;
* [[Demo:littlefs]]&lt;br /&gt;
* [[Demo:posix freertos]]&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Demo:Flash]]&lt;br /&gt;
* [[Demo:Basical case]]&lt;br /&gt;
* [[Demo:dsp]]&lt;br /&gt;
* [[Demo:cks]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Debug =&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot; |&lt;br /&gt;
*[[Debug:mm_track]]&lt;br /&gt;
* [[Debug:coredump]]&lt;br /&gt;
* [[Debug:backtrace]]&lt;br /&gt;
* [[Debug:OpenOCD]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>王扬搏</name></author>
	</entry>
	<entry>
		<id>https://docs.bouffalolab.com/index.php?title=DebugProcedure&amp;diff=310</id>
		<title>DebugProcedure</title>
		<link rel="alternate" type="text/html" href="https://docs.bouffalolab.com/index.php?title=DebugProcedure&amp;diff=310"/>
		<updated>2026-06-15T06:39:20Z</updated>

		<summary type="html">&lt;p&gt;王扬搏：​创建页面，内容为“在遇到异常现象时，可以依据此手册，提交必要信息给开发人员以便于开发人员快速了解BUG。  # 上电日志，包含coredump日志，如果怀疑当前状态异常但CPU没有异常可能通过mem_trace 0x0，手动触发一个异常。Debug:coredump # 内存泄漏问题，可以打开CONFIG_BACKTRACE=y，和CONFIG_MM_ENABLE_TRACKING=y，帮助开发人员发现哪里的内存没有释放。Debug:mm track”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;在遇到异常现象时，可以依据此手册，提交必要信息给开发人员以便于开发人员快速了解BUG。&lt;br /&gt;
&lt;br /&gt;
# 上电日志，包含coredump日志，如果怀疑当前状态异常但CPU没有异常可能通过mem_trace 0x0，手动触发一个异常。[[Debug:coredump]]&lt;br /&gt;
# 内存泄漏问题，可以打开CONFIG_BACKTRACE=y，和CONFIG_MM_ENABLE_TRACKING=y，帮助开发人员发现哪里的内存没有释放。[[Debug:mm track]]&lt;/div&gt;</summary>
		<author><name>王扬搏</name></author>
	</entry>
	<entry>
		<id>https://docs.bouffalolab.com/index.php?title=Debug:backtrace&amp;diff=309</id>
		<title>Debug:backtrace</title>
		<link rel="alternate" type="text/html" href="https://docs.bouffalolab.com/index.php?title=Debug:backtrace&amp;diff=309"/>
		<updated>2026-06-12T06:18:27Z</updated>

		<summary type="html">&lt;p&gt;王扬搏：​创建页面，内容为“1.backtrace功能支持命令行，默认打印当前任务的backtrace，也可以选择或打印全部。  DWARF CFI backtrace [task|all]  2.可以用addr2line命令，把backtrace转为可读形式。  riscv64-unknown-elf-addr2line -f -e your.elf 0xa006d234 0xa006c42e 0xa0060d82 0xa00108fc 0xa006d3de 0xa00049f8  void backtrace_now(void);  void backtrace_tasks_all(void);  3.支持如下API，用户可以在某些时机调用，方便debug，见backtrace.h  vo…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1.backtrace功能支持命令行，默认打印当前任务的backtrace，也可以选择或打印全部。&lt;br /&gt;
&lt;br /&gt;
DWARF CFI backtrace [task|all]&lt;br /&gt;
&lt;br /&gt;
2.可以用addr2line命令，把backtrace转为可读形式。&lt;br /&gt;
&lt;br /&gt;
riscv64-unknown-elf-addr2line -f -e your.elf 0xa006d234 0xa006c42e 0xa0060d82 0xa00108fc 0xa006d3de 0xa00049f8&lt;br /&gt;
&lt;br /&gt;
void backtrace_now(void);&lt;br /&gt;
&lt;br /&gt;
void backtrace_tasks_all(void);&lt;br /&gt;
&lt;br /&gt;
3.支持如下API，用户可以在某些时机调用，方便debug，见backtrace.h&lt;br /&gt;
&lt;br /&gt;
void backtrace_tasks_all_isr(void);&lt;br /&gt;
&lt;br /&gt;
4.backtrace功能是把DWARF信息加入到flash中实现，会占用大约2%额外flash空间。&lt;/div&gt;</summary>
		<author><name>王扬搏</name></author>
	</entry>
	<entry>
		<id>https://docs.bouffalolab.com/index.php?title=Debug:coredump&amp;diff=308</id>
		<title>Debug:coredump</title>
		<link rel="alternate" type="text/html" href="https://docs.bouffalolab.com/index.php?title=Debug:coredump&amp;diff=308"/>
		<updated>2026-06-12T06:10:15Z</updated>

		<summary type="html">&lt;p&gt;王扬搏：​创建页面，内容为“  1. 在CPU触发异常时，会把当前的内存中的数据dump到串口中，用户可以保存到日志为coredump.log，coredump格式如下。   -+-+-+- BFLB COREDUMP v0.0.1 +-+-+-+   &amp;lt;nowiki&amp;gt;------&amp;lt;/nowiki&amp;gt; DATA BEGIN 62xxxxxx@00000400@predefined ------  ...  ...  &amp;lt;nowiki&amp;gt;------&amp;lt;/nowiki&amp;gt; END R6yo3A== ------   2. 将这些数据导入到gdb server中，可以使用gdb来对这些数据进行解析，获得异常发生时的一些状态。比如哪个进…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
1. 在CPU触发异常时，会把当前的内存中的数据dump到串口中，用户可以保存到日志为coredump.log，coredump格式如下。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-+-+-+- BFLB COREDUMP v0.0.1 +-+-+-+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;------&amp;lt;/nowiki&amp;gt; DATA BEGIN 62xxxxxx@00000400@predefined ------&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;------&amp;lt;/nowiki&amp;gt; END R6yo3A== ------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. 将这些数据导入到gdb server中，可以使用gdb来对这些数据进行解析，获得异常发生时的一些状态。比如哪个进程发生了异常，别的进程的状态是什么样子的。&lt;br /&gt;
&lt;br /&gt;
./tools/byai/coredump.py命令会创建一个gdb server，创建虚拟的32bit内存空间，把elf文件与coredump文件加载到内存空间中，并自动打开gdb client连接。&lt;br /&gt;
&lt;br /&gt;
usage: coredump.py [-h] [-x GDB_INIT] log_file elf_file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. 如下的例子，可见coredump.py传入coredump.log与elf后，这可打印当前运行的任务，可以使用bouffalo_sdk.gdb内置的一些函数来对某个TCB进行backtrace。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;~/bouffalo_sdk$ ./tools/byai/coredump.py coredump_20260604b/coredump.log coredump_20260604b/image_transmission_bl616cl.elf&lt;br /&gt;
&lt;br /&gt;
Auto-selected free port: 50659&lt;br /&gt;
&lt;br /&gt;
Starting local GDB server on port 50659...&lt;br /&gt;
&lt;br /&gt;
GDB server ready. Connect from GDB using:&lt;br /&gt;
&lt;br /&gt;
  (gdb) file coredump_20260604b/image_transmission_bl616cl.elf&lt;br /&gt;
&lt;br /&gt;
  (gdb) target remote localhost:50659&lt;br /&gt;
&lt;br /&gt;
  (gdb) source /home/wyb/repo/new4/bouffalo_sdk/tools/bouffalo_sdk.gdb&lt;br /&gt;
&lt;br /&gt;
Auto-starting GDB client: riscv64-unknown-elf-gdb -ex file coredump_20260604b/image_transmission_bl616cl.elf -ex target remote localhost:50659 -x /home/wyb/repo/new4/bouffalo_sdk/tools/bouffalo_sdk.gdb&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Reading symbols from coredump_20260604b/image_transmission_bl616cl.elf...&lt;br /&gt;
&lt;br /&gt;
Remote debugging using localhost:50659&lt;br /&gt;
&lt;br /&gt;
Loading ELF PT_LOAD data from: coredump_20260604b/image_transmission_bl616cl.elf&lt;br /&gt;
&lt;br /&gt;
Loaded 6 ELF PT_LOAD segments, 623074 bytes at LMA&lt;br /&gt;
&lt;br /&gt;
Initialized 6 ELF PT_LOAD segments at LMA from coredump_20260604b/image_transmission_bl616cl.elf&lt;br /&gt;
&lt;br /&gt;
Parsing coredump from: coredump_20260604b/coredump.log&lt;br /&gt;
&lt;br /&gt;
Found 1 COREDUMP sections, processing the last one&lt;br /&gt;
&lt;br /&gt;
Parsed 4460 memory blocks&lt;br /&gt;
&lt;br /&gt;
Loaded 4460 coredump memory blocks at VMA from coredump_20260604b/ReceivedTofile-COM5-2026_6_4_11-43-48.log&lt;br /&gt;
&lt;br /&gt;
Target local: Client connected from 127.0.0.1:38348&lt;br /&gt;
&lt;br /&gt;
0x00000000 in ?? ()&lt;br /&gt;
&lt;br /&gt;
(gdb) p pxCurrentTCB&lt;br /&gt;
&lt;br /&gt;
$1 = (TCB_t * volatile) 0x880f49d4&lt;br /&gt;
&lt;br /&gt;
(gdb) task_dump 0x880f49d4&lt;br /&gt;
&lt;br /&gt;
$2 = {pxTopOfStack = 0x60fd83d4, xStateListItem = {xItemValue = 0, pxNext = 0x60fd0084 &amp;lt;pxReadyTasksLists+108&amp;gt;, pxPrevious = 0x60fd0084 &amp;lt;pxReadyTasksLists+108&amp;gt;, pvOwner = 0x880f49d4, pvContainer = 0x60fd007c &amp;lt;pxReadyTasksLists+100&amp;gt;}, xEventListItem = {xItemValue = 27, pxNext = 0x880f4974, pxPrevious = 0x880f4974, pvOwner = 0x880f49d4, pvContainer = 0x0}, uxPriority = 5, pxStack = 0x60fd7560, pcTaskName = &amp;quot;shell_task\000\000\000\000\000&amp;quot;, pxEndOfStack = 0x60fd8550, uxCriticalNesting = 0, uxTCBNumber = 4, uxTaskNumber = 0, uxBasePriority = 5, uxMutexesHeld = 0, pxTaskTag = 0x0, pvThreadLocalStoragePointers = {0x0}, pvThreadLocalStoragePointersDelCallback = {0x0}, ulRunTimeCounter = 65, ulNotifiedValue = {0, 0, 0, 0}, ucNotifyState = &amp;quot;\000\000\000&amp;quot;, ucStaticallyAllocated = 0 &#039;\000&#039;, ucDelayAborted = 0 &#039;\000&#039;, iTaskErrno = 0}&lt;br /&gt;
&lt;br /&gt;
FPU is CLEAN (FS=0x2) - using offset +31 words&lt;br /&gt;
&lt;br /&gt;
mstatus: 0x5880&lt;br /&gt;
&lt;br /&gt;
stack_top: 0x60fd83d4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;0  0x800729b6 in shell_memtrace (argc=&amp;lt;optimized out&amp;gt;, argv=&amp;lt;optimized out&amp;gt;) at ./components/shell/shell.c:93&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;1  0x80072f62 in shell_exec_cmd (retp=&amp;lt;optimized out&amp;gt;, length=&amp;lt;optimized out&amp;gt;, cmd=&amp;lt;optimized out&amp;gt;) at ./components/shell/shell.c:533&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;2  shell_exec (cmd=0x60fd3916 &amp;lt;_shell+606&amp;gt; &amp;quot;memtrace&amp;quot;, length=21) at ./components/shell/shell.c:601&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;3  0x80073136 in shell_handler (data=&amp;lt;optimized out&amp;gt;) at ./components/shell/shell.c:794&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;4  0x80073944 in shell_task (pvParameters=&amp;lt;optimized out&amp;gt;) at ./components/shell/shell_freertos.c:135&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt;5  0x00000000 in ?? ()&lt;br /&gt;
&lt;br /&gt;
Backtrace stopped: frame did not save the PC&lt;br /&gt;
&lt;br /&gt;
(gdb) task_list_wait&lt;br /&gt;
&lt;br /&gt;
tcb: 0x880f7298 mstatus: 0x5880 [FPU_CLEAN]     name: xxxx&lt;br /&gt;
&lt;br /&gt;
tcb: 0x880f4d20 mstatus: 0x5880 [FPU_CLEAN]     name: tcpip_thread&lt;br /&gt;
&lt;br /&gt;
tcb: 0x60fccc08 mstatus: 0x5880 [FPU_CLEAN]     name: display_thread&lt;br /&gt;
&lt;br /&gt;
tcb: 0x60fc8ae0 mstatus: 0x5880 [FPU_CLEAN]     name: MainTask&lt;br /&gt;
&lt;br /&gt;
tcb: 0x880f73c4 mstatus: 0x5880 [FPU_CLEAN]     name: xxxx&lt;br /&gt;
&lt;br /&gt;
tcb: 0x880f6850 mstatus: 0x5880 [FPU_CLEAN]     name: xxxx&lt;br /&gt;
&lt;br /&gt;
tcb: 0x880f6e28 mstatus: 0x80007880     [FPU_CLEAN]     name: xxxx&lt;br /&gt;
&lt;br /&gt;
tcb: 0x880f5124 mstatus: 0x80007880     [FPU_CLEAN]     name: xxxx&lt;br /&gt;
&lt;br /&gt;
tcb: 0x60fd18c8 mstatus: 0x5880 [FPU_CLEAN]     name: Tmr Svc&lt;br /&gt;
&lt;br /&gt;
tcb: 0x880f4aec mstatus: 0x5800 [FPU_CLEAN]     name: wifi fw&lt;br /&gt;
&lt;br /&gt;
(gdb) task_list_ready&lt;br /&gt;
&lt;br /&gt;
tcb: 0x60fd1840 mstatus: 0x5880 [FPU_CLEAN]     name: IDLE&lt;br /&gt;
&lt;br /&gt;
tcb: 0x880f49d4 mstatus: 0x5880 [FPU_CLEAN]     name: shell_task&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q：如何退出&lt;br /&gt;
&lt;br /&gt;
A：按CTRL+D或者CTRL+C可以退出coredump.py&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q：日志的格式，多个COREDUMP在同一个日志会怎么样&lt;br /&gt;
&lt;br /&gt;
A：日志支持UTF8，UTF32LE、BE，CRLF/LF，基本上默认的格式不需要转换都支持，当日志中有多个保存的coredump时，会自动选择最后一个。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q：有时候会有如下打印，是什么意思&lt;br /&gt;
&lt;br /&gt;
crc check addr: 88021400, length: 00000400, end_crc: eebd05e9, crc: 8981de62&lt;br /&gt;
&lt;br /&gt;
crc check addr: 8806e000, length: 00000400, end_crc: 2f25c5c9, crc: a9c6462e&lt;br /&gt;
&lt;br /&gt;
crc check addr: 880ac800, length: 00000400, end_crc: 28c04c90, crc: 79f28ecb&lt;br /&gt;
&lt;br /&gt;
crc check addr: 880c5400, length: 00000400, end_crc: 70dadb0a, crc: 8bcde759&lt;br /&gt;
&lt;br /&gt;
A：在通过串口把内存中的数据dump出来时，尤其是带有PSRAM的情况，大量的数据通过串口通信可能会出错，这些是发现某段的CRC校验出错，很多时候一小段出错并不影响DEBUG。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Q：如何简单判断ELF与COREDUMP的对应关系&lt;br /&gt;
&lt;br /&gt;
A：可以通过读取ELF文件与芯片上电时的时间来对比&lt;br /&gt;
&lt;br /&gt;
ELF文件中的Build时间：&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
riscv64-unknown-elf-objdump -s coredump_20260604b/image_transmission_bl616cl.elf |grep -A 3 Build&lt;br /&gt;
&lt;br /&gt;
80097030 0a000000 4275696c 643a3039 3a35383a  ....Build:09:58:&lt;br /&gt;
&lt;br /&gt;
80097040 35342c20 4a756e20 20342032 3032360d  54, Jun  4 2026.&lt;br /&gt;
&lt;br /&gt;
80097050 0a000000 436f7079 72696768 74202863  ....Copyright (c&lt;br /&gt;
&lt;br /&gt;
80097060 29203230 32322042 6f756666 616c6f6c  ) 2022 Bouffalol&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
启动日志中的Build时间：&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Build:09:58:54, Jun  4 2026&lt;br /&gt;
&lt;br /&gt;
```&lt;/div&gt;</summary>
		<author><name>王扬搏</name></author>
	</entry>
	<entry>
		<id>https://docs.bouffalolab.com/index.php?title=Debug:mm_track&amp;diff=307</id>
		<title>Debug:mm track</title>
		<link rel="alternate" type="text/html" href="https://docs.bouffalolab.com/index.php?title=Debug:mm_track&amp;diff=307"/>
		<updated>2026-06-12T03:39:49Z</updated>

		<summary type="html">&lt;p&gt;王扬搏：​创建页面，内容为“mm_track start [callsite_cap] [data_cap] [depth] [skip]  start命令会分配所需内存，第一次运行mm_track时，会默认以callsite_cap=1024，data_cap=4096，depth=5，skip=2来运行，其中callsite_cap代表可以存储的调用栈数量，data_cap代表可以存储的栈帧的数量（每个栈可能有多个栈帧），depth代表栈回溯时最大的回溯深度，skip代表栈回溯时跳过的栈帧（有可能前两级栈帧无意义）  mm_…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mm_track start [callsite_cap] [data_cap] [depth] [skip]&lt;br /&gt;
&lt;br /&gt;
start命令会分配所需内存，第一次运行mm_track时，会默认以callsite_cap=1024，data_cap=4096，depth=5，skip=2来运行，其中callsite_cap代表可以存储的调用栈数量，data_cap代表可以存储的栈帧的数量（每个栈可能有多个栈帧），depth代表栈回溯时最大的回溯深度，skip代表栈回溯时跳过的栈帧（有可能前两级栈帧无意义）&lt;br /&gt;
&lt;br /&gt;
mm_track dump&lt;br /&gt;
&lt;br /&gt;
dump命令会打印记录的malloc申请点，与申请数，释放数，使用数。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
e.g.&lt;br /&gt;
&lt;br /&gt;
第一次执行时会以默认参数执行mm_track start 1024 4096 5 ：&lt;br /&gt;
&lt;br /&gt;
    bouffalolab /&amp;gt;mm_track&lt;br /&gt;
&lt;br /&gt;
    mm leak trace started: callsite=1024 data=4096 depth=5 skip=2&lt;br /&gt;
&lt;br /&gt;
    mm leak trace alloc bytes:&lt;br /&gt;
&lt;br /&gt;
      ctx: req_bytes=40&lt;br /&gt;
&lt;br /&gt;
      entry: cap=1024 item_size=12 req_bytes=12288&lt;br /&gt;
&lt;br /&gt;
      bt_data: cap=4096 item_size=4 req_bytes=16384&lt;br /&gt;
&lt;br /&gt;
      untracked: cap=256 item_size=4 req_bytes=1024&lt;br /&gt;
&lt;br /&gt;
      total_req_bytes=29736&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
之后可以执行业务，以wifi_scan为例，多次执行：&lt;br /&gt;
&lt;br /&gt;
    bouffalolab /&amp;gt;wifi_scan&lt;br /&gt;
&lt;br /&gt;
bouffalolab /&amp;gt;wifi_scan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
第二次即以后会默认执行mm_track dump：&lt;br /&gt;
&lt;br /&gt;
    bouffalolab /&amp;gt;mm_track&lt;br /&gt;
&lt;br /&gt;
    MM Leak Trace Report&lt;br /&gt;
&lt;br /&gt;
    state=started callsite_cap=1024/1024 data_cap=4096/4096 depth=5 skip=2&lt;br /&gt;
&lt;br /&gt;
    hash         malloc    free    used&lt;br /&gt;
&lt;br /&gt;
    ....&lt;br /&gt;
&lt;br /&gt;
    0xa56f7f49        2        0       2&lt;br /&gt;
&lt;br /&gt;
    ....&lt;br /&gt;
&lt;br /&gt;
    callsites=25 bt_entries=25 data_used=123/4096 dropped=0&lt;br /&gt;
&lt;br /&gt;
    used blocks=3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
发现0xa56f7f49 callsite有两块内存是used，有可能漏露，打印完整backtrace：&lt;br /&gt;
&lt;br /&gt;
    bouffalolab /&amp;gt;mm_track bt 0xa56f7f49&lt;br /&gt;
&lt;br /&gt;
    0xa0057156 0xa0039fec 0xa0008cee 0xa000feee 0xa0012760&lt;br /&gt;
&lt;br /&gt;
    matched bt entries: 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
使用addr2line工具打印backtrace的函数名字：&lt;br /&gt;
&lt;br /&gt;
    :~/repo/new0/bouffalo_sdk$ riscv64-unknown-elf-addr2line -e examples/wifi/sta/wifi_tcp/build/build_out/wifi_tcp_bl616.elf -f 0xa0057156 0xa0039fec 0xa0008cee 0xa000feee 0xa0012760&lt;br /&gt;
&lt;br /&gt;
    platform_malloc&lt;br /&gt;
&lt;br /&gt;
    ./examples/wifi/sta/wifi_tcp/build/build_out/components/wireless/wifi6/macsw_os_adapter/./components/wireless/wifi6/macsw_os_adapter/src/platform_bouffalo_sdk.c:104&lt;br /&gt;
&lt;br /&gt;
    macrx_upload&lt;br /&gt;
&lt;br /&gt;
    /home/wyb/repo/new0/bouffalo_sdk/components/wireless/xxxx.c:145&lt;br /&gt;
&lt;br /&gt;
    dma_upload&lt;br /&gt;
&lt;br /&gt;
    /home/wyb/repo/new0/bouffalo_sdk/components/wireless/xxxx.c:972&lt;br /&gt;
&lt;br /&gt;
    event_schedule&lt;br /&gt;
&lt;br /&gt;
    /home/wyb/repo/new0/bouffalo_sdk/components/wireless/xxxx.c:170 (discriminator 5)&lt;br /&gt;
&lt;br /&gt;
    event_loop&lt;br /&gt;
&lt;br /&gt;
    /home/wyb/repo/new0/bouffalo_sdk/components/wireless/xxxx.c:72&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
打开代码，检查相应的malloc是否没有相应的free。&lt;/div&gt;</summary>
		<author><name>王扬搏</name></author>
	</entry>
	<entry>
		<id>https://docs.bouffalolab.com/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=306</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://docs.bouffalolab.com/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=306"/>
		<updated>2026-06-12T03:26:49Z</updated>

		<summary type="html">&lt;p&gt;王扬搏：​Add Debug section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Getting Started =&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/bouffalolab/bouffalo_sdk 如何获取SDK]&lt;br /&gt;
* [[如何在Ubuntu上搭建编译环境]]&lt;br /&gt;
* [[如何在Windows上搭建编译环境]]&lt;br /&gt;
* [[如何获取开发板]]&lt;br /&gt;
* [[烧录固件到开发板]]&lt;br /&gt;
* [[DebuggingBouffaloLabChipsWithGDB|如何调试博流开发板]]&lt;br /&gt;
&lt;br /&gt;
= Bouffalo SDK =&lt;br /&gt;
&#039;&#039;&#039;BouffaloSDK&#039;&#039;&#039; 是 Bouffalo Lab 提供的 IOT 和 MCU 软件开发包，支持博流智能所有系列芯片，也是 &#039;&#039;&#039;bl_mcu_sdk&#039;&#039;&#039; 和 &#039;&#039;&#039;bl_iot_sdk&#039;&#039;&#039; 的结合体。&lt;br /&gt;
&lt;br /&gt;
[[文件:BouffaloSDK.png|无框|600x600像素]]&lt;br /&gt;
&lt;br /&gt;
= Peripherals =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[I2S]]&lt;br /&gt;
*[[I2C]]&lt;br /&gt;
*[[CVBS]]&lt;br /&gt;
*[[Watchdog]]&lt;br /&gt;
*[[GSM/GPRS]]&lt;br /&gt;
*[[Codec]]&lt;br /&gt;
*[[PCIe]]&lt;br /&gt;
*[[GPIO]]&lt;br /&gt;
*[[eMMC]]&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[WiFi]]&lt;br /&gt;
*[[LED]]&lt;br /&gt;
*[[Serial port]]&lt;br /&gt;
*[[PWM]]&lt;br /&gt;
*[[SPI]]&lt;br /&gt;
*[[USB OTG]]&lt;br /&gt;
*[[LCD]]&lt;br /&gt;
*[[CPU]]&lt;br /&gt;
*[[Network]]&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Bluetooth]]&lt;br /&gt;
*[[HDMI]]&lt;br /&gt;
*[[Camera]]&lt;br /&gt;
*[[Memory]]&lt;br /&gt;
*[[RTC]]&lt;br /&gt;
*[[EEPROM]]&lt;br /&gt;
*[[MIPI-DSI]]&lt;br /&gt;
*[[NPU]]&lt;br /&gt;
*[[VPU]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Products =&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
* [[BL602]]&lt;br /&gt;
* [[BL702]]&lt;br /&gt;
* [[BL618]]&lt;br /&gt;
* [[BL606P]]&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
* [[BL702L]]&lt;br /&gt;
* [[BL616]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Develop Boards =&lt;br /&gt;
* BL602EVB&lt;br /&gt;
&lt;br /&gt;
= Application Notes =&lt;br /&gt;
* [[NetHub]]&lt;br /&gt;
* [[BL616低功耗开发手册]]&lt;br /&gt;
* [[USB Wi-Fi用户手册]]&lt;br /&gt;
&lt;br /&gt;
= Demos =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Demo:FreeRTOS]]&lt;br /&gt;
* [[Demo:wifi sta]]&lt;br /&gt;
* [[Demo:boot2_isp]]&lt;br /&gt;
* [[Demo:helloworld]]&lt;br /&gt;
* [[Demo:smartconfig ble]]&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Demo:DMA]]&lt;br /&gt;
* [[Demo:Btble]]&lt;br /&gt;
* [[Demo:coremark]]&lt;br /&gt;
* [[Demo:littlefs]]&lt;br /&gt;
* [[Demo:posix freertos]]&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Demo:Flash]]&lt;br /&gt;
* [[Demo:Basical case]]&lt;br /&gt;
* [[Demo:dsp]]&lt;br /&gt;
* [[Demo:cks]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Debug =&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot; |&lt;br /&gt;
*[[Debug:mm_track]]&lt;br /&gt;
* [[Debug:coredump]]&lt;br /&gt;
* [[Debug:backtrace]]&lt;br /&gt;
* [[Debug:OpenOCD]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>王扬搏</name></author>
	</entry>
	<entry>
		<id>https://docs.bouffalolab.com/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=37</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://docs.bouffalolab.com/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=37"/>
		<updated>2025-05-23T03:01:57Z</updated>

		<summary type="html">&lt;p&gt;王扬搏：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Getting Started =&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/bouffalolab/bouffalo_sdk 如何获取SDK]&lt;br /&gt;
* [[如何在Ubuntu上搭建编译环境]]&lt;br /&gt;
* [[如何在Windows上搭建编译环境]]&lt;br /&gt;
* [[如何获取开发板]]&lt;br /&gt;
&lt;br /&gt;
= Bouffalo SDK =&lt;br /&gt;
&#039;&#039;&#039;BouffaloSDK&#039;&#039;&#039; 是 Bouffalo Lab 提供的 IOT 和 MCU 软件开发包，支持博流智能所有系列芯片，也是 &#039;&#039;&#039;bl_mcu_sdk&#039;&#039;&#039; 和 &#039;&#039;&#039;bl_iot_sdk&#039;&#039;&#039; 的结合体。&lt;br /&gt;
&lt;br /&gt;
[[文件:BouffaloSDK.png|无框|600x600像素]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
test&lt;br /&gt;
&lt;br /&gt;
= Peripherals =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[I2S]]&lt;br /&gt;
*[[I2C]]&lt;br /&gt;
*[[CVBS]]&lt;br /&gt;
*[[Watchdog]]&lt;br /&gt;
*[[GSM/GPRS]]&lt;br /&gt;
*[[Codec]]&lt;br /&gt;
*[[PCIe]]&lt;br /&gt;
*[[GPIO]]&lt;br /&gt;
*[[eMMC]]&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[WiFi]]&lt;br /&gt;
*[[LED]]&lt;br /&gt;
*[[Serial port]]&lt;br /&gt;
*[[PWM]]&lt;br /&gt;
*[[SPI]]&lt;br /&gt;
*[[USB OTG]]&lt;br /&gt;
*[[LCD]]&lt;br /&gt;
*[[CPU]]&lt;br /&gt;
*[[Network]]&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Bluetooth]]&lt;br /&gt;
*[[HDMI]]&lt;br /&gt;
*[[Camera]]&lt;br /&gt;
*[[Memory]]&lt;br /&gt;
*[[RTC]]&lt;br /&gt;
*[[EEPROM]]&lt;br /&gt;
*[[MIPI-DSI]]&lt;br /&gt;
*[[NPU]]&lt;br /&gt;
*[[VPU]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Products =&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
* [[BL602]]&lt;br /&gt;
* [[BL702]]&lt;br /&gt;
* [[BL618]]&lt;br /&gt;
* [[BL606P]]&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
* [[BL702L]]&lt;br /&gt;
* [[BL616]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Develop Boards =&lt;br /&gt;
* BL602EVB&lt;br /&gt;
&lt;br /&gt;
= Application Notes =&lt;br /&gt;
* [[SDIOWIFI架构和开发手册]]&lt;br /&gt;
* [[BL616低功耗开发手册]]&lt;br /&gt;
= [[Demo Test]] =&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot; |&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>王扬搏</name></author>
	</entry>
	<entry>
		<id>https://docs.bouffalolab.com/index.php?title=Demo_Test&amp;diff=36</id>
		<title>Demo Test</title>
		<link rel="alternate" type="text/html" href="https://docs.bouffalolab.com/index.php?title=Demo_Test&amp;diff=36"/>
		<updated>2025-05-23T03:01:41Z</updated>

		<summary type="html">&lt;p&gt;王扬搏：​创建页面，内容为“应用级别的测试，内容有examples目录中包含的Demo以及Demo所依赖的物理环境。  Agent环境  Ubuntu 16.04，同时测试用例会尽量兼容新的Linux环境或GNU utils环境，方便开发人员与用户来验证。  Expect语言  通常大部分功能可以通过串口对设备发送命令，接收期望的输出来验证，大部分的测试用例由Expect语言来实现。  single BL616  大部分纯软件的功能都可以在这个…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;应用级别的测试，内容有examples目录中包含的Demo以及Demo所依赖的物理环境。&lt;br /&gt;
&lt;br /&gt;
Agent环境&lt;br /&gt;
&lt;br /&gt;
Ubuntu 16.04，同时测试用例会尽量兼容新的Linux环境或GNU utils环境，方便开发人员与用户来验证。&lt;br /&gt;
&lt;br /&gt;
Expect语言&lt;br /&gt;
&lt;br /&gt;
通常大部分功能可以通过串口对设备发送命令，接收期望的输出来验证，大部分的测试用例由Expect语言来实现。&lt;br /&gt;
&lt;br /&gt;
single BL616&lt;br /&gt;
&lt;br /&gt;
大部分纯软件的功能都可以在这个测试环境下运行&lt;br /&gt;
&lt;br /&gt;
single BL618&lt;br /&gt;
&lt;br /&gt;
一些需要更多RAM资源的功能在这个测试环境下运行&lt;br /&gt;
&lt;br /&gt;
double BL616&lt;br /&gt;
&lt;br /&gt;
当需要多机通信，如AP+STA，或者BT HOST+DEVICE&lt;br /&gt;
&lt;br /&gt;
treble BL616&lt;br /&gt;
&lt;br /&gt;
BT某个功能需要&lt;br /&gt;
&lt;br /&gt;
SPI_HOST + BL616 + power monitor + shield box&lt;br /&gt;
&lt;br /&gt;
BL616与SPI上位机通信，同时在屏蔽环境下测量电流值&lt;br /&gt;
&lt;br /&gt;
TWT等功能的电流值&lt;/div&gt;</summary>
		<author><name>王扬搏</name></author>
	</entry>
	<entry>
		<id>https://docs.bouffalolab.com/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=35</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://docs.bouffalolab.com/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=35"/>
		<updated>2025-05-23T03:01:13Z</updated>

		<summary type="html">&lt;p&gt;王扬搏：​/* Products */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Getting Started =&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/bouffalolab/bouffalo_sdk 如何获取SDK]&lt;br /&gt;
* [[如何在Ubuntu上搭建编译环境]]&lt;br /&gt;
* [[如何在Windows上搭建编译环境]]&lt;br /&gt;
* [[如何获取开发板]]&lt;br /&gt;
&lt;br /&gt;
= Bouffalo SDK =&lt;br /&gt;
&#039;&#039;&#039;BouffaloSDK&#039;&#039;&#039; 是 Bouffalo Lab 提供的 IOT 和 MCU 软件开发包，支持博流智能所有系列芯片，也是 &#039;&#039;&#039;bl_mcu_sdk&#039;&#039;&#039; 和 &#039;&#039;&#039;bl_iot_sdk&#039;&#039;&#039; 的结合体。&lt;br /&gt;
&lt;br /&gt;
[[文件:BouffaloSDK.png|无框|600x600像素]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
test&lt;br /&gt;
&lt;br /&gt;
= Peripherals =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[I2S]]&lt;br /&gt;
*[[I2C]]&lt;br /&gt;
*[[CVBS]]&lt;br /&gt;
*[[Watchdog]]&lt;br /&gt;
*[[GSM/GPRS]]&lt;br /&gt;
*[[Codec]]&lt;br /&gt;
*[[PCIe]]&lt;br /&gt;
*[[GPIO]]&lt;br /&gt;
*[[eMMC]]&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[WiFi]]&lt;br /&gt;
*[[LED]]&lt;br /&gt;
*[[Serial port]]&lt;br /&gt;
*[[PWM]]&lt;br /&gt;
*[[SPI]]&lt;br /&gt;
*[[USB OTG]]&lt;br /&gt;
*[[LCD]]&lt;br /&gt;
*[[CPU]]&lt;br /&gt;
*[[Network]]&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Bluetooth]]&lt;br /&gt;
*[[HDMI]]&lt;br /&gt;
*[[Camera]]&lt;br /&gt;
*[[Memory]]&lt;br /&gt;
*[[RTC]]&lt;br /&gt;
*[[EEPROM]]&lt;br /&gt;
*[[MIPI-DSI]]&lt;br /&gt;
*[[NPU]]&lt;br /&gt;
*[[VPU]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Products =&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
* [[BL602]]&lt;br /&gt;
* [[BL702]]&lt;br /&gt;
* [[BL618]]&lt;br /&gt;
* [[BL606P]]&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
* [[BL702L]]&lt;br /&gt;
* [[BL616]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Develop Boards =&lt;br /&gt;
* BL602EVB&lt;br /&gt;
&lt;br /&gt;
= Application Notes =&lt;br /&gt;
* [[SDIOWIFI架构和开发手册]]&lt;br /&gt;
* [[BL616低功耗开发手册]]&lt;br /&gt;
= [[Demo Test]] =&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot; |应用级别的测试，内容有examples目录中包含的Demo以及Demo所依赖的物理环境。&lt;br /&gt;
&lt;br /&gt;
=== Agent环境 ===&lt;br /&gt;
Ubuntu 16.04，同时测试用例会尽量兼容新的Linux环境或GNU utils环境，方便开发人员与用户来验证。&lt;br /&gt;
&lt;br /&gt;
=== Expect语言 ===&lt;br /&gt;
通常大部分功能可以通过串口对设备发送命令，接收期望的输出来验证，大部分的测试用例由Expect语言来实现。&lt;br /&gt;
&lt;br /&gt;
=== single BL616 ===&lt;br /&gt;
大部分纯软件的功能都可以在这个测试环境下运行&lt;br /&gt;
&lt;br /&gt;
=== single BL618 ===&lt;br /&gt;
一些需要更多RAM资源的功能在这个测试环境下运行&lt;br /&gt;
&lt;br /&gt;
=== double BL616 ===&lt;br /&gt;
当需要多机通信，如AP+STA，或者BT HOST+DEVICE&lt;br /&gt;
&lt;br /&gt;
=== treble BL616 ===&lt;br /&gt;
BT某个功能需要&lt;br /&gt;
&lt;br /&gt;
=== SPI_HOST + BL616 + power monitor + shield box ===&lt;br /&gt;
BL616与SPI上位机通信，同时在屏蔽环境下测量电流值&lt;br /&gt;
&lt;br /&gt;
TWT等功能的电流值&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>王扬搏</name></author>
	</entry>
	<entry>
		<id>https://docs.bouffalolab.com/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=34</id>
		<title>首页</title>
		<link rel="alternate" type="text/html" href="https://docs.bouffalolab.com/index.php?title=%E9%A6%96%E9%A1%B5&amp;diff=34"/>
		<updated>2025-05-21T06:58:37Z</updated>

		<summary type="html">&lt;p&gt;王扬搏：​first test contain&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Getting Started =&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/bouffalolab/bouffalo_sdk 如何获取SDK]&lt;br /&gt;
* [[如何在Ubuntu上搭建编译环境]]&lt;br /&gt;
* [[如何在Windows上搭建编译环境]]&lt;br /&gt;
* [[如何获取开发板]]&lt;br /&gt;
&lt;br /&gt;
= Bouffalo SDK =&lt;br /&gt;
&#039;&#039;&#039;BouffaloSDK&#039;&#039;&#039; 是 Bouffalo Lab 提供的 IOT 和 MCU 软件开发包，支持博流智能所有系列芯片，也是 &#039;&#039;&#039;bl_mcu_sdk&#039;&#039;&#039; 和 &#039;&#039;&#039;bl_iot_sdk&#039;&#039;&#039; 的结合体。&lt;br /&gt;
&lt;br /&gt;
[[文件:BouffaloSDK.png|无框|600x600像素]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
test&lt;br /&gt;
&lt;br /&gt;
= Peripherals =&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[I2S]]&lt;br /&gt;
*[[I2C]]&lt;br /&gt;
*[[CVBS]]&lt;br /&gt;
*[[Watchdog]]&lt;br /&gt;
*[[GSM/GPRS]]&lt;br /&gt;
*[[Codec]]&lt;br /&gt;
*[[PCIe]]&lt;br /&gt;
*[[GPIO]]&lt;br /&gt;
*[[eMMC]]&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[WiFi]]&lt;br /&gt;
*[[LED]]&lt;br /&gt;
*[[Serial port]]&lt;br /&gt;
*[[PWM]]&lt;br /&gt;
*[[SPI]]&lt;br /&gt;
*[[USB OTG]]&lt;br /&gt;
*[[LCD]]&lt;br /&gt;
*[[CPU]]&lt;br /&gt;
*[[Network]]&lt;br /&gt;
|width=&amp;quot;32%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[Bluetooth]]&lt;br /&gt;
*[[HDMI]]&lt;br /&gt;
*[[Camera]]&lt;br /&gt;
*[[Memory]]&lt;br /&gt;
*[[RTC]]&lt;br /&gt;
*[[EEPROM]]&lt;br /&gt;
*[[MIPI-DSI]]&lt;br /&gt;
*[[NPU]]&lt;br /&gt;
*[[VPU]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Products =&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
* [[BL602]]&lt;br /&gt;
* [[BL702]]&lt;br /&gt;
* [[BL618]]&lt;br /&gt;
* [[BL606P]]&lt;br /&gt;
|width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
* [[BL702L]]&lt;br /&gt;
* [[BL616]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Develop Boards =&lt;br /&gt;
* BL602EVB&lt;br /&gt;
&lt;br /&gt;
= Application Notes =&lt;br /&gt;
* [[SDIOWIFI架构和开发手册]]&lt;br /&gt;
* [[BL616低功耗开发手册]]&lt;br /&gt;
= Demo Test =&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;10&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; align=&amp;quot;left&amp;quot; |应用级别的测试，内容有examples目录中包含的Demo以及Demo所依赖的物理环境。&lt;br /&gt;
&lt;br /&gt;
=== Agent环境 ===&lt;br /&gt;
Ubuntu 16.04，同时测试用例会尽量兼容新的Linux环境或GNU utils环境，方便开发人员与用户来验证。&lt;br /&gt;
&lt;br /&gt;
=== Expect语言 ===&lt;br /&gt;
通常大部分功能可以通过串口对设备发送命令，接收期望的输出来验证，大部分的测试用例由Expect语言来实现。&lt;br /&gt;
&lt;br /&gt;
=== single BL616 ===&lt;br /&gt;
大部分纯软件的功能都可以在这个测试环境下运行&lt;br /&gt;
&lt;br /&gt;
=== single BL618 ===&lt;br /&gt;
一些需要更多RAM资源的功能在这个测试环境下运行&lt;br /&gt;
&lt;br /&gt;
=== double BL616 ===&lt;br /&gt;
当需要多机通信，如AP+STA，或者BT HOST+DEVICE&lt;br /&gt;
&lt;br /&gt;
=== treble BL616 ===&lt;br /&gt;
BT某个功能需要&lt;br /&gt;
&lt;br /&gt;
=== SPI_HOST + BL616 + power monitor + shield box ===&lt;br /&gt;
BL616与SPI上位机通信，同时在屏蔽环境下测量电流值&lt;br /&gt;
&lt;br /&gt;
TWT等功能的电流值&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>王扬搏</name></author>
	</entry>
</feed>