我涉足嵌入式开发超过10年,因为工作的关系曾经接触过多款嵌入芯片,ATMEL、华邦、三星等芯片;做过POS机、调过电机等。早就耳闻STM32,可真正与STM32的首次接触是在2015年11月,当时正好遇上社区活动 意外的获得了一块Nucleo-L476开发板。 不过这个社区吸引我的地方是这个社区资料库,可能是具有ST血缘的关系,STM32社区有一个很有特色的资料库,这点可以迅速 的获取相关芯片型号的开发资料及相关开发驱动。 为此一股脑的将STM32L4下的资料全部下载逐一研究分析,以外的发现了一款开发利器——CubeMX,正是因为这工具让我在拿到Nucleo-L476板子后,迅速地通过CubeMX创建的代码成为一灯大师。比起我使用过的其他ARM芯片来说,绕开初期繁琐的寄存器学习过程,迅速的将代码成型,实现我所预期功能,缩短了软件开发周期。这等于ST为想成为ARM应用开发工程师们的新手提供了一个巨人般力量的助手和工具。 这工具同以往我接触过的ARM芯片开发工具不一样,ST在上位机开发工具投入程度已经丢下其他厂商一大截。在兴奋之余略感警觉,这么好的工具在未来的使用中是否会收费以及涉及代码版权等问题,严重捆绑之后会不会类似KEIL来一个巨额的使用费。不过从ST的战略来看很快就打消了这一层顾虑。只有方便快捷的设计工具才能更好的推广其芯片服务,毕竟芯片的生命力在于使用它的人群,一个容易上手的工具能降低千万的市场推广门槛,给起带来数十亿的销售量,马克思说过价值是凝结在商品中无差别的人类劳动,那么ST已经通过凝结在芯片中更智慧的人类劳动为其市场推广铺平了道路。 在使用CubeMX这么久后,其便捷程度超出我的预期,从复用引脚功能配置定义、底层固件升级管理、HAL代码文件生成、乃至第三方应用的FreeRTOS、LwIP配置及代码生成,均实现了一体化和关联化配置。这些功能不断的震撼着我,ST公司对此工具真是很下了些功夫,这与其它厂商领先优势再次拉大。CubeMX为我们充分诠释了SDH(Software Defined Hardware :软件定义硬件)的强大功能。与ST的程长过程CubeMX如影随形的好伙伴。 伴随我与STM32一路成长的不仅仅有CubeMX,还有Eclipse+Ac6的开发环境,这让开发者跳出了Keil、IAR开发编译平台的局限,使用GUN下的ARM GCC,能为使用STM32芯片做项目的成长其的工程师或公司,节省一笔不小的正版软件支付费用。降低了技术的入门门槛,不得不说这两个软件为其销量打下了坚实的基础。 代码生成工具说了、编译工具说了,结下来值得称道官方提供了新的固件库——HAL;这一固件库取代了旧的StdLIB固件库,成为CubeMX生成代码的标库。我用过的固件库,原厂提供最好的是ATMEL、其次华邦的,最差的是三星的固件库,甚至需要从汇编开始熟悉,ST提供的HAL最让我感到吃惊的是其抽象程度,用HAL在Nucleo-073下开发的应用,只需要修改少量代码就能迅速的移植到Nucleo-L043开发板下,移植过程按小时计算。这也大大地加快产品开发和人力时间成本。不得不说HAL为产品的研发降低了成本。 作为一名具有10年以上开发经验的工程师,深感CubeMX、Ac6、HAL的巨大作用,这些软件无疑都是ST公司为其使用者提供的福利,不仅降低了其芯片的使用门槛,还在最大程度上降低了研究成本,让工程师更多精力注重于应用功能的实现,而非受限制与ARM技术自身的门槛,是为产品研发者们送了个大大的红包。 好了,洋洋洒洒写了一大片,ST带来的如影随形的工具体验就写到这里,与STM32共成长的经历中套用杨澜的书名《一路走来,幸好有你》作为结束。 |