大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家讲的是恩智浦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年有余了,功能可以说是相当丰富了。

  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主页知乎主页微信公众号 平台上。

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

痞子衡嵌入式:恩智浦MCUX SDK在GitHub上线了的更多相关文章

  1. 痞子衡嵌入式:恩智浦SDK驱动代码风格、模板、检查工具

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是恩智浦 SDK 驱动的代码风格. 上周痞子衡受领导指示,给 SE 同事做了一个关于 SDK 代码风格的分享.随着组内新人的增多,这样的培训 ...

  2. 痞子衡嵌入式:恩智浦SDK驱动代码风格检查工具预览版

    大家好,我是痞子衡,是正经搞技术的痞子. 接上文 <恩智浦SDK驱动代码风格.模板.检查工具> 继续聊,是的,过去的三天里我花了一些时间做了一个基于 PyQt5 的 GUI 工具,可以帮助 ...

  3. 痞子衡嵌入式:恩智浦MCU安全加密启动一站式工具NXP-MCUBootUtility用户指南

    NXP MCU Boot Utility English | 中文 1 软件概览 1.1 介绍 NXP-MCUBootUtility是一个专为NXP MCU安全加密启动而设计的工具,其特性与NXP M ...

  4. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU特性介绍(2)- RT685EVKA性能实测(Dhrystone)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的性能. 在前面的文章 i.MXRTxxx微控制器概览 里,痞子衡给大家简介过恩智浦半导体在2018 ...

  5. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.4)- 串行NOR Flash下载算法(Keil MDK工具篇)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是Keil MDK工具下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行NOR Flash ...

  6. 痞子衡嵌入式:基于恩智浦i.MXRT1060的MP4视频播放器(RT-Mp4Player)设计

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是基于i.MXRT1062的MP4播放器参考设计. i.MXRT1062是恩智浦i.MXRT四位数系列的中端型号,外设搭配上很均衡,辅以6 ...

  7. 痞子衡嵌入式:恩智浦机器视觉模块OpenMV-RT那些事(1)- 初体验

    大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是机器视觉模块OpenMV-RT初体验. 近些年机器视觉应用一直是个很火的方向,想象一下机器如果能长上"眼睛",是不 ...

  8. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.5)- 串行NOR Flash下载算法(IAR EWARM篇)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是IAR开发环境下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行NOR Flash XI ...

  9. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.6)- 串行NOR Flash下载算法(MCUXpresso IDE篇)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE开发环境下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行N ...

随机推荐

  1. TCP三次握手(通俗易懂)

    一--导读 前不久中国和外国RPEC协议的签订,标志着东亚自贸区的建立成功.现在韩国和日本要做贸易.日本一直监听着韩国总统的一举一动,但他又不会主动.(服务器的监听状态)只是被动的等着韩国总统先开口. ...

  2. [ABP教程]第五章 授权

    原文档 地址: Web Application Development Tutorial - Part 5: Authorization 关于此教程 在这个教程系列中,您将构建一个基于ABP的Web应 ...

  3. R语言学习笔记-单一决策树

    决策树比较简单明晰,但存在不稳定的风险,数据的微小变化会导致最佳决策树结构的巨大变化,且决策树可能会变得比较复杂. 其算法原理参见https://zhuanlan.zhihu.com/p/148010 ...

  4. C++把数字排序

    C++把数字排序 描述 思路 代码 描述 如题,详细如下: 输入不超过1024个数字,以特殊数字结尾,如(-999),把数字从小到大排序. 思路 目前,我们有两种思路可以写: 1是 在输入的时候,排序 ...

  5. PHP 打水印功能

    /** * @param $str 需要打水印的文字 * @param int $size 文字大小 * @param int $red 文字的颜色 rgb r * @param int $gree ...

  6. 实验一-最小生成树Kruskal算法

    实验名称 最小生成树算法-Kruskal算法 实验目的 1.掌握并查集的合并优化和查询优化: 2.掌握Kruskal算法. 3.能够针对实际问题,能够正确选择贪心策略. 4.能够针对选择的贪心策略,证 ...

  7. (二)React Ant Design Pro + .Net5 WebApi:前端环境搭建

    首先,你需要先装一个Nodejs,这是基础哦.如果没有这方面知识的小伙伴可以在园子里搜索cnpm yarn等关键字,内容繁多,此不赘述,参考链接 一. 简介 1. Ant Design Pro v5 ...

  8. (十二)random模块

    大致有以下几个函数: print(random.random()) #0到1的浮点型 print(random.randint(1,6)) #1到6的整型 print(random.randrange ...

  9. Java 安全之Weblogic 2018-2628&2018-2893分析

    Java 安全之Weblogic 2018-2628&2018-2893分析 0x00 前言 续上一个weblogic T3协议的反序列化漏洞接着分析该补丁的绕过方式,根据weblogic的补 ...

  10. 【Oracle】查看oracle用户相关权限

    系统权限 SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'CHAXUN' UNION ALL SELECT * FROM DBA_SYS_PRIVS WHER ...