zoukankan      html  css  js  c++  java
  • 痞子衡嵌入式:恩智浦MCUX SDK在GitHub上线了


      大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家讲的是恩智浦MCUX SDK 在GitHub上线一事

      其实在差不多一个月前(2021年1月6日),恩智浦MCUX SDK就在GitHub悄悄上线了,官方并没有做太多宣传,但这事对于一个恩智浦微控制器(MCU)开发者来说意味着很多,痞子衡今天就试着给大家解读一下。

      在如今MCU功能设计越来越复杂的前提下,嵌入式开发者如果还是用十几年前开发8/16 bit MCU那一套经验(看官方参考手册来裸写MCU外设寄存器当基础驱动)来开发现在的MCU显然是不可想象的,且不论开发者能力是否足以写出合适的底层驱动,单说那项目开发效率也是让人无法接受的,因此有一个完善的官方SDK驱动包越来越重要。

      SDK包通常会包含基础的MCU外设驱动,一些示例代码,甚至还可以集成常用的小组件(按键、存储器、传感器驱动等)、第三方软件库中间件(文件系统、GUI、编解码、加解密等)、RTOS支持等。SDK包可以帮助开发者节约大量的时间,让开发者将主要精力集中在核心的应用功能设计上。

      说起恩智浦MCUX SDK,这得追溯到2009/2010年,那时候原恩智浦刚开始推出第一款Cortex-M0内核的LPC1100,老飞思卡尔(2015年被恩智浦收购)刚推出第一款Cortex-M4内核的Kinetis K60,一开始这两家都没有规范的SDK包,只是给了Simple Code包,就是非常简单的外设驱动库,可以让开发者快速把芯片玩起来。2012年的时候,老飞思卡尔开始为Kinetis系列开发完善的SDK包(v1.x时期),这就是现在的恩智浦MCUXpresso SDK包的前身,这个SDK开发至今(目前最新版本是v2.9)已8年有余了,功能可以说是相当丰富了。

    Note: MCUX SDK并没有支持全部LPC型号,飞思卡尔和恩智浦合并之前,恩智浦推出的那些LPC老型号不在MCUX SDK支持计划里,这些老型号LPC也有一个相对完整的SDK,这个SDK项目叫LPCOpen。

      SDK v1.x的时候,主要支持Kinetis系列,那时候SDK包本身不算大,功能组件也没有如今这么丰富,因此包的下载方式比较粗暴,官网提供了唯一的下载入口,一个包可以直接将整个SDK仓库全部拿下来(所有Kinetis型号全部在内)。但是到了SDK v2.x后期,随着MCU型号越来越多,以及有LPC、DSC、JN、QN、i.MX等新系列的加入,SDK仓库越来越大,再用一个包去把全部MCU型号的驱动都拿下来不太现实,一是包大了下载时间太长;二是开发LPC的用户拿到一个包含非LPC系列的驱动包也没意义,因此现在的MCUX SDK官方下载页面(SDK builder)可以选择具体MCU型号以及第三方中间件,相当于是可定制化的SDK包下载。

      看起来SDK Builder这种包下载方式已经很好了,为何现在又多了GitHub方式?难道仅仅是给大家多一种包下载方式?显然没那么简单!如果你细看GitHub上的SDK组成,你会发现它相比SDK Builder方式少了RTOS以及第三方中间件的支持,Toolchain方面也仅支持MCUXpresso IDE和GCC,看起来GitHub上的SDK包更聚焦在恩智浦MCU外设驱动本身以及自家的工具链上。

      前面介绍了这么多恩智浦MCUX SDK放GitHub之前的背景,那么恩智浦SDK开发团队此举到底是什么用意呢?痞子衡看来主要有两点:

    用意一:用户能更及时地拿到hotfix/尝鲜版本

      软件功能都是在不断增加的,并且任何一个软件都可能包含潜在的bug,因此软件需要不断地迭代去完善自身,但恩智浦MCUX SDK是一个非常规范的软件产品,有非常多的工程师参与开发测试,它的任何一个版本发布都需要经过严格的流程,这需要时间,因此如果仅从SDK Builder这种官方方式去拿正式发布包,会存在一定的时间延迟(少则三个月)。现在有了GitHub仓库,SDK开发团队可以将一些重要的hotfix/feature提前放在GitHub上,一些开发能力强的用户可以从GitHub上及时拿到新版本,这比用户单独联系FAE去获取内部包(版本可能会混乱)在流程上要规范得多,更重要的是GitHub上拿包在版本记录上也很明确。

    用意二:与用户面对面沟通,拥抱社区开源力量

      软件开源是现在这个时代的潮流,恩智浦MCUX SDK本身一直是开源的,软件许可证也是BSD-3为主,可以说是相当宽松。然而在SDK放到GitHub上之前,SDK开发团队一直没有一个与用户和社区直接沟通交流的机会,用户对于SDK的建议反馈都需要那些直接与客户打交道的团队(比如AE)来转述,这虽然可以让SDK开发团队专注于软件开发本身,不用直面用户(客户支持不是件轻松的活,繁杂且耗时),但毕竟信息在转述的过程中可能会有损失,现在用户可以在GitHub上直接提issue来给建议,SDK开发团队能够直接拿第一手信息去做判断。

      此外,社区开源力量是不可忽视的,SDK上线不到一个月,我们已经可以看到两位非NXP工程师在提交PR了,有了社区力量的加持,SDK必将会更加完善,所有恩智浦MCUX SDK用户的宝贵经验都可以得到传承。所以你还等什么?赶紧加入到这个激动人心的大项目吧!

    欢迎订阅

    文章会同时发布到我的 博客园主页CSDN主页知乎主页微信公众号 平台上。

    微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

      最后欢迎关注痞子衡个人微信公众号【痞子衡嵌入式】,一个专注嵌入式技术的公众号,跟着痞子衡一起玩转嵌入式。

    痞子衡嵌入式-微信二维码 痞子衡嵌入式-微信收款二维码 痞子衡嵌入式-支付宝收款二维码

      衡杰(痞子衡),目前就职于恩智浦MCU系统部门,担任嵌入式系统应用工程师。

      专栏内所有文章的转载请注明出处:http://www.cnblogs.com/henjay724/

      与痞子衡进一步交流或咨询业务合作请发邮件至 hengjie1989@foxmail.com

      可以关注痞子衡的Github主页 https://github.com/JayHeng,有很多好玩的嵌入式项目。

      关于专栏文章有任何疑问请直接在博客下面留言,痞子衡会及时回复免费(划重点)答疑。

      痞子衡邮箱已被私信挤爆,技术问题不推荐私信,坚持私信请先扫码付款(5元起步)再发。


  • 相关阅读:
    2. Add Two Numbers
    1. Two Sum
    leetcode 213. 打家劫舍 II JAVA
    leetcode 48. 旋转图像 java
    leetcode 45. 跳跃游戏 II JAVA
    leetcode 42. 接雨水 JAVA
    40. 组合总和 II leetcode JAVA
    24. 两两交换链表中的节点 leetcode
    1002. 查找常用字符 leecode
    leetcode 23. 合并K个排序链表 JAVA
  • 原文地址:https://www.cnblogs.com/henjay724/p/14373275.html
Copyright © 2011-2022 走看看