LL库变成黑色,不能用,怎么回事
按照文档标注ADC最高输入时钟为60兆, 将主频配置为120(原来是170M),AD再进行1分频/2分频/4分频,对应的转换位数12位,采样周期2.5,对应的频
关于stm32g431串口与FDCAN数据不同同时处理问题
STM32G431的CAN控制器在收发器开路后,程序发送数据后,TX高电平。RX低电平。
在使用FDCAN控制器发送字节有问题
STM CUBE AI错误导入onnx模型报错
L433单片机的SPI3,在从模式,开接收中断情况下的问题
keil无法对G474CBTx扇区擦除烧录较大程序是什么原因?
CubeAI生产keil代码时出现报错。这个ai_platform.h文件在什么地方?
关于CUBEMX死区模式使用?
操作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加载的规则。