如何将电机转速度控制在0.1RPM以下?我尝试过将SPEED_UNIT改为480,电机转速度可以控制在0.125RPM,但最转到250RPM时,编码器计数好像溢出了
STSPIN32G4内部驱动电压输出问题
使用Hal库的SPI读取磁边传感器导致STM32G4无法运行
定时器触发SPI
stm32G474RBT3的flash擦除寿命是多少?
stm32g474RE 输出4相波形,如何精准输出ADC触发的问题。
STM32G491 flash擦除的问题,请教大神
STM32G4 FLASH擦除不了,寻求各位大佬、官方的帮助
STSPIN32G4 STM32G431VBTx CAN FIFO发送数据帧随机变远程帧
STM32G473,PA3导致定时器定时误差过大
微信公众号
手机版
操作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加载的规则。