痞子衡嵌入式:恩智浦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 ...
随机推荐
- 深入理解Kafka必知必会(1)
Kafka的用途有哪些?使用场景如何? 消息系统: Kafka 和传统的消息系统(也称作消息中间件)都具备系统解耦.冗余存储.流量削峰.缓冲.异步通信.扩展性.可恢复性等功能.与此同时,Kafka 还 ...
- EasyUI 表单插件 multiline easyui-textbox 多行换行失效问题
1.问题描述:原始html: <input class="easyui-textbox" name="myname" id="myid" ...
- Linux下的upx命令学习
upx学习 今天我们来学习一款给应用加壳的软件,叫做upx(the Ultimate Packer for eXecutables) 首先我们先看下它**百科的释义: UPX (the Ultimat ...
- 【JavaWeb】JSTL 标签库
JSTL 标签库 简介 JSTL(JSP Standard Tag Library),即 JSP 标准标签库.标签库是为了替换代码脚本,使得整个 jsp 页面变得更加简洁. JSTL 有五个功能不同的 ...
- IO软件层次结构与假脱机技术
IO软件层次结构 用户层软件->设备独立性软件->设备驱动软件->中断处理程序->硬件 用户层软件实现与用户交互的接口,用户可直接使用该层提供的,与IO操作相关的库函数对设备进 ...
- 【Linux】NFS相关小问题
NFS一些小问题: 1. 由于实验环境中,给了rw权限,但是执行的时候,还是提示Permission denied 于是查看nfs服务端,查看/etc/exports文件是否配置有问题 网上很多人配置 ...
- 【RAC】打完补丁后,发现只有一台rac可以启动,另一台无法启动
安装11Gr2单机asm后,打完11.2.0.3.7的psu后,发现启动不起来数据库,alert日志内容如下: Errors in file /u01/app/oracle/diag/rdbms/bd ...
- 【ORACLE】awr报告问题分析
本文转自:http://www.linuxidc.com/Linux/2015-10/123959.htm 感谢分享 1.问题说明 运维人员都有"节日休假恐怖症",越到节日.休假和 ...
- 本地Mac通过堡垒机代理实现跨堡垒机scp问题
近日,公司在跳板机前架设了堡垒机,以防止ssh攻击,但这带来一个问题,我们平常直接ssh跳板机,可以直接使用scp来上传或下载跳板机数据到本地 架设堡垒之后经常使用的scp工具不好用了 于是本期就来解 ...
- 虚拟化kvm的搭建
虚拟化, 是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机 ,在一台计算机上同时运行多个逻辑计算机,每台逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不 ...