
smt32l432kcu6 TIM_DMA 例程,TimHandle.Init.RepetitionCounter = 3; 应该输出4个波形,但是启动时第一次会输出8个波形后面才会正常输出4个波形
stm32G474RBT3的flash擦除寿命是多少?
STM32G431K COMP 比较器下降沿中断
STSPIN32G4内部驱动电压输出问题
STM32G431 用MCSDK5.4.8 进行PMSM永磁同步电机FOC控制,转速上升到某一值(3500rpm)无法继续上升,上不去
STM32G431CBU6 驱动STDRIVE101,自己配置的PWM互补输出,死区时间为500ns,为什么STDRIVE101的报警灯会亮,CP接10K接地了,scref接的+5V
请教下,使用 filex 文件系统需要支持中文的目录及文件名要怎么配置呀 ?
50台设备共用一条CAN总线,会概率性丢包
STM32G474, I2C设备地址,总出现多余地址0x20,是什么原因?
关于STM32G474 双BANK的测试问题
操作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加载的规则。