STSPIN32G4 STM32G431VBTx CAN FIFO发送数据帧随机变远程帧
STM32G473,PA3导致定时器定时误差过大
请问 使用MC SDK6.4版本,芯片选的时STM32G431CBUx系列,再配置电流采样时候,选择片内运放,外部增益网络,为啥会报错呀
串口DMA收发出现ORE错误
求simulink开发STM32的支持包离线版本
stm32 can偶现导致其他设备发送数据异常
STM32U5系列上电时序
MCSDK6.4开环能转,速度环一动不动
用mcsdk6.4工具使用ElectronicSpeedControl_ESC-G4生成的代码编译没错误但是开机就卡死怎么解决?
FDCAN复用在了BOOT0上了,会不会有影响
微信公众号
手机版
操作flash时如果打开有可能出现还没擦完然后就开始向里面写的问题
Q: 请教,上面那段话,在什么时候会发生这个情况呢?
Hi, 你好,想再请教一下,若是我的App一开始只规划在0x08000000~0x08003FFF的flash记忆体区块执行程序,若我去Erase 0x08004000~0x08007FFF的Page,这样我还需要Disable I-Cache和D-Cache吗?
Hi 您好,我想再请教一下,如果我的APP规划只在0x08000000~0x08003FFF的flash区块执行程序,而我去对0x08004000~0x08005FFF的page执行Erase,还需要关闭I-Cache和D-Cache吗?
cache本身是一段内存,随着芯片主频的提升,flash的速度要远慢于主频。聪明的工程师们就想到了预加载的方式来提高程序的运行速度,也就是cache,程序逻辑变成了先把预测到即将要使用的代码以及数据拷贝到cache中,然后运行的时候优先去cache中去找,如果没找到再去flash中找。也就是为啥跳转次数很多的代码的效率不如跳转次数少的代码的原因。既然有个预加载,就有可能出现数据被拷贝到cache中,但是实际flash的数据已经被修改了。这样就会产生不对应导致错误。因此在特定的代码运行时需要清空或者关闭cache。
你也不必太过纠结这个地方。即使在擦除操作时关会也无所谓,对你代码运行没啥影响,
一般来讲【除非双BANK],擦除时程序并不被执行。 如果说待擦除的地方跟当前代码运行
肯定扯不上任何关系,不关清也没关系。
您好,我就是刚好有Dual Bank的需求,才会关心这个问题。
我需要对固件实现在线更新,当前APP在BANK 1执行,要更新固件时,会去擦除BANK2的Flash,此时擦除Flash时,HAL Flash的API去关掉I-Cache和D-cache会影响到,我Bank1的程序执行时间,最危险的情况可能会导致快速中断程序执行不完。
若我在Bank1执行程序,擦除Bank2的Flash需要关闭I-Cache, D-Cache吗? 我不会在线交换Bank1和Bank2的Flash。
您好,我就是刚好有Dual Bank的需求,才会关心这个问题。
我需要对固件实现在线更新,当前APP在BANK 1执行,要更新固件时,会去擦除BANK2的Flash,此时擦除Flash时,HAL Flash的API去关掉I-Cache和D-cache会影响到,我Bank1的程序执行时间,最危险的情况可能会导致快速中断程序执行不完。
若我在Bank1执行程序,擦除Bank2的Flash需要关闭I-Cache, D-Cache吗? 我不会在线交换Bank1和Bank2的Flash。
建议关闭,因为不知道ST Cache加载的规则。