查看: 1019|回复: 1

[分享] 恩智浦MCUX SDK在GitHub上线了,带来了哪些意义?

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3298

    主题

    6545

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32003
    最后登录
    2024-4-9
    发表于 2021-2-23 11:29:40 | 显示全部楼层 |阅读模式
    恩智浦MCUX SDK在GitHub上线了,带来了哪些意义?
    今天痞子衡给大家讲的是恩智浦MCUX SDK 在GitHub上线一事。


    其实在差不多一个月前(2021年1月6日),恩智浦MCUX SDK就在GitHub悄悄上线了,官方并没有做太多宣传,但这事对于一个恩智浦微控制器(MCU)开发者来说意味着很多,痞子衡今天就试着给大家解读一下。
    1. MCUX SDK项目地址:https://github.com/NXPmicro/mcux-sdk
    复制代码
    在如今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年有余了,功能可以说是相当丰富了。


    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包下载。
    1. MCUX SDK官方下载入口:https://mcuxpresso.nxp.com/en/welcome
    复制代码
    14.png
    看起来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用户的宝贵经验都可以得到传承。所以你还等什么?赶紧加入到这个激动人心的大项目吧!
    15.png

    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2021-2-23 16:11:06 | 显示全部楼层
    MCU的性能越来越高了。
    简单的编写底层程序的方式已然被时代淘汰了。
    拥抱开源、分享的浪潮吧
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-20 05:04 , Processed in 0.110498 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表