其实有mmu有cache,反而会导致延迟产生巨大波动。实时系统并不是说延迟要多低,更重要的是有可预期的延迟。
而且m系列也不应该接sdram,需要sdram的场合还真应该直接上cortex a系列,sdram本身就是个面向吞吐量设计的架构,a系列的吞吐量远比m系列大。
m7定位的场合不适合io intensive的计算。比如运控/飞控,整个过程就是几个坐标轨迹输入,并没有大量数据交换,大量内存需求。
至于算得过算不过嘛,可以看看klipper的这个bench:
https://www.klipper3d.org/Benchmarks.html
你可以发现哪怕是stm32f042,甚至atmega2560这样的8bit mcu都是算得过来的,只不过tick rate很小而已。
所以这里对性能的要求并不是算不算得过来,还要看看能算到什么样的频率。运控,飞控这些场合,tick rate肯定是越高效果越好的。
说点题外话,上面这个bench里的rp2040也是m0系列,却拥有最高的tick rate。这是因为rp2040有PIO辅助,这玩意可以算是个小fpga或者小mcu了。所以我相当看好rp2040,不知道有没有那个国产ic把这个feature抄过来的。
我感觉有类似feature的mcu不多,总共也就在beaglebone black,PIC的部分型号,然后就是这个rp2040上见过了。bbb太贵了不考虑,PIC也比rp2040贵很多综合还要弱一点。我是觉得这个PIO有很大的潜力可以深挖。比如有人用它bit bang个DVI出来....rp2040的canbus也是靠PIO软件实现的,性能和稳定性都好得很。
【 在 Oriphia 的大作中提到: 】
: 我想了一下,m7的架构没有mmu,没有cache,dsp本身要处理大部数据,数据存在内存里,sdram应该只能跑到166MHz吧,sram天价,用m7来做dsp,内存跑异步上,那数据不命中的话要等最少等二十几个周期吧。
: 跑算法的话,我还没发现在f439跑不动的,我看b站拆美军无人巡飞弹的也只用到f7。
:
: ...................
--
修改:lvsoft FROM 117.136.66.*
FROM 180.98.4.*