diff --git a/AGENTS.md b/AGENTS.md index c0569ac..ceff56e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -7,11 +7,13 @@ 当前活跃工程: - **`mcm-ddc-04/`** — 主工程(APP,链接在 APP1 bank `0x01008000`/224KB):UART(printf 重定向 + DMA 发送 + RX 中断)、CLI 命令框架(UART + BLE 双通道)、FreeRTOS 多任务、GPIO 点灯、BLE 协议栈(自定义 GATT 透传服务 CLS)、BLE OTA 双 bank 直写升级(见开发日志第 15/16 节、`docs/ble_protocol.md`)。 -- **`Boot/`** — 自写精简 bootloader(链接在 `0x01000000`/16KB):bootsetting 裁决 + 镜像 CRC32 校验 + VTOR 重映射跳转;首次无 bootsetting 时向量检查后直跳 APP1。 +- **`Boot/`** — 自写精简 bootloader(链接在 `0x01000000`/16KB):只做 bootsetting 裁决(magic + 自身 CRC32)选 bank + 向量表 sanity 检查后直跳;**镜像 CRC 在 OTA 升级过程中校验(app_ota.c OTA_END),Boot 跳转时不校验**(开发日志第 19 节)。 +- **`mcm-ddc-ble/`** — 独立 BLE 工程(基于 SDK rdtss 例程,链接在 `0x01000000`,无 bootloader/OTA):BLE↔USART1 透传 + FreeRTOS(BLE 调度任务 + LED1 点灯任务),睡眠已锁保 SWD。日志在 `mcm-ddc-ble/docs/开发日志.md`。 仓库顶层目录: - `mcm-ddc-04/` — 主工程(应用代码、MDK 工程文件、开发日志) +- `mcm-ddc-ble/` — 独立 BLE 工程(rdtss 蓝本 + FreeRTOS,0x01000000 直跑) - `Boot/` — bootloader 工程(`src/main.c`、`dfu_layout.h`、`boot_crc32.c`;后两个被 APP 工程以相对路径 `..\..\Boot\src` 共用) - `tools/` — 烧录包工具:`merge_image.py`(合并 boot+APP 为整片 hex/bin)、`make_package.bat`(一键构建+合并)、`flash_package.bat`(NSpyocd 整片烧录),产物在 `tools/out/` - `nations-tec/` — 厂商资源:SDK V2.0.0、DFP 器件包、STB 开发板资料、官方 PDF 文档。**这些内容为只读参考资料,不要修改。** @@ -73,11 +75,10 @@ SDK 源码(固件库、CMSIS、FreeRTOS V9.0.0、BLE 协议栈/profile/ns_libr 烧录与运行: 1. Keil 打开 `MDK-ARM/embeddedSrc.uvprojx`,F7 编译 -2. NS-LINK 接 SWD(PA4/PA5),F8 下载 -3. 串口助手接 PB6(TX)/PB7(RX),115200 8N1,复位后应看到启动 banner 与 `caiic->` CLI 提示符(输入 `help` 查看命令;LED 滚动日志默认关闭,用 `log on` 打开) -4. BLE:手机 nRF Connect 应能搜到并连接 `CAIIC-MCM`,可见自定义服务(写特征 + notify 特征) - -注意:本工程当前尚未在真实硬件上实测(见开发日志第 8、9、10、15 节)。 +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` 打开) +5. BLE:手机 nRF Connect 应能搜到并连接 `CAIIC-MCM`,可见自定义服务(写特征 + notify 特征) ## 硬件引脚约束(重要) diff --git a/Boot/MDK-ARM/Listings/caiic_boot.map b/Boot/MDK-ARM/Listings/caiic_boot.map index bc2cecf..f89562e 100644 --- a/Boot/MDK-ARM/Listings/caiic_boot.map +++ b/Boot/MDK-ARM/Listings/caiic_boot.map @@ -31,9 +31,7 @@ Section Cross References system_n32wb03x.o(i.read_flash_ID) refers to system_n32wb03x.o(i.__set_PRIMASK) for __set_PRIMASK system_n32wb03x.o(i.read_flash_ID) refers to system_n32wb03x.o(.constdata) for CMD_RDID system_n32wb03x.o(i.system_delay_n_10us) refers to system_n32wb03x.o(.emb_text) for system_delay_cycles - main.o(i.bank_crc_ok) refers to boot_crc32.o(i.caiic_crc32) for caiic_crc32 main.o(i.main) refers to boot_crc32.o(i.caiic_crc32) for caiic_crc32 - main.o(i.main) refers to main.o(i.bank_crc_ok) for bank_crc_ok main.o(i.main) refers to main.o(i.bank_vector_ok) for bank_vector_ok main.o(i.main) refers to main.o(i.jump_to_app) for jump_to_app entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry10a.o(.ARM.Collect$$$$0000000D) for __rt_final_cpp @@ -77,8 +75,9 @@ Image Symbol Table Symbol Name Value Ov Type Size Object(Section) ../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE @@ -88,10 +87,9 @@ Image Symbol Table ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE - ../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE ../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE + ../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE ../clib/microlib/string/memset.c 0x00000000 Number 0 memseta.o ABSOLUTE ..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\CMSIS\device\startup\startup_n32wb03x.s 0x00000000 Number 0 startup_n32wb03x.o ABSOLUTE ..\..\nations-tec\N32WB03x_SDK_V2.0.0\firmware\CMSIS\device\system_n32wb03x.c 0x00000000 Number 0 system_n32wb03x.o ABSOLUTE @@ -129,17 +127,15 @@ Image Symbol Table i.__scatterload_zeroinit 0x010004d4 Section 14 handlers.o(i.__scatterload_zeroinit) i.__set_PRIMASK 0x010004e2 Section 0 system_n32wb03x.o(i.__set_PRIMASK) __set_PRIMASK 0x010004e3 Thumb Code 6 system_n32wb03x.o(i.__set_PRIMASK) - i.bank_crc_ok 0x010004e8 Section 0 main.o(i.bank_crc_ok) - bank_crc_ok 0x010004e9 Thumb Code 48 main.o(i.bank_crc_ok) - i.bank_vector_ok 0x01000518 Section 0 main.o(i.bank_vector_ok) - bank_vector_ok 0x01000519 Thumb Code 46 main.o(i.bank_vector_ok) - i.caiic_crc32 0x01000548 Section 0 boot_crc32.o(i.caiic_crc32) - i.jump_to_app 0x0100058c Section 0 main.o(i.jump_to_app) - jump_to_app 0x0100058d Thumb Code 30 main.o(i.jump_to_app) - i.main 0x010005b0 Section 0 main.o(i.main) - i.read_flash_ID 0x01000660 Section 0 system_n32wb03x.o(i.read_flash_ID) - read_flash_ID 0x01000661 Thumb Code 62 system_n32wb03x.o(i.read_flash_ID) - .constdata 0x010006a4 Section 472 system_n32wb03x.o(.constdata) + i.bank_vector_ok 0x010004e8 Section 0 main.o(i.bank_vector_ok) + bank_vector_ok 0x010004e9 Thumb Code 46 main.o(i.bank_vector_ok) + i.caiic_crc32 0x01000518 Section 0 boot_crc32.o(i.caiic_crc32) + i.jump_to_app 0x0100055c Section 0 main.o(i.jump_to_app) + jump_to_app 0x0100055d Thumb Code 30 main.o(i.jump_to_app) + i.main 0x01000580 Section 0 main.o(i.main) + i.read_flash_ID 0x010005c4 Section 0 system_n32wb03x.o(i.read_flash_ID) + read_flash_ID 0x010005c5 Thumb Code 62 system_n32wb03x.o(i.read_flash_ID) + .constdata 0x01000608 Section 472 system_n32wb03x.o(.constdata) .bss 0x20000000 Section 52 system_n32wb03x.o(.bss) STACK 0x20000038 Section 2048 startup_n32wb03x.o(STACK) @@ -227,12 +223,12 @@ Image Symbol Table __scatterload_copy 0x010004c5 Thumb Code 14 handlers.o(i.__scatterload_copy) __scatterload_null 0x010004d3 Thumb Code 2 handlers.o(i.__scatterload_null) __scatterload_zeroinit 0x010004d5 Thumb Code 14 handlers.o(i.__scatterload_zeroinit) - caiic_crc32 0x01000549 Thumb Code 62 boot_crc32.o(i.caiic_crc32) - main 0x010005b1 Thumb Code 162 main.o(i.main) - TRIM_READ_CMD_CODE 0x010006a4 Data 320 system_n32wb03x.o(.constdata) - CMD_RDID 0x010007e4 Data 152 system_n32wb03x.o(.constdata) - Region$$Table$$Base 0x0100087c Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x0100088c Number 0 anon$$obj.o(Region$$Table) + caiic_crc32 0x01000519 Thumb Code 62 boot_crc32.o(i.caiic_crc32) + main 0x01000581 Thumb Code 56 main.o(i.main) + TRIM_READ_CMD_CODE 0x01000608 Data 320 system_n32wb03x.o(.constdata) + CMD_RDID 0x01000748 Data 152 system_n32wb03x.o(.constdata) + Region$$Table$$Base 0x010007e0 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x010007f0 Number 0 anon$$obj.o(Region$$Table) trim_stored 0x20000000 Data 52 system_n32wb03x.o(.bss) __initial_sp 0x20000838 Data 0 startup_n32wb03x.o(STACK) @@ -244,54 +240,53 @@ Memory Map of the image Image Entry point : 0x010000c1 - Load Region LR_IROM1 (Base: 0x01000000, Size: 0x0000088c, Max: 0x00004000, ABSOLUTE) + Load Region LR_IROM1 (Base: 0x01000000, Size: 0x000007f0, Max: 0x00004000, ABSOLUTE) - Execution Region ER_IROM1 (Exec base: 0x01000000, Load base: 0x01000000, Size: 0x0000088c, Max: 0x00004000, ABSOLUTE) + Execution Region ER_IROM1 (Exec base: 0x01000000, Load base: 0x01000000, Size: 0x000007f0, Max: 0x00004000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object 0x01000000 0x01000000 0x000000c0 Data RO 3 RESET startup_n32wb03x.o - 0x010000c0 0x010000c0 0x00000000 Code RO 232 * .ARM.Collect$$$$00000000 mc_p.l(entry.o) - 0x010000c0 0x010000c0 0x00000004 Code RO 243 .ARM.Collect$$$$00000001 mc_p.l(entry2.o) - 0x010000c4 0x010000c4 0x00000004 Code RO 246 .ARM.Collect$$$$00000004 mc_p.l(entry5.o) - 0x010000c8 0x010000c8 0x00000000 Code RO 248 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o) - 0x010000c8 0x010000c8 0x00000000 Code RO 250 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o) - 0x010000c8 0x010000c8 0x00000008 Code RO 251 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o) - 0x010000d0 0x010000d0 0x00000000 Code RO 253 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o) - 0x010000d0 0x010000d0 0x00000000 Code RO 255 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o) - 0x010000d0 0x010000d0 0x00000004 Code RO 244 .ARM.Collect$$$$00002712 mc_p.l(entry2.o) + 0x010000c0 0x010000c0 0x00000000 Code RO 227 * .ARM.Collect$$$$00000000 mc_p.l(entry.o) + 0x010000c0 0x010000c0 0x00000004 Code RO 238 .ARM.Collect$$$$00000001 mc_p.l(entry2.o) + 0x010000c4 0x010000c4 0x00000004 Code RO 241 .ARM.Collect$$$$00000004 mc_p.l(entry5.o) + 0x010000c8 0x010000c8 0x00000000 Code RO 243 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o) + 0x010000c8 0x010000c8 0x00000000 Code RO 245 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o) + 0x010000c8 0x010000c8 0x00000008 Code RO 246 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o) + 0x010000d0 0x010000d0 0x00000000 Code RO 248 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o) + 0x010000d0 0x010000d0 0x00000000 Code RO 250 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o) + 0x010000d0 0x010000d0 0x00000004 Code RO 239 .ARM.Collect$$$$00002712 mc_p.l(entry2.o) 0x010000d4 0x010000d4 0x0000000e Code RO 10 .emb_text system_n32wb03x.o 0x010000e2 0x010000e2 0x00000002 PAD 0x010000e4 0x010000e4 0x0000001c Code RO 4 .text startup_n32wb03x.o - 0x01000100 0x01000100 0x0000002c Code RO 235 .text mc_p.l(uidiv.o) - 0x0100012c 0x0100012c 0x00000024 Code RO 237 .text mc_p.l(memcpya.o) - 0x01000150 0x01000150 0x00000024 Code RO 239 .text mc_p.l(memseta.o) - 0x01000174 0x01000174 0x00000024 Code RO 257 .text mc_p.l(init.o) + 0x01000100 0x01000100 0x0000002c Code RO 230 .text mc_p.l(uidiv.o) + 0x0100012c 0x0100012c 0x00000024 Code RO 232 .text mc_p.l(memcpya.o) + 0x01000150 0x01000150 0x00000024 Code RO 234 .text mc_p.l(memseta.o) + 0x01000174 0x01000174 0x00000024 Code RO 252 .text mc_p.l(init.o) 0x01000198 0x01000198 0x000000cc Code RO 11 i.OTPTrim_Read system_n32wb03x.o 0x01000264 0x01000264 0x00000130 Code RO 12 i.RCC_HsiCalib system_n32wb03x.o 0x01000394 0x01000394 0x0000011c Code RO 16 i.SystemInit system_n32wb03x.o 0x010004b0 0x010004b0 0x00000014 Code RO 18 i.SystemTrimValueRead system_n32wb03x.o - 0x010004c4 0x010004c4 0x0000000e Code RO 261 i.__scatterload_copy mc_p.l(handlers.o) - 0x010004d2 0x010004d2 0x00000002 Code RO 262 i.__scatterload_null mc_p.l(handlers.o) - 0x010004d4 0x010004d4 0x0000000e Code RO 263 i.__scatterload_zeroinit mc_p.l(handlers.o) + 0x010004c4 0x010004c4 0x0000000e Code RO 256 i.__scatterload_copy mc_p.l(handlers.o) + 0x010004d2 0x010004d2 0x00000002 Code RO 257 i.__scatterload_null mc_p.l(handlers.o) + 0x010004d4 0x010004d4 0x0000000e Code RO 258 i.__scatterload_zeroinit mc_p.l(handlers.o) 0x010004e2 0x010004e2 0x00000006 Code RO 19 i.__set_PRIMASK system_n32wb03x.o - 0x010004e8 0x010004e8 0x00000030 Code RO 174 i.bank_crc_ok main.o - 0x01000518 0x01000518 0x0000002e Code RO 175 i.bank_vector_ok main.o - 0x01000546 0x01000546 0x00000002 PAD - 0x01000548 0x01000548 0x00000044 Code RO 220 i.caiic_crc32 boot_crc32.o - 0x0100058c 0x0100058c 0x00000024 Code RO 176 i.jump_to_app main.o - 0x010005b0 0x010005b0 0x000000b0 Code RO 177 i.main main.o - 0x01000660 0x01000660 0x00000044 Code RO 20 i.read_flash_ID system_n32wb03x.o - 0x010006a4 0x010006a4 0x000001d8 Data RO 23 .constdata system_n32wb03x.o - 0x0100087c 0x0100087c 0x00000010 Data RO 259 Region$$Table anon$$obj.o + 0x010004e8 0x010004e8 0x0000002e Code RO 174 i.bank_vector_ok main.o + 0x01000516 0x01000516 0x00000002 PAD + 0x01000518 0x01000518 0x00000044 Code RO 215 i.caiic_crc32 boot_crc32.o + 0x0100055c 0x0100055c 0x00000024 Code RO 175 i.jump_to_app main.o + 0x01000580 0x01000580 0x00000044 Code RO 176 i.main main.o + 0x010005c4 0x010005c4 0x00000044 Code RO 20 i.read_flash_ID system_n32wb03x.o + 0x01000608 0x01000608 0x000001d8 Data RO 23 .constdata system_n32wb03x.o + 0x010007e0 0x010007e0 0x00000010 Data RO 254 Region$$Table anon$$obj.o - Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0100088c, Size: 0x00000838, Max: 0x0000c000, ABSOLUTE) + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x010007f0, Size: 0x00000838, Max: 0x0000c000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object 0x20000000 - 0x00000034 Zero RW 22 .bss system_n32wb03x.o - 0x20000034 0x0100088c 0x00000004 PAD + 0x20000034 0x010007f0 0x00000004 PAD 0x20000038 - 0x00000800 Zero RW 1 STACK startup_n32wb03x.o @@ -303,12 +298,12 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug Object Name 68 6 0 0 0 874 boot_crc32.o - 306 20 0 0 0 4735 main.o + 150 18 0 0 0 4115 main.o 28 8 192 0 2048 744 startup_n32wb03x.o 900 60 472 0 52 95112 system_n32wb03x.o ---------------------------------------------------------------------- - 1306 94 680 0 2104 101465 Object Totals + 1150 92 680 0 2104 100845 Object Totals 0 0 16 0 0 0 (incl. Generated) 4 0 0 0 4 0 (incl. Padding) @@ -350,15 +345,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 1508 110 680 0 2104 101337 Grand Totals - 1508 110 680 0 2104 101337 ELF Image Totals - 1508 110 680 0 0 0 ROM Totals + 1352 108 680 0 2104 100761 Grand Totals + 1352 108 680 0 2104 100761 ELF Image Totals + 1352 108 680 0 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 2188 ( 2.14kB) + Total RO Size (Code + RO Data) 2032 ( 1.98kB) Total RW Size (RW Data + ZI Data) 2104 ( 2.05kB) - Total ROM Size (Code + RO Data + RW Data) 2188 ( 2.14kB) + Total ROM Size (Code + RO Data + RW Data) 2032 ( 1.98kB) ============================================================================== diff --git a/Boot/MDK-ARM/Objects/caiic_boot.axf b/Boot/MDK-ARM/Objects/caiic_boot.axf index fe6e020..cb63cde 100644 Binary files a/Boot/MDK-ARM/Objects/caiic_boot.axf and b/Boot/MDK-ARM/Objects/caiic_boot.axf differ diff --git a/Boot/MDK-ARM/Objects/caiic_boot.build_log.htm b/Boot/MDK-ARM/Objects/caiic_boot.build_log.htm index 2b4309d..0bc79f4 100644 --- a/Boot/MDK-ARM/Objects/caiic_boot.build_log.htm +++ b/Boot/MDK-ARM/Objects/caiic_boot.build_log.htm @@ -17,7 +17,7 @@ Library Manager: ArmAr.exe V5.06 update 6 (build 750) Hex Converter: FromElf.exe V5.06 update 6 (build 750) CPU DLL: SARMCM3.DLL V5.31.0.0 Dialog DLL: DARMCM1.DLL V1.19.3.0 -Target DLL: UL2CM3.DLL V1.163.4.0 +Target DLL: CMSIS_AGDI.dll V1.32.6.0 Dialog DLL: TARMCM1.DLL V1.14.2.0

Project:

@@ -27,6 +27,10 @@ Project File Date: 09/02/2026

Output:

*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\Keil_v5\ARM\ARMCC\Bin' Build target 'caiic_boot' +compiling main.c... +linking... +Program Size: Code=1352 RO-data=680 RW-data=0 ZI-data=2104 +FromELF: creating hex file... After Build - User command #1: fromelf --bin --output=.\bin\caiic_boot.bin .\Objects\caiic_boot.axf ".\Objects\caiic_boot.axf" - 0 Error(s), 0 Warning(s). @@ -41,7 +45,7 @@ Package Vendor: Nationstech D:\Keil_v5\Arm\Packs\Nationstech\N32WB03X_DFP\1.4.0\firmware\CMSIS\device

Collection of Component Files used:

-Build Time Elapsed: 00:00:01 +Build Time Elapsed: 00:00:00 diff --git a/Boot/MDK-ARM/Objects/caiic_boot.hex b/Boot/MDK-ARM/Objects/caiic_boot.hex index d55b749..a4bf890 100644 --- a/Boot/MDK-ARM/Objects/caiic_boot.hex +++ b/Boot/MDK-ARM/Objects/caiic_boot.hex @@ -11,7 +11,7 @@ :10009000F7000001F7000001F7000001F700000180 :1000A000F7000001F7000001F7000001F700000170 :1000B000F7000001F7000001F7000001F700000160 -:1000C0000348854600F056F800480047B105000196 +:1000C0000348854600F056F80048004781050001C6 :1000D0003808002040BA7047C0BA70470138FDD1D7 :1000E000704700000448804704480047FEE7FEE7E9 :1000F000FEE7FEE7FEE7FEE795030001C100000111 @@ -24,10 +24,10 @@ :10016000F6E710B513460A4604461946FFF7F0FFB6 :10017000204610BD064C0125064E05E0E36807CC7D :100180002B430C3C98471034B442F7D3FFF79CFF45 -:100190007C0800018C080001F7B5D4B004460E4677 +:10019000E0070001F0070001F7B5D4B004460E46B1 :1001A00000205390052052900025002700BFEFF358 :1001B00010800090FF21453101A8FFF7D0FF00F02B -:1001C0004FFA05462448854218D101200003844295 +:1001C00001FA05462448854218D1012000038442E3 :1001D00002D1002053902AE001204003844202D142 :1001E0004011539023E003200003844203D10120F7 :1001F000400253901BE0529857B0F0BD174885421B @@ -37,7 +37,7 @@ :100230000137FF2241320A4901A8FFF777FF012069 :1002400000F04FF93146569A5398B84752900098AB :1002500000F047F95298CFE7C440130085601300BF -:10026000A4060001F1B58AB0002009907D20C000ED +:1002600008060001F1B58AB0002009907D20C00089 :1002700008900125AD020027002007907F200690FE :1002800040240026002005900390200102900020C9 :1002900001903E490A98884206D83D4800686102AC @@ -77,64 +77,54 @@ :1004B00070B504460D462A46214601200003FFF789 :1004C0006BFE70BD02E008C8121F08C1002AFAD1F5 :1004D00070477047002001E001C1121F002AFBD1C4 -:1004E000704780F31088704770B504460D46206849 -:1004F000002804D00721C9032068884201D90020C0 -:1005000070BD2846216800F01FF86168884201D15B -:100510000120F5E70020F3E710B501460B684868B5 -:1005200042085200180C000401246407A04208D1BC -:100530008A4206D30720C0030818824201D2012054 -:1005400010BD0020FCE7000030B502460B4600213C -:10055000C94312E01078521C414000240BE04808C7 -:10056000CD07ED0F002D01D0074D00E000256840BC -:100570000146601CC4B2082CF1DB18465B1E002843 -:10058000E8D1C84330BD00002083B8ED044672B600 -:100590000120C007204305490863206880F30888CC -:1005A00000BF6068804700BFFEE7000000700040A9 -:1005B000284C002528492068884234D12021204633 -:1005C000FFF7C2FF216A88422DD16068012808D157 -:1005D000224920460830FFF787FF002801D01F4D31 -:1005E00030E0606802280AD1412189042046143095 -:1005F000FFF77AFF002802D04125AD0422E0174919 -:1006000020460830FFF770FF002801D0134D19E095 -:100610004121890420461430FFF766FF002811D0DD -:100620004125AD040EE00D48FFF776FF002801D00C -:100630000A4D07E041208004FFF76EFF002801D03B -:100640004125AD04002D02D02846FFF79FFF00BFD3 -:10065000FEE700000040000111C011CA0080000147 -:1006600070B5D2B00024002500BFEFF3108006461D -:10067000FF21453101A8FFF772FD01AC013498223A -:10068000074901A8FFF752FD0120FFF72AFFA04705 -:1006900005463046FFF725FF284652B070BD0000E2 -:1006A000E407000140BA7047C0BA70470138FDD175 -:1006B00070470000F7B50325AD06286A82B01646DC -:1006C0000C46400840002862286A0221084328623C -:1006D000286A8007FCD46620686001272F61A86A19 -:1006E000C005FCD5992068602F61A86AC005FCD5BB -:1006F000FF209130FFF7DAFFFF230133AB6268463A -:10070000EF60352169602F61A96AC905FCD5AB622C -:10071000A969EF60C9B205226A602F61AA6AD20591 -:10072000FCD5AB62AA690902D2B211430180C807A5 -:1007300002D0032005B0F0BDAB626869FF2108312B -:10074000884368616869C91E0843686102980002AD -:10075000483068600820A860EE602F61A86AC00574 -:10076000FCD5FF200130A8620023F61CB0080ED093 -:10077000B2081148006899006054060A09194E70C1 -:10078000060C000E8E705B1CC8709A42F1D8FF20D8 -:100790000130A8626869FF2108318843686168698F -:1007A00038436861286A800880002862286A3843D4 -:1007B0002862002005B0F0BD8000000C03208006F8 -:1007C0004169FF22083291434161426901210A4394 -:1007D0004261026A920892000262026A0A4302625D -:1007E00070470000002003218906096A4908490072 -:1007F0000322920611621146096A02221143032262 -:100800009206116200BF03218906096A0222114083 -:100810000229F8D0D1010322920691620321D1600E -:100820009F2151600121116100BF03218906896A5E -:10083000FF22013211409142F7D1032292069162C8 -:10084000114688694969FF220832914303229206C2 -:1008500051611146496901221143032292065161F7 -:100860001146096A8908890011621146096A012244 -:100870001143032292061162704700008C080001A8 -:0C0880000000002038080000D404000133 +:1004E000704780F31088704710B501460B68486864 +:1004F00042085200180C000401246407A04208D1ED +:100500008A4206D30720C0030818824201D2012084 +:1005100010BD0020FCE7000030B502460B4600216C +:10052000C94312E01078521C414000240BE04808F7 +:10053000CD07ED0F002D01D0074D00E000256840EC +:100540000146601CC4B2082CF1DB18465B1E002873 +:10055000E8D1C84330BD00002083B8ED044672B630 +:100560000120C007204305490863206880F30888FC +:1005700000BF6068804700BFFEE7000000700040D9 +:100580000D4C0E4D0E49206888420BD1202120468B +:10059000FFF7C2FF216A884204D16068022801D1B6 +:1005A0004125AD042846FFF79FFF002802D02846CA +:1005B000FFF7D4FF00BFFEE700400001008000010C +:1005C00011C011CA70B5D2B00024002500BFEFF3EE +:1005D00010800646FF21453101A8FFF7C0FD01ACA0 +:1005E00001349822074901A8FFF7A0FD0120FFF779 +:1005F00078FFA04705463046FFF773FF284652B004 +:1006000070BD00004807000140BA7047C0BA70478B +:100610000138FDD170470000F7B50325AD06286A03 +:1006200082B016460C46400840002862286A022123 +:1006300008432862286A8007FCD466206860012786 +:100640002F61A86AC005FCD5992068602F61A86A4F +:10065000C005FCD5FF209130FFF7DAFFFF230133FF +:10066000AB626846EF60352169602F61A96AC905F0 +:10067000FCD5AB62A969EF60C9B205226A602F613F +:10068000AA6AD205FCD5AB62AA690902D2B21143AB +:100690000180C80702D0032005B0F0BDAB626869D5 +:1006A000FF210831884368616869C91E0843686191 +:1006B00002980002483068600820A860EE602F6150 +:1006C000A86AC005FCD5FF200130A8620023F61CF3 +:1006D000B0080ED0B2081148006899006054060AAC +:1006E00009194E70060C000E8E705B1CC8709A4281 +:1006F000F1D8FF200130A8626869FF2108318843E2 +:100700006861686938436861286A800880002862E7 +:10071000286A38432862002005B0F0BD8000000C34 +:10072000032080064169FF220832914341614269FA +:1007300001210A434261026A920892000262026A3F +:100740000A43026270470000002003218906096AFB +:10075000490849000322920611621146096A0222E1 +:10076000114303229206116200BF03218906096A20 +:10077000022211400229F8D0D1010322920691628F +:100780000321D1609F2151600121116100BF03212C +:100790008906896AFF22013211409142F7D1032272 +:1007A00092069162114688694969FF220832914395 +:1007B0000322920651611146496901221143032225 +:1007C000920651611146096A890889001162114631 +:1007D000096A012211430322920611627047000048 +:1007E000F00700010000002038080000D4040001D8 :04000005010000C135 :00000001FF diff --git a/Boot/MDK-ARM/Objects/caiic_boot.htm b/Boot/MDK-ARM/Objects/caiic_boot.htm index 1261c0a..633a104 100644 --- a/Boot/MDK-ARM/Objects/caiic_boot.htm +++ b/Boot/MDK-ARM/Objects/caiic_boot.htm @@ -3,7 +3,7 @@ Static Call Graph - [.\Objects\caiic_boot.axf]

Static Call Graph for image .\Objects\caiic_boot.axf


-

#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Wed Sep 02 05:36:40 2026 +

#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Wed Sep 02 08:07:05 2026

Maximum Stack Usage = 736 bytes + Unknown(Cycles, Untraceable Function Pointers)

Call chain for Maximum Stack Depth:

@@ -72,7 +72,7 @@ Global Symbols

__main (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
[Address Reference Count : 1]

-

_main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001)) +

_main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))

_main_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))

[Calls]