做嵌入式开发也几年了,项目组用过的单片机也很多从最早的MSP430,飞思卡尔S08,STM32F103,STM8S,8L,LPC1788,和最近在用的KE02。
可以说每个系列都有自己赖以生存的特色。 但是这两年最火的莫过于STM32了。
因为工作这段时间太忙了,论坛里其他朋友都已经发了很多测试代码,该有的基本都有了,
本来计划发个Quad SPI 的速度测试的,但是手头没能引出线的FLASH板子,眼看就要20号了,回来再补上。
和其他厂家对比下,STM32靠的就是差不多的性能,超高的性价比,最好的库函数用户接口。
这次申请这个446的板子主要是看中的有3点,一个是cubeMX的人性化,其实这个在F1系列上已经有了,飞思卡尔和其他厂家也有相应的工具,
但是还是不得不说ST确实是里面做的最好的。
第二是Quad SPI interface,这个可能很多朋友还没用过,但是真的非常棒,很多地方可以替代NAND,NOR之类的存储器,比普通的SPI FLASH要提高太多了,
因为正好前段时间做LINUX从Quad SPI interface启动,启动速度令我印象深刻,轻松干掉NAND,这次STM32也加入了Quad SPI interface,再加上180的主频
还是非常有优势的。
第三就是性能了,M4的内核加上浮点和DSP,配合90MHz FMC,再加上第二条的Quad SPI interface,对一些实时控制和大数据量的处理估计比F1要高很多倍。
去年做的一个运动检测用的F1,采集AD和加速度计分别做FFT,计算规律震动的频率和幅值,发现F1力不从心,最后只有靠降低参数来勉强能用。
回来移植过来用DSP库跑跑,看看性能到底可以提高到什么地步。
话说ST的库做的真的很棒,甚至前段时间有个产品要换液晶屏,处理器就换了STM32,把代码从STM8S移植到STM32基本没什么困难,代码编写时候用了参考linux,
专门写了几个BSP文件来实现硬件驱动的接口统一,所有系统功能函数又分开用纯C的代码编写,不涉及硬件操作。
这样可能前期费点功夫,但是后期移植升级真是太方便了。 只需要更改GPIO和定时器,中断等底层,初始化完成后真正的系统控制代码不需要任何变化,
把调用的函数放到中断里就可以了,特别8S的库和32的库很多地方都一样。
只需要简单更改部分宏定义就可以。
|