- 博客(8)
- 收藏
- 关注
原创 关于 MDK 仿真 Fault Reports
存储的是 "CPU 即将执行的下一条指令地址",因此压栈的 PC 值 = 中断打断时本该执行的下一条指令地址(中断处理完成后,恢复 PC 就能回到这个位置继续执行);总线错误分为精确的总线错误和不精确的总线错误两类。包括执行未定义的指令,非对齐操作,除零,非法指令(试图切换到ARM状态,执行协处理器指令),使用多重加载 / 存储指令时地址未对齐(仅在使能非对齐陷阱时触发)。例如,非特权的代码访问了只支持特权访问的存储器区域,向被MPU定义为只读的存储器位置进行写操作,试图从不可执行区域执行代码。
2026-03-04 17:07:53
432
原创 uCOS-II移植 PendSV_Handler替换原因
原因:uCOS-II中的任务切换是在OS_CPU_PendSVHandler 中实现的,所以在触发PendSV后,需要跳转到OS_CPU_PendSVHandler进行任务切换。因为:你用 C 函数做“跳转”时,编译器会生成入口/出口的保护现场(在 MSP 上再压栈),而 UCOS-II 的 OS_CPU_PendSVHandler 预期的是异常入口时硬件已经在 PSP 上压好的现场,不允许再动栈。有小机灵鬼肯定想说,直接在C代码中实现如下代码,进行一个跳转转发不就好了?
2026-01-06 15:14:04
320
原创 外部flash配置XIP功能
生成纯二进制 BIN 文件(去除头文件 / 调试信息),确保文件以 “栈顶地址(偏移 0)+ 复位向量地址(偏移 4)” 开头(符合 ARM Cortex-M 内核规范)。扇区擦除:发送 4KB 扇区擦除命令(0x20)+ 擦除地址(3 字节),轮询 BUSY 位(bit0)至 0(超时阈值:1s);写使能:发送写使能命令(0x06),轮询状态寄存器 WEL 位(bit1),确认置 1(超时阈值:100ms);下载完成后,全量回读 Flash 数据,与 C 数组校验(至少校验前 / 中 / 后三段数据)。
2025-12-17 11:25:59
608
原创 Openocd添加第三方支持
make install DESTDIR=/d/Desktop/git/openocd/build/openocd_install(安装到此指定路径)输入:./openocd.exe -f interface/cmsis-dap.cfg -c -f target/xxxx.cfg。pacman -S mingw-w64-x86_64-libusb-compat # 兼容性支持。pacman -S mingw-w64-x86_64-toolchain # 包含GCC编译器。
2025-09-26 15:55:27
1201
原创 解决win11安装net framework 3.5失败问题
2.双击打开(挂载),挂载成功后会多出来一个盘符。下载 Windows 11。1.下载IOS文件,3.使用管理员CMD。安装成功,弹出IOS。
2025-05-19 10:03:27
1554
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅