痞子衡嵌入式:恩智浦MCUX SDK在GitHub上线了
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家讲的是恩智浦MCUX SDK 在GitHub上线一事。
其实在差不多一个月前(2021年1月6日),恩智浦MCUX SDK就在GitHub悄悄上线了,官方并没有做太多宣传,但这事对于一个恩智浦微控制器(MCU)开发者来说意味着很多,痞子衡今天就试着给大家解读一下。
- 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包下载。
- MCUX SDK官方下载入口:https://mcuxpresso.nxp.com/en/welcome
看起来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上线了的更多相关文章
- 痞子衡嵌入式:恩智浦SDK驱动代码风格、模板、检查工具
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是恩智浦 SDK 驱动的代码风格. 上周痞子衡受领导指示,给 SE 同事做了一个关于 SDK 代码风格的分享.随着组内新人的增多,这样的培训 ...
- 痞子衡嵌入式:恩智浦SDK驱动代码风格检查工具预览版
大家好,我是痞子衡,是正经搞技术的痞子. 接上文 <恩智浦SDK驱动代码风格.模板.检查工具> 继续聊,是的,过去的三天里我花了一些时间做了一个基于 PyQt5 的 GUI 工具,可以帮助 ...
- 痞子衡嵌入式:恩智浦MCU安全加密启动一站式工具NXP-MCUBootUtility用户指南
NXP MCU Boot Utility English | 中文 1 软件概览 1.1 介绍 NXP-MCUBootUtility是一个专为NXP MCU安全加密启动而设计的工具,其特性与NXP M ...
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU特性介绍(2)- RT685EVKA性能实测(Dhrystone)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的性能. 在前面的文章 i.MXRTxxx微控制器概览 里,痞子衡给大家简介过恩智浦半导体在2018 ...
- 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.4)- 串行NOR Flash下载算法(Keil MDK工具篇)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是Keil MDK工具下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行NOR Flash ...
- 痞子衡嵌入式:基于恩智浦i.MXRT1060的MP4视频播放器(RT-Mp4Player)设计
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是基于i.MXRT1062的MP4播放器参考设计. i.MXRT1062是恩智浦i.MXRT四位数系列的中端型号,外设搭配上很均衡,辅以6 ...
- 痞子衡嵌入式:恩智浦机器视觉模块OpenMV-RT那些事(1)- 初体验
大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是机器视觉模块OpenMV-RT初体验. 近些年机器视觉应用一直是个很火的方向,想象一下机器如果能长上"眼睛",是不 ...
- 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.5)- 串行NOR Flash下载算法(IAR EWARM篇)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是IAR开发环境下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行NOR Flash XI ...
- 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.6)- 串行NOR Flash下载算法(MCUXpresso IDE篇)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE开发环境下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行N ...
随机推荐
- case when then else end用法
case具有两种格式,简单case函数和case搜索函数 case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略 1.简单函数 CASE sex WHEN '1 ...
- Syn_Flood攻击&防御手段
Syn_Flood攻击原理 攻击者首先伪造地址对服务器发起SYN请求(我可以建立连接吗?),服务器就会回应一个ACK+SYN(可以+请确认).而真实的IP会认为,我没有发送请求,不作回应.服务器没有收 ...
- Head First 设计模式 —— 10. 迭代器 (Iterator) 模式
思考题 public void printMenu() { PancakeHouseMenu pancakeHouseMenu = new PancakeHouseMenu(); ArrayList ...
- 简要MR与Spark在Shuffle区别
一.区别 ①本质上相同,都是把Map端数据分类处理后交由Reduce的过程. ②数据流有所区别,MR按map, spill, merge, shuffle, sort, r educe等各阶段逐一实现 ...
- Xshell与Xftp免费下载安装及步骤
Xshell与Xftp免费下载安装及步骤 1.进入Xshell的官网:https://www.netsarang.com/zh/ 加粗样式 2.选择你需要的软件进行下载如:Xshell 3.选择家庭和 ...
- DHCP最佳实践(三)
这是Windows DHCP最佳实践和技巧的最终指南. 如果您有任何最佳做法或技巧,请在下面的评论中发布它们. 在本指南(三)中,我将分享以下DHCP最佳实践和技巧. 仅在需要时才使用IP冲突检测 运 ...
- buuctf—web—Easy Calc
启动靶机,查看网页源码,发现关键字 $("#content").val() 是什么意思: 获取id为content的HTML标签元素的值,是JQuery, ("# ...
- pandas数据分析API常用操作
1.导入数据 df = pd.read_csv( # 该参数为数据在电脑中的路径,可以不填写 filepath_or_buffer='/Users/Weidu/Desktop/sz000002.csv ...
- 前端面试之CSS常用的选择器!
前端面试之CSS常用的选择器! 标签选择器 <style> /* <!-- 标签选择器 :写上标签名 -->*/ p { color: green; } div { color ...
- TekRADIUS5.5安装教程
1.下载地址:https://www.kaplansoft.com/TekRADIUS/release/tekradius.zip 2.解压安装,双击一步默认安装下来就是了 3.配置连接数据库: 4. ...