中断向量表偏移寄存器配置方式
对于「引导程序+应用程序」之类的方案,我们通常是在系统初始化函数(SystemInit())中配置中断向量表偏移寄存器来实现中断向量表的重定向。但是这种直接修改官方库的方式往往会给后期的版本管理带来诸多不便。基于此,本文给出一个替代方案,供诸位参考。
|
Reset_Handler PROC |
对于「引导程序+应用程序」之类的方案,我们通常是在系统初始化函数(SystemInit())中配置中断向量表偏移寄存器来实现中断向量表的重定向。但是这种直接修改官方库的方式往往会给后期的版本管理带来诸多不便。基于此,本文给出一个替代方案,供诸位参考。
#include "xxx32xxxx.h" |
Reset_Handler PROC |
| 对比条目 | HC32F460 | HC32F4A0 |
|---|---|---|
| 工作频率 | 200MHz | 240MHz |
| 内核架构 | Cortex-M4 + FPU + DSP + MPU | Cortex-M4 + FPU + DSP + MPU |
| 芯片封装 | ||
| ROM | 512KB | 256KB | 1024KB | 2048KB |
| RAM | 192KB | 516KB |
| PGA | ×1 | ×4 |
| CMP | ×3 | ×4 |
| ADC | ×2 | ×3 |
| DAC | ×2 | ×4 |
| TMR | Timer6 ×3 (16bit 高级 PWM Timer) Timer4 ×3 (16bit 电机 PWM Timer) TimerA ×6 (16bit 通用 PWM Timer) Timer0 ×2 (16bit 通用 ___ Timer) |
Timer6 ×8 (16bit 高级 PWM Timer) Timer4 ×3 (16bit 电机 PWM Timer) TimerA ×C (16bit 通用 PWM Timer) Timer2 ×4 (16bit 通用 ___ Timer) Timer0 ×2 (16bit 通用 ___ Timer) |
| RTC | ×1 | ×1 |
| WDT | WDT & SWDT | WDT & SWDT |
| URT | ×4 | ×10 |
| SPI | ×4 | ×6 |
| QSPI | ×1 | ×1 |
| I2C | ×3 | ×6 |
| I2S | ×4 | ×4 |
| CAN | ×1 | ×2 |
| USB | ×1 | ×1 |
| ETH | - | ×1 |
| SDIO | ×2 | ×2 |
flowchart TB
%%{init: { "flowchart": { "curve": "basis" } } }%%
A1(引导程序之流程)-->B1(......)-->C1(跳转至应用程序)
A2(应用程序之流程)-->B2(......)-->C2(跳转至引导程序)
flowchart LR
%%{init: { "flowchart": { "curve": "basis" } } }%%
full_update(全量差分包)
diff_update(增量差分包)
app(大程序)
iap(小程序)
dnload(数据暂存区)
backup(数据暂存区)
runapp(程序运行区)
decode(数据解码区)
full_update-->app
full_update-->iap
diff_update-->app
diff_update-->iap
app-->dnload
iap-->dnload
dnload--跳转至小程序-->backup
backup-.㈣<br>回滚旧程序.->runapp
backup--㈠<br>解码升级包-->decode
decode--㈢<br>写入新程序-->runapp
runapp--㈡<br>备份旧程序-->backup
flowchart LR
%%{init: { "flowchart": { "curve": "basis" } } }%%
A(先取下芯片)--->B(再烧录程序)--->C(后装回板卡)
flowchart LR
%%{init: { "flowchart": { "curve": "basis" } } }%%
A("在电路编程<br>(ICP)")--->B("在系统编程<br>(ISP)")--->C("在应用编程<br>(IAP)")
最近在使用电压比较器时发现硬件滤波电路会出现失效的情况,经分析是其采样频率过高所致。

参考手册中绘制的是理想条件下的波形,真实情况并非如此,INP 在逼近 INM 时会伴随着噪声/抖动。我们可以使用硬件滤波电路来消除这种抖动,图中绿色线段表示各采样点,其频率即为采样频率。
采样频率较低时,滤波电路可以正常工作,但是随着采样频率的升高,其可靠性反而会降低。