diff --git a/AGENTS.md b/AGENTS.md
index ceff56e..49e1ada 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -31,7 +31,7 @@
mcm-ddc-04/
├── app/
│ ├── main.c # 入口:VTOR 重映射 → USART 初始化+banner → LED 初始化 → app_ble_init → 建队列/任务/CLI → vTaskStartScheduler
-│ ├── bsp_usart.c/.h # USART1 初始化(PB6/PB7,115200 8N1)+ fputc 重定向('\n' 前自动补 '\r')+ DMA TX(CH1,轮询完成)+ RXDNE 中断字节队列 + TX 互斥锁
+│ ├── bsp_usart.c/.h # USART1 初始化(PB6/PB7,1000000 8N1)+ fputc 重定向('\n' 前自动补 '\r')+ DMA TX(CH1,轮询完成)+ RXDNE 中断字节队列 + TX 互斥锁
│ ├── bsp_led.c/.h # LED1(PB0)/LED2(PA6) 初始化、on/off/toggle
│ ├── app_tasks.c/.h # 3 个 FreeRTOS 任务 + 日志队列(生产者-消费者模型)+ 主动打印开关(默认关)
│ ├── app_cli.c/.h # CLI UART 前端:CliTask 行接收/编辑/历史/Tab/Ctrl+Z,分行后交 cli_core 执行
@@ -77,7 +77,7 @@ SDK 源码(固件库、CMSIS、FreeRTOS V9.0.0、BLE 协议栈/profile/ns_libr
1. Keil 打开 `MDK-ARM/embeddedSrc.uvprojx`,F7 编译
2. NS-LINK 接 SWD(PA4/PA5),F8 下载——Boot 跳转不校验镜像 CRC 后,Keil 直接下载 APP 即可正常启动调试;工程调试配置挂了 `MDK-ARM/debug_app.ini`(强制 SP/PC 从 APP1 向量表取,跳过 Boot 旁路,可选)
3. 独立运行(脱调试器)需烧整片包:`tools\flash_package.bat tools\out\caiic_full.bin`(改代码后先 `make_package.bat` 重新出包)。**板子上烧过其他 0x01000000 起步的程序会覆盖 Boot/bootsetting,恢复靠重烧整片包**
-4. 串口助手接 PB6(TX)/PB7(RX),115200 8N1,复位后应看到启动 banner 与 `caiic->` CLI 提示符(输入 `help` 查看命令;LED 滚动日志默认关闭,用 `log on` 打开)
+4. 串口助手接 PB6(TX)/PB7(RX),**1000000** 8N1(1Mbps,APB2=64MHz 分频 4.0 零误差),复位后应看到启动 banner 与 `caiic->` CLI 提示符(输入 `help` 查看命令;LED 滚动日志默认关闭,用 `log on` 打开)
5. BLE:手机 nRF Connect 应能搜到并连接 `CAIIC-MCM`,可见自定义服务(写特征 + notify 特征)
## 硬件引脚约束(重要)
diff --git a/mcm-ddc-04/MDK-ARM/Listings/embeddedSrc.map b/mcm-ddc-04/MDK-ARM/Listings/embeddedSrc.map
index a1bfc0b..034d294 100644
--- a/mcm-ddc-04/MDK-ARM/Listings/embeddedSrc.map
+++ b/mcm-ddc-04/MDK-ARM/Listings/embeddedSrc.map
@@ -3581,7 +3581,7 @@ Image Symbol Table
bsp_led_off 0x0100b6a1 Thumb Code 16 bsp_led.o(i.bsp_led_off)
bsp_led_on 0x0100b6b1 Thumb Code 16 bsp_led.o(i.bsp_led_on)
bsp_led_toggle 0x0100b6c1 Thumb Code 16 bsp_led.o(i.bsp_led_toggle)
- bsp_usart_init 0x0100b6d1 Thumb Code 194 bsp_usart.o(i.bsp_usart_init)
+ bsp_usart_init 0x0100b6d1 Thumb Code 192 bsp_usart.o(i.bsp_usart_init)
bsp_usart_read_byte 0x0100b7ad Thumb Code 66 bsp_usart.o(i.bsp_usart_read_byte)
bsp_usart_rx_isr_handler 0x0100b7f5 Thumb Code 68 bsp_usart.o(i.bsp_usart_rx_isr_handler)
bsp_usart_tx_lock 0x0100b849 Thumb Code 30 bsp_usart.o(i.bsp_usart_tx_lock)
@@ -4371,7 +4371,7 @@ Image component sizes
380 110 16 5 0 3567 app_tasks.o
68 6 0 0 0 930 boot_crc32.o
168 16 0 0 0 2791 bsp_led.o
- 672 76 0 8 0 6942 bsp_usart.o
+ 672 78 0 8 0 6942 bsp_usart.o
1710 838 362 4 480 9901 cli_core.o
664 72 0 24 22528 6048 heap_4.o
204 8 0 0 0 31614 lib_att.o
@@ -4403,7 +4403,7 @@ Image component sizes
3408 442 0 60 240 30176 tasks.o
----------------------------------------------------------------------
- 33842 4408 6932 10596 33056 849057 Object Totals
+ 33842 4410 6932 10596 33056 849057 Object Totals
204 68 32 0 0 0 (incl. Generated)
48 0 2 338 1 0 (incl. Padding)
@@ -4467,9 +4467,9 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
- 38080 4580 6932 10600 33056 835853 Grand Totals
- 38080 4580 6932 1684 33056 835853 ELF Image Totals (compressed)
- 38080 4580 6932 1684 0 0 ROM Totals
+ 38080 4582 6932 10600 33056 835853 Grand Totals
+ 38080 4582 6932 1684 33056 835853 ELF Image Totals (compressed)
+ 38080 4582 6932 1684 0 0 ROM Totals
==============================================================================
diff --git a/mcm-ddc-04/MDK-ARM/Objects/app_ble.crf b/mcm-ddc-04/MDK-ARM/Objects/app_ble.crf
index 76b4bb7..795accd 100644
Binary files a/mcm-ddc-04/MDK-ARM/Objects/app_ble.crf and b/mcm-ddc-04/MDK-ARM/Objects/app_ble.crf differ
diff --git a/mcm-ddc-04/MDK-ARM/Objects/app_ble.o b/mcm-ddc-04/MDK-ARM/Objects/app_ble.o
index ce2c04d..b769c86 100644
Binary files a/mcm-ddc-04/MDK-ARM/Objects/app_ble.o and b/mcm-ddc-04/MDK-ARM/Objects/app_ble.o differ
diff --git a/mcm-ddc-04/MDK-ARM/Objects/app_cli.crf b/mcm-ddc-04/MDK-ARM/Objects/app_cli.crf
index 5c36abf..1d0fce8 100644
Binary files a/mcm-ddc-04/MDK-ARM/Objects/app_cli.crf and b/mcm-ddc-04/MDK-ARM/Objects/app_cli.crf differ
diff --git a/mcm-ddc-04/MDK-ARM/Objects/app_cli.o b/mcm-ddc-04/MDK-ARM/Objects/app_cli.o
index 4e59a71..11aad2a 100644
Binary files a/mcm-ddc-04/MDK-ARM/Objects/app_cli.o and b/mcm-ddc-04/MDK-ARM/Objects/app_cli.o differ
diff --git a/mcm-ddc-04/MDK-ARM/Objects/app_tasks.crf b/mcm-ddc-04/MDK-ARM/Objects/app_tasks.crf
index 8789c69..6724b28 100644
Binary files a/mcm-ddc-04/MDK-ARM/Objects/app_tasks.crf and b/mcm-ddc-04/MDK-ARM/Objects/app_tasks.crf differ
diff --git a/mcm-ddc-04/MDK-ARM/Objects/app_tasks.o b/mcm-ddc-04/MDK-ARM/Objects/app_tasks.o
index d443cfb..2484659 100644
Binary files a/mcm-ddc-04/MDK-ARM/Objects/app_tasks.o and b/mcm-ddc-04/MDK-ARM/Objects/app_tasks.o differ
diff --git a/mcm-ddc-04/MDK-ARM/Objects/bsp_usart.crf b/mcm-ddc-04/MDK-ARM/Objects/bsp_usart.crf
index e3b3486..c3d9e11 100644
Binary files a/mcm-ddc-04/MDK-ARM/Objects/bsp_usart.crf and b/mcm-ddc-04/MDK-ARM/Objects/bsp_usart.crf differ
diff --git a/mcm-ddc-04/MDK-ARM/Objects/bsp_usart.o b/mcm-ddc-04/MDK-ARM/Objects/bsp_usart.o
index 2d02d0e..cea844c 100644
Binary files a/mcm-ddc-04/MDK-ARM/Objects/bsp_usart.o and b/mcm-ddc-04/MDK-ARM/Objects/bsp_usart.o differ
diff --git a/mcm-ddc-04/MDK-ARM/Objects/cli_core.crf b/mcm-ddc-04/MDK-ARM/Objects/cli_core.crf
index e3a8cfe..fc512f5 100644
Binary files a/mcm-ddc-04/MDK-ARM/Objects/cli_core.crf and b/mcm-ddc-04/MDK-ARM/Objects/cli_core.crf differ
diff --git a/mcm-ddc-04/MDK-ARM/Objects/cli_core.o b/mcm-ddc-04/MDK-ARM/Objects/cli_core.o
index 6b4c1f9..158f84e 100644
Binary files a/mcm-ddc-04/MDK-ARM/Objects/cli_core.o and b/mcm-ddc-04/MDK-ARM/Objects/cli_core.o differ
diff --git a/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc.axf b/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc.axf
index 9c288aa..498e028 100644
Binary files a/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc.axf and b/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc.axf differ
diff --git a/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc.build_log.htm b/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc.build_log.htm
index cab10cf..cd0e1e3 100644
--- a/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc.build_log.htm
+++ b/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc.build_log.htm
@@ -27,8 +27,13 @@ Project File Date: 09/01/2026
Output:
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\Keil_v5\ARM\ARMCC\Bin'
Build target 'N32WB03X'
-compiling app_ota.c...
+compiling main.c...
compiling cli_core.c...
+compiling n32wb03x_it.c...
+compiling bsp_usart.c...
+compiling app_cli.c...
+compiling app_tasks.c...
+compiling app_ble.c...
linking...
Program Size: Code=38080 RO-data=6932 RW-data=10600 ZI-data=33056
FromELF: creating hex file...
diff --git a/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc.hex b/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc.hex
index 756a049..515b78e 100644
--- a/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc.hex
+++ b/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc.hex
@@ -878,17 +878,17 @@
:10B6C00070B504460D4629462046FDF7DBFE70BDE9
:10B6D00000B58BB001210820FEF71EF90121880377
:10B6E000FEF71AF905A8FDF7BBFE402005900220E1
-:10B6F000069004200A9005A92648FDF72DFE80201B
-:10B70000059004200A9005A92248FDF725FEE120B6
-:10B7100040020190002168460181418181810182BE
-:10B720000C21C18101A91C48FEF748FB01210846F4
-:10B73000FEF7E2F81948FDF71DFD0123174A1749E6
-:10B7400008390220FDF7A2FD012280211248FEF7F0
-:10B75000EDFA00220121402005F0D3F910490860DC
-:10B76000012005F0BFF90F49086001220E490A487F
-:10B77000FEF7A2FA1C2168460170032141700121E5
-:10B780008170FDF729FF01210348FEF7BFFA0BB0D6
-:10B7900000BD0000000C01400038014008000240DC
+:10B6F000069004200A9005A92548FDF72DFE80201C
+:10B70000059004200A9005A92148FDF725FE21484F
+:10B7100001900021684601814181818101820C21D3
+:10B72000C18101A91C48FEF749FB01210846FEF72B
+:10B73000E3F81A48FDF71EFD0123184A1749083996
+:10B740000220FDF7A3FD012280211348FEF7EEFA47
+:10B7500000220121402005F0D4F9114908600120A0
+:10B7600005F0C0F90F49086001220F490A48FEF7A9
+:10B77000A3FA1C21684601700321417001218170E8
+:10B78000FDF72AFF01210448FEF7C0FA0BB000BD07
+:10B79000000C014040420F00003801400800024008
:10B7A0002C290020302900202505000070B5054611
:10B7B0000C460F480068002800D170BD601C0028AE
:10B7C00001D1401E07E07D21C900614308467D216B
diff --git a/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc.htm b/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc.htm
index ec05610..471605e 100644
--- a/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc.htm
+++ b/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc.htm
@@ -3,7 +3,7 @@
Static Call Graph - [.\Objects\embeddedSrc.axf]
Static Call Graph for image .\Objects\embeddedSrc.axf
-
#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Wed Sep 02 08:07:08 2026
+
#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Wed Sep 02 08:52:56 2026
Maximum Stack Usage = 840 bytes + Unknown(Cycles, Untraceable Function Pointers)
Call chain for Maximum Stack Depth:
@@ -1428,7 +1428,7 @@ Global Symbols
>> LedTask
-bsp_usart_init (Thumb, 194 bytes, Stack size 48 bytes, bsp_usart.o(i.bsp_usart_init))
+
bsp_usart_init (Thumb, 192 bytes, Stack size 48 bytes, bsp_usart.o(i.bsp_usart_init))
[Stack]
- Max Depth = 184
- Call Chain = bsp_usart_init ⇒ xQueueCreateMutex ⇒ xQueueGenericCreate ⇒ prvInitialiseNewQueue ⇒ xQueueGenericReset ⇒ xTaskRemoveFromEventList
[Calls]- >> USART_Init
diff --git a/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc_N32WB03X.dep b/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc_N32WB03X.dep
index 87e129c..2f366e4 100644
--- a/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc_N32WB03X.dep
+++ b/mcm-ddc-04/MDK-ARM/Objects/embeddedSrc_N32WB03X.dep
@@ -1521,7 +1521,7 @@ I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Third_Party\FreeRTOS\Source
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x60DC5C76)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x60DC5C76)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x60DC5C77)
-I (..\app\bsp_usart.h)(0x6A96C2A9)
+I (..\app\bsp_usart.h)(0x6A977336)
F (..\app\ble\app_profile\app_cls.c)(0x6A96DD91)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\app -I ..\..\Boot\src -I ..\app\ble -I ..\app\ble\app_profile -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\CMSIS\core -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\CMSIS\device -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\n32wb03x_std_periph_driver\inc -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM0 -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Third_Party\FreeRTOS\Source\include -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_profile\rdts -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_profile\rdts\rdtss\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ahi\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\hl\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\hl\inc -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\hl\src\gap -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\hl\src\gatt -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\hl\src\l2c -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\ll\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\ll\src -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\ll\src\llc -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\ll\src\lld -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\ll\src\llm -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\em\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\hci\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\sch\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\aes\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\common\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\common\src -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\dbg\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\ecc_p256\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\h4tl\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\ke\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\rwip\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\rfinit\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\arch -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\stack_common -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\adv -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\timer -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\log -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\delay -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\sleep -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\sec -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\ble
-ID:\Keil_v5\Arm\Packs\Nationstech\N32WB03X_DFP\1.4.0\firmware\CMSIS\device
-ID:\Keil_v5\ARM\CMSIS\Include
-D__UVISION_VERSION="531" -DN32WB03x -DUSE_STDPERIPH_DRIVER -DN32WB03X -DUSE_STDPERIPH_DRIVER
-o .\objects\app_cls.o --omf_browse .\objects\app_cls.crf --depend .\objects\app_cls.d)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\rwip\api\rwip_config.h)(0x68CD0B3B)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\CMSIS\device\n32wb03x.h)(0x68CD0B30)
@@ -1773,14 +1773,14 @@ I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Third_Party\FreeRTOS\Source
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x60DC5C76)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x60DC5C76)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x60DC5C77)
-I (..\app\bsp_usart.h)(0x6A96C2A9)
+I (..\app\bsp_usart.h)(0x6A977336)
I (..\app\bsp_led.h)(0x6A96BAAF)
I (..\app\app_tasks.h)(0x6A96C2F1)
I (..\app\app_cli.h)(0x6A96C353)
I (..\app\ble\app_ble.h)(0x6A96E55A)
I (..\app\app_version.h)(0x6A96CB6E)
-F (..\app\bsp_usart.c)(0x6A96C2D9)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\app -I ..\..\Boot\src -I ..\app\ble -I ..\app\ble\app_profile -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\CMSIS\core -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\CMSIS\device -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\n32wb03x_std_periph_driver\inc -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM0 -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Third_Party\FreeRTOS\Source\include -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_profile\rdts -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_profile\rdts\rdtss\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ahi\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\hl\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\hl\inc -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\hl\src\gap -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\hl\src\gatt -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\hl\src\l2c -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\ll\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\ll\src -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\ll\src\llc -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\ll\src\lld -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\ll\src\llm -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\em\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\hci\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\sch\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\aes\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\common\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\common\src -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\dbg\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\ecc_p256\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\h4tl\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\ke\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\rwip\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\rfinit\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\arch -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\stack_common -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\adv -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\timer -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\log -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\delay -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\sleep -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\sec -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\ble
-ID:\Keil_v5\Arm\Packs\Nationstech\N32WB03X_DFP\1.4.0\firmware\CMSIS\device
-ID:\Keil_v5\ARM\CMSIS\Include
-D__UVISION_VERSION="531" -DN32WB03x -DUSE_STDPERIPH_DRIVER -DN32WB03X -DUSE_STDPERIPH_DRIVER
-o .\objects\bsp_usart.o --omf_browse .\objects\bsp_usart.crf --depend .\objects\bsp_usart.d)
-I (..\app\bsp_usart.h)(0x6A96C2A9)
+F (..\app\bsp_usart.c)(0x6A977348)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O0 --apcs=interwork --split_sections -I ..\app -I ..\..\Boot\src -I ..\app\ble -I ..\app\ble\app_profile -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\CMSIS\core -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\CMSIS\device -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\n32wb03x_std_periph_driver\inc -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Third_Party\FreeRTOS\Source\portable\RVDS\ARM_CM0 -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Third_Party\FreeRTOS\Source\include -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_profile\rdts -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_profile\rdts\rdtss\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ahi\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\hl\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\hl\inc -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\hl\src\gap -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\hl\src\gatt -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\hl\src\l2c -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\ll\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\ll\src -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\ll\src\llc -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\ll\src\lld -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\ble\ll\src\llm -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\em\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\hci\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\ip\sch\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\aes\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\common\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\common\src -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\dbg\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\ecc_p256\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\h4tl\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\ke\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\modules\rwip\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\rfinit\api -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\arch -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_ble_stack\stack_common -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\adv -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\timer -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\log -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\delay -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\sleep -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\sec -I ..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Nationstech\ble_library\ns_library\ble
-ID:\Keil_v5\Arm\Packs\Nationstech\N32WB03X_DFP\1.4.0\firmware\CMSIS\device
-ID:\Keil_v5\ARM\CMSIS\Include
-D__UVISION_VERSION="531" -DN32WB03x -DUSE_STDPERIPH_DRIVER -DN32WB03X -DUSE_STDPERIPH_DRIVER
-o .\objects\bsp_usart.o --omf_browse .\objects\bsp_usart.crf --depend .\objects\bsp_usart.d)
+I (..\app\bsp_usart.h)(0x6A977336)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\CMSIS\device\n32wb03x.h)(0x68CD0B30)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\CMSIS\core\core_cm0.h)(0x5FA56A96)
I (D:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5EC775FC)
@@ -1880,7 +1880,7 @@ I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\n32wb03x_std_periph_driver\inc
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\n32wb03x_std_periph_driver\inc\n32wb03x_keyscan.h)(0x68CD0B36)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\n32wb03x_std_periph_driver\inc\n32wb03x_qflash.h)(0x68CD0B36)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\n32wb03x_std_periph_driver\inc\misc.h)(0x68CD0B30)
-I (..\app\bsp_usart.h)(0x6A96C2A9)
+I (..\app\bsp_usart.h)(0x6A977336)
I (D:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5EC775FC)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h)(0x60DC5C77)
I (D:\Keil_v5\ARM\ARMCC\include\stddef.h)(0x5EC775FC)
@@ -1897,7 +1897,7 @@ F (..\app\app_cli.c)(0x6A96E473)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O0 --
I (..\app\app_cli.h)(0x6A96C353)
I (..\app\cli_core.h)(0x6A96E3D4)
I (D:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5EC775FC)
-I (..\app\bsp_usart.h)(0x6A96C2A9)
+I (..\app\bsp_usart.h)(0x6A977336)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\CMSIS\device\n32wb03x.h)(0x68CD0B30)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\CMSIS\core\core_cm0.h)(0x5FA56A96)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\CMSIS\core\core_cmInstr.h)(0x5FA56A96)
@@ -1940,7 +1940,7 @@ F (..\app\cli_core.c)(0x6A96E429)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O0 -
I (..\app\cli_core.h)(0x6A96E3D4)
I (D:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5EC775FC)
I (..\app\app_version.h)(0x6A96CB6E)
-I (..\app\bsp_usart.h)(0x6A96C2A9)
+I (..\app\bsp_usart.h)(0x6A977336)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\CMSIS\device\n32wb03x.h)(0x68CD0B30)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\CMSIS\core\core_cm0.h)(0x5FA56A96)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\CMSIS\core\core_cmInstr.h)(0x5FA56A96)
@@ -2057,4 +2057,4 @@ I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\n32wb03x_std_periph_driver\inc
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\n32wb03x_std_periph_driver\inc\n32wb03x_keyscan.h)(0x68CD0B36)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\n32wb03x_std_periph_driver\inc\n32wb03x_qflash.h)(0x68CD0B36)
I (..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\n32wb03x_std_periph_driver\inc\misc.h)(0x68CD0B30)
-I (..\app\bsp_usart.h)(0x6A96C2A9)
+I (..\app\bsp_usart.h)(0x6A977336)
diff --git a/mcm-ddc-04/MDK-ARM/Objects/main.crf b/mcm-ddc-04/MDK-ARM/Objects/main.crf
index 724338e..001593e 100644
Binary files a/mcm-ddc-04/MDK-ARM/Objects/main.crf and b/mcm-ddc-04/MDK-ARM/Objects/main.crf differ
diff --git a/mcm-ddc-04/MDK-ARM/Objects/main.o b/mcm-ddc-04/MDK-ARM/Objects/main.o
index ec6c345..e6b5582 100644
Binary files a/mcm-ddc-04/MDK-ARM/Objects/main.o and b/mcm-ddc-04/MDK-ARM/Objects/main.o differ
diff --git a/mcm-ddc-04/MDK-ARM/Objects/n32wb03x_it.crf b/mcm-ddc-04/MDK-ARM/Objects/n32wb03x_it.crf
index 8263159..e493ff8 100644
Binary files a/mcm-ddc-04/MDK-ARM/Objects/n32wb03x_it.crf and b/mcm-ddc-04/MDK-ARM/Objects/n32wb03x_it.crf differ
diff --git a/mcm-ddc-04/MDK-ARM/Objects/n32wb03x_it.o b/mcm-ddc-04/MDK-ARM/Objects/n32wb03x_it.o
index ccb7409..ec14aca 100644
Binary files a/mcm-ddc-04/MDK-ARM/Objects/n32wb03x_it.o and b/mcm-ddc-04/MDK-ARM/Objects/n32wb03x_it.o differ
diff --git a/mcm-ddc-04/MDK-ARM/bin/embeddedSrc.bin b/mcm-ddc-04/MDK-ARM/bin/embeddedSrc.bin
index f2be96a..69bbd3f 100644
Binary files a/mcm-ddc-04/MDK-ARM/bin/embeddedSrc.bin and b/mcm-ddc-04/MDK-ARM/bin/embeddedSrc.bin differ
diff --git a/mcm-ddc-04/MDK-ARM/build.log b/mcm-ddc-04/MDK-ARM/build.log
index 43c7661..c643c4b 100644
--- a/mcm-ddc-04/MDK-ARM/build.log
+++ b/mcm-ddc-04/MDK-ARM/build.log
@@ -1,7 +1,12 @@
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\Keil_v5\ARM\ARMCC\Bin'
Build target 'N32WB03X'
-compiling app_ota.c...
+compiling main.c...
compiling cli_core.c...
+compiling n32wb03x_it.c...
+compiling bsp_usart.c...
+compiling app_cli.c...
+compiling app_tasks.c...
+compiling app_ble.c...
linking...
Program Size: Code=38080 RO-data=6932 RW-data=10600 ZI-data=33056
FromELF: creating hex file...
diff --git a/mcm-ddc-04/app/bsp_usart.c b/mcm-ddc-04/app/bsp_usart.c
index 7cd2ebc..c63814d 100644
--- a/mcm-ddc-04/app/bsp_usart.c
+++ b/mcm-ddc-04/app/bsp_usart.c
@@ -17,7 +17,7 @@ static QueueHandle_t s_rxQueue = NULL;
static SemaphoreHandle_t s_txMutex = NULL;
/**
- * @brief Initialize USART1 (115200 8N1) on PB6(TX)/PB7(RX),
+ * @brief Initialize USART1 (1000000 8N1) on PB6(TX)/PB7(RX),
* DMA TX channel and the RX interrupt queue.
*/
void bsp_usart_init(void)
diff --git a/mcm-ddc-04/app/bsp_usart.h b/mcm-ddc-04/app/bsp_usart.h
index 5e5cfc6..d1bb687 100644
--- a/mcm-ddc-04/app/bsp_usart.h
+++ b/mcm-ddc-04/app/bsp_usart.h
@@ -1,7 +1,7 @@
/**
* @file bsp_usart.h
* @brief USART1 support: printf retarget (polling TX), DMA TX, RX interrupt queue.
- * TX=PB6, RX=PB7, 115200 8N1.
+ * TX=PB6, RX=PB7, 1000000 8N1 (APB2=64MHz, divider=4.0, 0% error).
*/
#ifndef __BSP_USART_H__
#define __BSP_USART_H__
@@ -20,7 +20,7 @@ extern "C" {
#define BSP_USART_RX_PIN GPIO_PIN_7
#define BSP_USART_TX_GPIO_AF GPIO_AF4_USART1
#define BSP_USART_RX_GPIO_AF GPIO_AF4_USART1
-#define BSP_USART_BAUDRATE 115200
+#define BSP_USART_BAUDRATE 1000000
/* USART1 TX DMA channel (remap required on this chip) */
#define BSP_USART_TX_DMA_CH DMA_CH1
diff --git a/mcm-ddc-04/docs/开发日志.md b/mcm-ddc-04/docs/开发日志.md
index 94d368c..63bf71e 100644
--- a/mcm-ddc-04/docs/开发日志.md
+++ b/mcm-ddc-04/docs/开发日志.md
@@ -456,3 +456,32 @@ ISR 内不得调用 FreeRTOS FromISR API(本工程 BLE 事件均在 BLE 任务
全空/乱码。这是"简单"换来的取舍。
- **在板子上烧过其他 0x01000000 起步的程序(SDK 例程 / mcm-ddc-ble)会覆盖 Boot 和
bootsetting**,恢复方法:`tools\flash_package.bat tools\out\caiic_full.bin` 重烧整片包。
+
+---
+
+日期:2026-09-02
+
+## 20. 串口波特率提升到 1Mbps
+
+### 20.1 可行性核实
+
+- USART1 挂 APB2=64MHz(`n32wb03x_usart.c` 中 USART1 取 Pclk2),波特率发生器为
+ 16 倍过采样 + 小数分频(同 STM32F1 算法)。
+- 1Mbps 分频值 = 64MHz / (16 × 1M) = **4.0,误差 0%**(2M/4M 同样零误差)。
+- 驱动断言上限 `IS_USART_BAUDRATE` = 4Mbps(`n32wb03x_usart.h`),1Mbps 远在范围内。
+
+### 20.2 改动
+
+- `bsp_usart.h`:`BSP_USART_BAUDRATE` 115200 → **1000000**,相关注释与 AGENTS.md 同步。
+- 构建 0E0W(`Code=38080 RO-data=6932 RW-data=10600 ZI-data=33056`)。
+- 注意:串口助手需切到 1000000;USB 转串口适配器需支持 1Mbps(CH340/CH343/FTDI 均可)。
+
+### 20.3 决策:RX 暂不切 DMA
+
+评估了 RX 由 RXDNE 逐字节中断改为 DMA 循环缓冲 + IDLE 中断的方案,结论**维持现状**:
+
+- CLI 是人工输入速度,1Mbps 下逐字节中断负载可忽略;RX DMA 的收益只在串口灌大数据
+ (有线烧录/批量注入)时才存在,属出现需求后再做。
+- DMA RX 引入循环缓冲管理、IDLE 中断、4 通道合一的 DMA IRQ 与 FromISR 优先级约束等
+ 新出错点;现 RXDNE 方案已上板验证。
+- 对 CLI 语义无影响(保持 `bsp_usart_read_byte()` 字节流接口即可),但无收益不改动。