Skip to content

Latest commit

 

History

History
52 lines (41 loc) · 2.56 KB

File metadata and controls

52 lines (41 loc) · 2.56 KB

STM32F407 + FreeRTOS 真机验证记录

验证环境

  • MCU:STM32F407ZGT6,Cortex-M4F,DWTv1。
  • RTOS:FreeRTOS Kernel V11.3.0,GCC ARM_CM4F 端口。
  • 模块版本:CMSIS Runtime Watchpoint 0.3.0(M3)。
  • 串口:USART1,PA9/PA10,115200 8N1。
  • 运行方式:停止调试服务器、断开 halting debug 后重新上电。
  • 验证范围:授权读、非法读、授权写、非法写,上半段/下半段栈以及事件丢失计数。

验证固件 HEX 的 SHA-256:

310fbedbc9372db70f44c3f2715e89d25accbab4dc78c44e181c9d7aba7671a6

真机原始日志

以下内容为实板串口输出,地址对应本次验证 ELF:

CMSIS Runtime Watchpoint - STM32F407 FreeRTOS M3 validation
FreeRTOS=V11.3.0 DHCSR=0x01010000
worker=ready task_stack=PSP debugmon_stack=MSP claimed_mask=0x0000000D
[ALLOW] READ address=0x20000038 stacked_pc=0x0800018E lr=0x080005C3 pc_kind=exception-return
[ALERT] unauthorized READ address=0x20000038 stacked_pc=0x080005A8 lr=0x080005C9 pc_kind=exception-return
[ALLOW] WRITE address=0x20000038 stacked_pc=0x08000196 lr=0x080005D7 pc_kind=exception-return
[ALERT] unauthorized WRITE address=0x20000038 stacked_pc=0x08000596 lr=0x080005DB pc_kind=exception-return
RESULT: PASS M3 FreeRTOS events=4 allowed=2 unauthorized=2 dropped=0
HEARTBEAT M3 FreeRTOS PASS count=0 worker_wakeups=4
HEARTBEAT M3 FreeRTOS PASS count=1 worker_wakeups=4
HEARTBEAT M3 FreeRTOS PASS count=2 worker_wakeups=4
HEARTBEAT M3 FreeRTOS PASS count=3 worker_wakeups=4
HEARTBEAT M3 FreeRTOS PASS count=4 worker_wakeups=4
HEARTBEAT M3 FreeRTOS PASS count=5 worker_wakeups=4

结果解释

  • DHCSR=0x01010000C_DEBUGEN 位为 0,说明固件处于脱离 halting debugger 的运行状态。
  • stimulus task 使用 PSP;DebugMonitor 异常处理使用 MSP;worker 下半段恢复到 task/PSP。
  • claimed_mask=0x0000000D 表示模块认领比较器 0、2、3,并保留已由外部占用的比较器 1。
  • 4 次访问产生 4 个事件:授权 READ/WRITE 各 1 次,未授权 READ/WRITE 各 1 次。
  • worker 被唤醒 4 次,事件队列 dropped=0,分类计数与刺激序列完全一致。
  • stacked_pc 是异常返回 PC,用于授权 section 分类,不宣称是精确访问指令地址。

结论与边界

该结果证明 M3 在 STM32F407 FreeRTOS 真机上完成了 DWT 匹配、DebugMonitor 上半段、 task notification 唤醒、worker 下半段和读写授权分类的完整闭环。它证明的是访问后的 审计和告警能力,不代表 MPU 式访问阻止,也不替代高频压力、低功耗和 DWTv2 真机测试。