大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是轻量级标记语言Markdown. 1.假如你有过这样的烦恼? 想写出排版优雅简洁的文章,并且能够轻易地发表(连同文字和排版)到各大网站上去,但是在线编辑文章太繁琐,且担心万一操作失误或者网络环境问题,前功尽弃~~~ 想不断编辑改进已经发表的文章,但有时候没有网络或者网络不佳,导致无法轻易在原有文章基础上增加内容,创作热情顿减~~~ 2.Markdown能做什么 好了,这时候你需要Markdown来帮忙.Markdown是什么?其实它…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM Cortex-M存储保护模块(MPU). <ARM Cortex-M内核MCU开发那些事>的内核篇连载最早是 2017 年底开始写的,但只写了 7 篇就停更了,鸽了这么久实在不好意思.最近在支持 i.MXRT 客户的过程中,发现客户对 Cortex-M 的 MPU 功能不太了解,导致项目中出了内存非法访问的问题,借此机会,痞子衡将重启这个 Cortex-M 内核篇连载,为大家系统地讲解下MPU: 备注:本篇是MPU上篇,主…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是PCM编码及Waveform音频文件格式. 嵌入式里有时候也会和音频打交道,比如最近特别火的智能音箱产品,离不开前端的音频信号采集.降噪,中间的语音识别(ASR).自然语言处理(NLP),以及后端的文语合成(TTS).音频播放.音频信号采集是处理声音的第一步,要采集音频就离不开PCM编码,音频采集完成自然需要保存,waveform格式(.wav)是一种最经典的音频文件格式.今天痞子衡就给大家详细介绍PCM编码以及waveform文件…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ONFI标准及SLC Raw NAND. NAND Flash是嵌入式世界里常见的存储器,对于嵌入式开发而言,NAND主要分为两大类:Serial NAND.Raw NAND,这两类NAND的差异是很大的(软件驱动开发角度而言),即使你掌握其中一种,也不代表你能了解另一种. Raw NAND是相对于Serial NAND而言的,Serial NAND即串行接口的NAND Flash,而Raw NAND是并行接口的NAND FLASH…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是JESD230标准. 众所周知,最早也最流行的Raw NAND接口标准是ONFI标准,痞子衡在 并行接口NAND标准(ONFI)及SLC Raw NAND简介 里详细介绍过ONFI 1.0,很多知名NAND厂商(Hynix.Intel.Micron.Phison.Sony.ST)都是ONFI标准的制定者,但发展到高速DDR NAND的时候出现了一个与ONFI分庭抗礼的标准Toggle DDR,这个Toggle DDR标准是由Sams…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是CFI标准及SLC Parallel NOR. NOR Flash是嵌入式世界里最常见的存储器,常常内嵌在微控制器里(Parallel型)或外置作为内存扩展(Serial型),作为代码存储器.对于嵌入式开发而言,NOR主要分为两大类:Serial NOR.Parallel NOR,最早出现的NOR是Parallel NOR,后来为了简化引脚数,逐渐发展出了Serial NOR,目前的格局是Serial NOR主要占据低容量NOR市场…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔Kinetis系列MCU的KBOOT形态. 痞子衡在前一篇文章里简介了 KBOOT架构,我们知道KBOOT是一个完善的Bootloader解决方案,这个解决方案主要设计用于Kinetis芯片上,目前Kinetis芯片起码有上百种型号,KBOOT在这上百种Kinetis芯片里存在的形式并不是完全一样的,KBOOT主要有三种存在形式(ROM Bootloader.Flashloader.Flash-Resident Bootlo…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式里数据差错控制技术-重复校验. 在嵌入式应用里,除了最核心的数据处理外,我们还会经常和数据传输打交道.数据传输需要硬件传输接口的支持,串行接口由于占用引脚少的优点目前应用比并行接口广泛,常用的串行接口种类非常多,比如UART,SPI,I2C,USB等,在使用这些接口传输数据时避不可免会遇到一个问题,如果传输过程中遇到未知硬件干扰发生bit错误怎么办? 痞子衡今天给大家讲的就是数据传输过程中用于差错检测的最简单的方法,即重复校验法…
今天是Git系列课程第四课,上一课我们在Git空间里做了一些文件改动并且知道了如何利用Git查看这些变动,今天痞子衡要讲的是将这些变动提交到Git本地仓库前的准备工作. Git仓库目录下的文件改动操作默认都发生在Git工作区内,Git并不会主动管理.如果希望Git能够管理这些变动,你需要主动通知Git.共有3种通知Git的命令(git add/rm/mv),痞子衡为大家一一讲解. 1.将工作区文件改动添加到暂存区git add git add是第一种通知Git命令,这个命令用于告诉Git我们新增…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的性能. 在前面的文章 i.MXRTxxx微控制器概览 里,痞子衡给大家简介过恩智浦半导体在2018年推出的全新跨界微控制器i.MX RTxxx系列,该系列第一款芯片i.MXRT600搭载一颗Cortex-M33控制内核和一颗Tensilica HiFi4 DSP处理内核,该芯片可在超低功耗边缘处理应用中实现高效本地音频预处理.沉浸式3D音频播放和支持语音的体验.今天痞子衡先为大家实测一下其Cor…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT1170 Raw NAND启动时间. 关于i.MXRT1170这颗划时代的MCU,痞子衡去年10月在其刚发布的时候,专门写过一篇文章介绍过其特点(详见 <终于可以放开聊一聊i.MXRT1170这颗划时代MCU了>),眼看着其上市日期越来越近了,恩智浦软硬件技术支持团队也正在紧锣密鼓地开发SDK以及参考设计.因为官方首次在i.MXRT1170 EVK板上(Rev.B)放了一片旺宏的Raw NAND芯片,而i.MX…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的新品i.MXRT500. 自2018年i.MXRTxxx系列首款芯片i.MXRT600(主打智能语音市场)问世以来,近两年时间这个系列一直没有再出新品,这其实是可以理解的,毕竟i.MXRTxxx系列走的不是通用市场路线,无法按照通用MCU产品那样以每年推2-3款型号的固定节奏来立项.不过就在上个周末,NXP悄悄上线了新一款型号i.MXRT500,这是个主打智能可穿戴市场的MCU.今天痞子衡就和大…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是导致串行NOR Flash在i.MXRT下无法正常下载/启动的常见因素之SFDP. i.MXRT系列MCU发布已两年多了,基于i.MXRT的客户产品也越来越多,可以说是全面开花了.痞子衡作为i.MXRT产品线的系统应用工程师,早期的时候还可以尽情做参考设计,现在基本大量时间都被客户支持占据了. 因为i.MXRT系列都没有内置Flash(RT1064, RT1024等SIP型号除外),因此为其搭配一块串行NOR Flash去启动是客户…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是J-Link工具下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行NOR Flash XIP调试原理>一文中,痞子衡简单提了一下串行NOR Flash下载算法的概念,并没有介绍具体设计细节,关于NOR Flash下载算法每个IDE/工具都有自己的一套设计,虽然基本设计理念是一样的,但是细节方面还是有区别,今天痞子衡就来细聊J-Link下的NOR Flash下载算法: 一.J-Link各版本…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是IAR开发环境下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行NOR Flash XIP调试原理>一文中,痞子衡简单提了一下串行NOR Flash下载算法的概念,并没有介绍具体设计细节,关于NOR Flash下载算法每个IDE都有自己的一套设计,虽然基本设计理念是一样的,但是细节方面还是有区别.在前面的文章里,痞子衡分别介绍过<J-Link下算法设计>.<Keil MD…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE下SDK工程导入与workspace管理机制. MCUXpresso IDE是恩智浦软件团队倾注很大心血研发的免费集成开发环境,基本上一般MCU开发IDE有的功能它都有,一般IDE没有的功能它也有.但是酒香也怕巷子深,网上关于MCUXpresso IDE教程太少,很多人连MCUXpresso IDE基本操作都不熟练,也就更谈不上去接触它功能强大的一面,工具推广任重道远,痞子衡且去做这个布道师吧. 今天痞子…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是国内RISC-V内核MCU厂商. 虽然RISC-V风潮已经吹了好几年,但2019年才是其真正进入主流市场的元年,最近国内大量芯片公司崛起,其中有很多公司想在RISC-V新赛道有一番作为,毕竟ARM内核早已是红海,而RISC-V尚处于蓝海.今天痞子衡就为大家盘点一下发布过RISC-V MCU产品(不一定已量产)的厂商: 注:本文会持续更新,欢迎大家留言告诉我新晋国内RISC-MCU厂商以及产品. 一.核芯互联 璇玑CLE 璇玑CLE系…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是国内Cortex-M内核MCU厂商高性能产品. 在8/16位中低端MCU领域,国内厂商的本土化产品设计以及超低价特点,使得其与国外大厂竞争时是有优势的,因此国内厂商份额相当之高.但在32位中高性能MCU领域,国外大厂仍有一定的技术领先优势,尤其是高性能MCU产品,国内厂商还需继续追赶. 近些年随着国内大批MCU厂商的崛起(造芯热潮),ARM Cortex-M市场已不再是那几个国外大厂的江湖一统,国产Cortex-M内核MCU的出货量…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是在串口波特率识别实例里逐步展示i.MXRT上提升代码执行性能的十八般武艺. 恩智浦 MCU SE 团队近期一直在加班加点赶 SBL 项目(解决客户产品 OTA 需求),这个项目里集成了 ISP 本地升级(UART/USB)功能,其中 UART 口下载升级实现里加入了自动波特率识别支持,具体识别方法见 <串口(UART)自动波特率识别程序设计与实现(中断)> 一文,这一套 ISP 代码其实是移植于 i.MXRT Flashloade…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso Config Tools三大件(Pins, Clocks, Peripherals). 不知道大家有没有这样的感受,现在的 MCU 芯片复杂度越来越高了,引脚上百个,时钟系统让人眼花缭乱,外设寄存器更是一大堆,芯片参考手册长达几千页,对于软件开发工程师来说,底层开发难度真的越来越大(说到这,有没有怀念 AT89C51 启蒙单片机的单纯). 当然大型 MCU 厂商一般都会同步推出 SDK 包来缓解软件开发工程师的…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是PyQt GUI构建工具Qt Designer. 痞子衡开博客至今已有好几年,一直以嵌入式开发相关主题的文章为主线,偶尔穿插一些其他技术或工具的介绍,前段时间因为要做一个跟恩智浦MCU启动相关的上位机工具 NXP-MCUBootUtility,网上搜索对比了几个Python下的GUI框架,最终选择了wxPython这个成熟稳定的GUI库,从而接触到wxFormBuilder这个配套wxPython使用的GUI构建工具.苦于网上关于该…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是wxPython GUI构建工具wxFormBuilder. 一.手工代码布局GUI界面的烦恼 如果你曾经设计过上位机软件GUI界面,初始阶段一定是纯手工代码布局GUI界面上的各个控件,相信你肯定遇到过如下烦恼: 控件类型较难找:UI界面里有很多控件类型,纯手工写代码需要翻看文档一个个去查找这些控件的名字与用法. 尺寸位置难调整:如果界面上已经布了多个控件,想要整体去调整这些控件的尺寸与位置是一件头疼的事. 效果查看不实时:每新添加…
NXP MCU Boot Utility English | 中文 1 软件概览 1.1 介绍 NXP-MCUBootUtility是一个专为NXP MCU安全加密启动而设计的工具,其特性与NXP MCU里BootROM功能相对应,目前主要支持i.MXRT系列MCU芯片,与NXP官方的标准安全加密配套工具集(OpenSSL, CST, sdphost, blhost, elftosb, BD, MfgTool2)相比,NXP-MCUBootUtility是一个真正的一站式工具,一个工具包含NXP…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的性能. 在前面的文章 i.MXRT微控制器概览 里,痞子衡给大家简介过恩智浦半导体在2017年推出的新一代跨界微控制器i.MX RT系列,该系列第一款芯片i.MXRT105x性能完爆同时期市面上所有的微控制器,官方公布的CoreMark跑分高达3020,有人可能不明白这个数字意味着什么,作为对比,我们再来看看意法半导体最流行的芯片STM32F103RB,它的CoreMark是108(此处应该有类似M…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Serial Downloader模式. 在上一篇文章 Boot配置(BOOT Pin, eFUSE) 里痞子衡为大家介绍了i.MXRT Boot的行为配置,其中第一节里讲了Boot有三种行为模式:Serial Downloader.Boot From Fuses.Internal Boot,后两种是核心的加载启动行为模式,而Serial Downloder看起来是个次要的模式,那么Serial D…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Flashloader. 在上一篇文章 Serial Downloader模式(sdphost, mfgtool) 里痞子衡为大家介绍了i.MXRT Boot的Serial Downloader模式,这种模式主要是用来引导启动Flashloader,那么Flashloader到底具有哪些功能?这是本篇文章痞子衡要为大家解惑的主题. 痞子衡在前面提过Flashloader程序主要是用来将你的Appli…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的eFUSE. 在i.MXRT启动系列第二篇文章 Boot配置(BOOT Pin, eFUSE) 里痞子衡提到了eFUSE,部分Boot配置都存储在eFUSE memory里,但是对eFUSE的介绍仅仅浅尝辄止,没有深入,今天痞子衡就为大家再进一步介绍eFUSE. eFUSE是i.MXRT里一块特殊的存储区域,用于存放全部芯片配置信息,其中有一部分配置信息和Boot相关.这块特殊存储区域并不在ARM的…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Bootable image格式与加载过程. 在i.MXRT启动系列第三篇文章 Serial Downloader模式(sdphost, mfgtool) 里痞子衡在介绍使用sdphost引导启动Flashloader时使用过一个名叫ivt_flashloader.bin的image文件,其实这个image文件就是Bootable image的一种,虽然痞子衡简单分析过ivt_flashloader…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Raw NAND启动. 前面铺垫了七篇启动系列文章,终于该讲具体Boot Device了,我们知道i.MXRT支持的外部Boot Device共有6种(Serial NOR&NAND.Parallel NOR&NAND.SD/eMMC.SPI NOR/EEPROM),其中最常用的是Serial NOR&NAND,目前各大社区里讨论最火的也是Serial NOR/NAND启动,有不少大神…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Parallel NOR启动. 上一篇讲i.MXRT从Raw NAND启动的文章 从Raw NAND启动 一经放出,深入广大网友喜爱,短时间内阅读量飙升,这让痞子衡深入鼓舞,所以趁热打铁继续把从Parallel NOR启动也顺便一起讲了,为什么说是顺便呢?因为Parallel NOR与Raw NAND都是并行接口,属于同一门派,且这两种外存设备在i.MXRT内部是通过同一IP(SEMC)实现底层接口…