随笔分类 - 故障调试
摘要:1、抢占优先级 CH585含有两级抢占优先级,默认所有中断为高抢占优先级,可通过内核函数:PFIC_SetPriority 设置目标中断为低抢占优先级, 例如:程序中同时含有定时器中断,和GPIOA中断两个中断,在不设置抢占优先级时,如果定时器中断正在发生中(进定时器中断函数正在运行,还未结束前),
阅读全文
摘要:转载自:CH579/CH57x/CH573/CH571/CH582 串口收发,UART使用 - iot-fan - 博客园 波特率计算与误差(各主频下误差率高于2%的串口波特率杜绝使用)
阅读全文
摘要:在涉及大块的/高频次的数据传输时,需要考虑数组拷贝的时间开销。本文基于CH585,测试了部分场景下的memcpy时间开销。 如果选型用的是CH592等型号,不支持__wrap_memcpy,可以用该博客中的接口:https://www.cnblogs.com/gscw/p/18636006 注:①使
阅读全文
摘要:在 RISC-V 架构中,`WFE`(Wait For Event)和 `WFI`(Wait For Interrupt)是两种不同的低功耗休眠指令,主要用于暂停处理器执行以降低功耗,直到特定事件或中断触发唤醒。以下是它们的核心区别: 核心差异 标准化程度 WFI(Wait For Interrup
阅读全文
摘要:一、低精度监控 初始化调用: PowerMonitor(ENABLE,LPLevel_2V5);//设置低于2.5V触发中断 PFIC_EnableIRQ(WDOG_BAT_IRQn);//使能电压监控中断 中断服务函数: __INTERRUPT __HIGH_CODE void WDOG_BAT_
阅读全文
摘要:独立看门狗(IWDG)由专用的内部低速时钟(LSI)驱动,能够在低功耗模式下正常工作。 根据寄存器描述,IWDG最大时间可以是(0xFFF/(32K/512))=65.52s,单次计数周期为1/(32K/512)≈16ms, //看门狗初始化 void IWDG_Enable() { R32_IWD
阅读全文
摘要:简介: 单片机的 软中断(Software Interrupt)是一种由程序主动触发的特殊中断机制(通常通过特定指令或函数调用实现),其核心作用是能在受控环境下强制切换执行流程 ,实现系统级功能或调试支持。 作用: 主动触发中断流程 不同于硬件中断(由外部事件触发),软中断通过代码(如 SWI 指令
阅读全文
摘要:芯片在空片时,首次插入USB供电会直接在ISP工具中搜索到USB设备,可以进行首次烧录;原因是在0地址没有用户程序,所以会在停留在boot区域; 利用该特性,可以在固件中加入一些处理,比如USB OUT端点透传数据给芯片,解析成功后,使用FLASH_ROM_ERASE接口擦除0地址数据,此后给芯片完
阅读全文
摘要:一、读取Codeflash数据 芯片内部程序是有加密的,不支持外部工具直接读取,因此只能通过内部接口读取, 而ISP烧录器工具在烧录时,默认会擦除8k的数据,因此只能读到8k以后的codeflash部分: 方式:烧录一份不超过8k的程序,烧录器烧录时不能勾选清空codeflash,保留8k以后的原固
阅读全文
摘要:简介: 看门狗超时时长与单片机系统主频有关,且看门狗功能是一个8位的递增计数器,一次计数时钟周期为131072/Fsys,因此,例如:1、主频如果是32M,看门狗最大时间 (131072/32000000)×255=1.04448s2、主频如果是60M,看门狗最大时间 (131072/6000000
阅读全文
摘要:如果在程序运行时进hardfault想要打印出现问题前的错误信息,可按如下操作实现: 我们先找到系统启动文件中的HardFault_Handler汇编入口,将其整个替换为如下写法: HardFault_Handler\ PROC MOVS r0, #4 MOV r1, LR TST r0, r1 B
阅读全文

浙公网安备 33010602011771号