
当Lua第一次出现在我面前的时候,我看到了脚本的魅力之处,并第一次感觉到单片机上也有可能使用!兴奋之余,当我尝试之后,我发现它要花掉100KBytes的程序存储器空间。 我认为它有点大,因此我持续寻找其他可能的 C脚本/解释器实现方案,最终我找到一个TCC编译器,它有着比Lua更自然的使用方式,而且体积真的超级小,然而,它也要使用129KBytes左右的程序空间。 因为我对被称之为 智能尘埃 的 微型传感/执行单元 非常感兴趣,因此我一度期待可以找到一个在10Kbytes级别的脚本实现方案。但是我翻来覆去地找,貌似100K这个量级已经是极限。 这时,我脑袋里萌生过改写这些开源方案的念头,但随即马上放弃。 原因在于:我对其中涉及的难度毫无把握,何况,我只想做一个使用者,而不太愿意贸然去做一个创造者。 在多次纠结要找一个更极端小的实现方案无果后(我其实真的曾经考虑过OTCC),我反过来思考一个问题: 130K怎么了?不就130K吗? 看STM32十年的FLASH/RAM怎么一路上涨(下) |
而六年职场,浸淫在这个行业里,所了解所经历,让我愈发坚信它是对的。
其中最明显的一个例子就是:
我入门学习单片机,是从经典的8051开始,当时的“大主流”(事实上的标准)是atmel的at89s52.它拥有8K bytes Flash,512Bytes RAM,主频最高可达40Mhz,当时它的零售价大致是 RMB 5块。我接触这款芯片是在2009年,但这款芯片最早推出的时候至少可以追溯到2004年之前。
其时(2009年),实际上32位ARM已经开始流行起来,当时就很受欢迎的STM32(2007年首次面世)还停留在F1 F2的时代(2009年),尽管资源丰富,但价格相对昂贵,开发也被认为比较困难,事实上当时是被认为一种“高级单片机”,大多数人还迟迟停留在51的世界里不太愿意尝试。
但随后,STM32开始在全球范围内大行其道(今年走过十年,它累积创下16亿片的销售记录)。但它的价格仍然相对较高,我当时虽然已经不再使用越来越缺乏性价比和性能竞争力的51系列芯片,但我仍然在使用STM8S等8位机。
直到2014年,stm32f030突然横空出世:
Flash高达64Kbytes,RAM更是达到了8K bytes,主频最高可达72Mhz,而它的价格却是 32美分(当时的美金停留在6字头,折合人民币,不超过2.5),当然这是1KU的官方价格,但零售大抵也就是 RMB 4到5块
这款产品的诞生,彻底颠覆了8位机的价格优势这最后一道防线,我由此决定全面拥有32位机,作为我个人选择的通用机型......(这里面其实还有很多其他原因,但这里只关注FLASH/RAM)
但是如前所述,我所关心的是,单元型的MCU。这类MCU通常功能有限,要求功耗尽可能低,成本尽可能低,故而资源也就尽可能紧凑就好。
在我继续钻在“怎么把脚本变得更小”的牛角尖里钻了一段时间后,我突然豁朗开朗:
说白了,我们的需求只是尽可能便宜,至于它其实是2K 还是8K,抑或256Kbytes的flash,其实我们并不关心。甚至可以幸灾乐祸的说,如果256Kbytes flash的MCU比8K的还便宜,那我们会很愉快地选择它,哪怕有点浪费也无所谓。
这种高射炮打蚊子的事情,其实在MCU选型里经常发生。
比如相比价格高达 六七美金的 stm32f4 f7,假如不考虑开发资源和裸机驱动的丰富程度。
前几年三星出了一款曾经十分火爆的A8内核处理器 S5PV210。它主频高达1G,尽管FLASH和RAM都是外扩,但是,淘宝上,一个外扩了 G级 FLASH 和 几百K RAM的 最小核心板,价格也不过 三五十块。尽管它的目标应用不是裸机MCU,而是嵌入式linux android等复杂应用,但当年包括我在内,都打过把它当一个MCU使的主意。
但它和stm32f4 f7的配置相比,简直就是天差地别:
——这两个系列MCU的Flash通常在1M~2M左右,主频最高将近可达300Mhz。
另一个近在眼前的问题则是:当前,配备256K flash的MCU,要多少钱?
MCU不同于PC处理器,其品牌,种类,系列多如牛毛,我不可能统计所有情况,而我最熟悉的STM32也不见得是最具有性价比的,尤其是,在不同的订单量的情况下,价格可能大不相同。但是我只是想了解一个大致的情况,何况我并没有订单,不太可能找代理商问价格,因此我只打算以官方的1KU或者10KU报价作为参考,来做这件事情。
但这件事显然没有我想的那么简单实现,最后折腾了半天,我想起 ST每年都会举行的 全球峰会,每次峰会都会有很多资料,介绍自己已有和新增的产品线是必不可少的,因此从那里着手,我就可以得到我想要的STM32 十年来的 产品线演进情况。
坑爹的是,这资料,我在ST官网上都找不到(英文版也无所谓的)。
最后寻寻觅觅好不容易在 这里被我找到了,而且还专门放在首页,非常好找。
于是我决定把接下来写的这些文字,首发这个网站~~~话说这论坛还是与非旗下的,天哪,我是有多久忙到没时间去与非发表神回复了........
主要是可以动态时修改程序行为,相当于ISP方案。
所以我觉得这玩意特别好玩
其实,TCC比LUA还要大。
但是LUA调用C需要经过一个特别的封装,而TCC可以直接运行C源码,其方便程度简直不可同日而语。