痞子衡嵌入式全部原创文章 - 汇总索引

--------------------------------------------------------------------------------------

职场经验与见闻感悟

痞子衡在嵌入式行业也摸打滚爬了不少年,有一些个人经验可以给大家参考。所谓他山之石可以攻玉,希望痞子衡的经验对大家的职场之路有所帮助。

职场经验篇(持续更新中...4/4)

职场上有效地向师傅请教问题的几点建议
关于做技术的工作态度方面的几点建议
工作多年的工程师且看这四条进阶之路
读工程师岗位工作31年退休的同事离职信有感

博文总结篇(持续更新中...8/8)

Farewell, 我的写博故事2016-2019
Farewell, 我的写博故事2020
博文总量终于追平了中文Kinetis博客第一人jicheng0622
博客园积分排名终于挤进了前3000名榜单
Farewell, 我的写博故事2021
入选了2021年度与非网(eefocus)星选创作者Top10
Farewell, 我的写博故事2022
拿到了CSDN博客专家实体证书

社区活动篇(持续更新中...3/3)

被邀请做贸泽电子&与非网联合推出的《对话工程师》节目嘉宾
被邀请做科锐国际旗下数科同道主办的技术沙龙嘉宾
被邀请做嵌入式联盟主办的职场奇葩说(上海站)辩手

NXP岁月篇(持续更新中...6/6)

当选了2019年度恩智浦官方论坛i.MXRT板块的顶级贡献者
关于恩智浦入驻B站的一些思考
三个小项目陆续上线恩智浦官方Github
为2021 TencentOS Tiny AIoT应用创新大赛做了场直播培训
在恩智浦度过职业生涯第一个十年
AppCodeHub - 一站网罗恩智浦MCU应用程序

--------------------------------------------------------------------------------------

嵌入式半月刊

从2020年2月份开始我将为大家带来《痞子衡嵌入式半月刊》,分享嵌入式领域有用有趣的工具或项目以及一些热点新闻。

做这个半月刊主要是受硬汉哥的《安富莱嵌入式周报》 影响,硬汉哥每周都会整理这一周嵌入式领域发生的热点新闻分享给大家,而我这个半月刊主要侧重收集嵌入式领域有用的工具或项目。另外我也受削微寒女神的 《HelloGitHub》项目的影响,希望把这个嵌入式半月刊做成一个开源项目,集众人之力。

《痞子衡嵌入式半月刊》项目地址是 pzh-mcu-bi-weekly,大家如果知道或者发现好的嵌入式工具或项目,欢迎给我提 issue。

2020庚子鼠年

第 001 期 | 第 002 期 | 第 003 期 | 第 004 期 | 第 005 期 | 第 006 期
第 007 期 | 第 008 期 | 第 009 期 | 第 010 期 | 第 011 期 | 第 012 期
第 013 期 | 第 014 期 | 第 015 期 | 第 016 期 | 第 017 期 | 第 018 期
第 019 期 | 第 020 期 | 第 021 期 | 第 022 期 | 第 023 期 | 第 024 期

2021辛丑牛年

第 025 期 | 第 026 期 | 第 027 期 | 第 028 期 | 第 029 期 | 第 030 期
第 031 期 | 第 032 期 | 第 033 期 | 第 034 期 | 第 035 期 | 第 036 期
第 037 期 | 第 038 期 | 第 039 期 | 第 040 期 | 第 041 期 | 第 042 期
第 043 期 | 第 044 期 | 第 045 期 | 第 046 期 | 第 047 期 | 第 048 期

2022壬寅虎年

第 049 期 | 第 050 期 | 第 051 期 | 第 052 期 | 第 053 期 | 第 054 期
第 055 期 | 第 056 期 | 第 057 期 | 第 058 期 | 第 059 期 | 第 060 期
第 061 期 | 第 062 期 | 第 063 期 | 第 064 期 | 第 065 期 | 第 066 期
第 067 期 | 第 068 期 | 第 069 期 | 第 070 期 | 第 071 期 | 第 072 期

2023癸卯兔年

第 073 期 | 第 074 期 | 第 075 期 | 第 076 期 | 第 077 期 | 第 078 期
第 079 期 | 第 080 期

--------------------------------------------------------------------------------------

嵌入式从业者应知应会知识点

嵌入式开发需要掌握的知识点非常多,不同的技术方向有不同的知识侧重点,本系列试图整理总结嵌入式开发(尤其是软件)中那些必须要会的知识点,试图给你呈现一幅嵌入式界的清明上河图,本系列计划连更十年,且让时间给答案。

计算机原理篇(持续更新中...1/2)

不可不知的计算机原理知识(1)- 整数表示(原码,反码,补码)
不可不知的计算机原理知识(2)- 浮点数表示

嵌入式碎片集(持续更新中...9/10)

嵌入式里堆栈原理及其纯C实现
ARM Cortex-M内核下字节对齐访问问题
嵌入式里通用微秒(microseconds)计时函数框架设计与实现
嵌入式里串口(UART)自动波特率识别程序设计与实现(中断)
嵌入式里串口(UART)自动波特率识别程序设计与实现(轮询)
嵌入式Cortex-M中标准的三重中断控制设计
嵌入式Cortex-M裸机环境下临界区保护的三种实现
嵌入式Cortex-M中断向量表原理及其重定向方法
嵌入式Cortex-M中断向量表对齐原则的深入研究
嵌入式Cortex-M系统中断延迟及其测量方法简介

代码规范篇(持续更新中...4/4)

开源软件协议(MIT/BSD/Apache/LGPL/MPL/GPL)
飞思卡尔半导体软件开发C代码规范
恩智浦SDK驱动代码风格、模板、检查工具
恩智浦SDK驱动代码风格检查工具预览版

数据差错控制篇(持续更新中...3/6)

常用的数据差错控制技术(1)- 重复校验(Repetition Code)
常用的数据差错控制技术(2)- 奇偶校验(Parity Check)
常用的数据差错控制技术(3)- 和校验(Checksum)
常用的数据差错控制技术(4)- 循环冗余校验(CRC)
常用的数据差错控制技术(5)- 汉明码校验(Hamming Code SEC-DED)
常用的数据差错控制技术(6)- 博斯-乔赫里-霍克文黑姆码校验(BCH Code)

Keil MDK知识篇(持续更新中...2/2)

一个奇怪的Keil MDK下变量链接强制对齐报错问题(--legacyalign)
在MDK开发环境下将关键函数重定向到RAM中执行的几种方法

IAR EWARM知识篇(持续更新中...12/12)

在IAR开发环境下为工程开启CRC完整性校验功能的方法
探析开启CRC完整性校验的IAR工程生成.out和.bin文件先后顺序
一次利用IAR自带CRC完整性校验功能的实践(为KBOOT加BCA)
在IAR开发环境下将关键函数重定向到RAM中执行的三种方法
在IAR开发环境下将整个源文件代码重定向到任意RAM中的方法
在IAR开发环境下RT-Thread工程自定义函数段重定向失效分析
深扒IAR启动函数流程及其__low_level_init设计对函数重定向的影响
深扒IAR启动函数流程之段初始化函数__iar_data_init3实现
深扒IAR启动函数流程之段初始化实现中可用的压缩选项(zeros/packbits/lz77)
IAR内部C-SPY调试组件配套宏文件(.mac)用法介绍
浅析IAR下调试信息输出机制之硬件UART外设
浅析IAR下调试信息输出机制之半主机(Semihosting)

JLink工具知识篇(持续更新中...1/1)

JLink Script文件基础及其在IAR下调用方法

存储器冷知识篇(持续更新中...3/3)

国内外串行NOR Flash厂商官网Cross Reference功能使用体验
存储器大厂Micron的NOR Flash芯片特殊丝印设计(FBGA代码)
主流QuadSPI NOR Flash厂商关于QE位与IO功能复用关联设计

厂商盘点篇(持续更新中...3/3)

盘点国内Cortex-M内核MCU厂商高性能产品(2021版 - 主频不低于96MHz)
盘点国内Cortex-M内核MCU厂商高主频产品(2023版 - 主频不低于144MHz)
盘点国内车规级MCU厂商(2020年及之前发布产品)

--------------------------------------------------------------------------------------

恩智浦MCU开发环境与工具相关知识

恩智浦半导体的MCU产品线非常之广,其配套软件开发工具也非常强大,基本可以涵盖项目开发全过程所需要的各种工具,利用好这些工具可以大大加速项目开发。

MCUXpresso SDK篇(持续更新中...1/1)

恩智浦MCUXpresso SDK在GitHub上线了

MCUXpresso IDE篇(持续更新中...13/13)

MCUXpresso IDE下SDK工程导入与workspace管理机制
MCUXpresso IDE下添加新路径下源文件进工程编译的方法
MCUXpresso IDE下添加C++源文件进SDK工程编译的方法
MCUXpresso IDE下SDK工程在Build配置上与IAR,MDK差异
MCUXpresso IDE下工程链接文件配置管理与自动生成机制
MCUXpresso IDE下将应用程序RW段分散链接的几种方法
MCUXpresso IDE下将关键函数重定向到RAM中执行的几种方法
MCUXpresso IDE下高度灵活的FreeMarker链接文件模板机制
MCUXpresso IDE下将源码制作成Lib库方法及其与IAR,MDK差异
MCUXpresso IDE下设置代码编译优化等级的几种方法
MCUXpresso IDE下生成镜像文件的方法及其与IAR,MDK差异
MCUXpresso IDE下使用J-Link下载算法在Flash调试注意事项
MCUXpresso IDE下在线调试时使用不同复位策略的现象总结

MCUXpresso Config Tools篇(持续更新中...1/1)

MCUXpresso Config Tools初体验(Pins, Clocks, Peripherals)

--------------------------------------------------------------------------------------

恩智浦MCX系列微控制器相关知识

恩智浦半导体于2022年11月发布MCX系列MCU,分为四大子系列N/A/W/L,可涵盖任何终端设备,从消费者到工业以及介于两者之间的一切。其中N系列首批产品:MCX N94x(主频 150MHz 双核 Cortex-M33,N1-16 系列 NPU,CoolFlux BSP32 型音频处理单元)和MCX N54x,专为简化安全智能边缘应用(包括物联网和工业应用)打造。

本系列文章会逐一介绍MCX系列微控制器开发相关知识。

芯闻篇(持续更新中...1/1)

低功耗&高性能边缘人工智能应用的新答案 - MCXN947

调试篇(持续更新中...)

启动篇(持续更新中...)

--------------------------------------------------------------------------------------

恩智浦i.MX RT三位数系列微控制器相关知识

恩智浦半导体于2018年10月发布的i.MX RT三位数系列开启了ML/AI MCU的新纪元,其第一款芯片i.MX RT685,搭载一颗主频高达300MHz的Cortex-M33内核,以及一颗主频高达600MHz的Cadence Tensilica HiFi4 DSP。主要面向实时机器学习(ML)/人工智能(AI)应用。

芯闻篇(持续更新中...1/1)

为下一代智能可穿戴设备而生 - i.MXRT500

介绍篇(持续更新中...2/2)

恩智浦i.MX RTxxx系列MCU特性那些事(1)- 概览
恩智浦i.MX RTxxx系列MCU特性那些事(2)- RT685SFVK性能实测(Dhrystone)

启动篇(持续更新中...8/12)

恩智浦i.MX RTxxx系列MCU启动那些事(1)- Boot简介
恩智浦i.MX RTxxx系列MCU启动那些事(2)- Boot配置(ISP Pin/OTP)
恩智浦i.MX RTxxx系列MCU启动那些事(3)- Serial ISP模式(blhost)
恩智浦i.MX RTxxx系列MCU启动那些事(4)- OTP及其烧写方法
恩智浦i.MX RTxxx系列MCU启动那些事(5)- Bootable image格式与加载(elftosb/.json)
恩智浦i.MX RTxxx系列MCU启动那些事(6)- 从Serial(Multi-IO) NOR启动
恩智浦i.MX RTxxx系列MCU启动那些事(6.A)- FlexSPI NOR启动时间(RT500)
恩智浦i.MX RTxxx系列MCU启动那些事(6.B)- FlexSPI NOR连接方式大全(RT600)
恩智浦i.MX RTxxx系列MCU启动那些事(6.B)- FlexSPI NOR连接方式大全(RT500)
恩智浦i.MX RTxxx系列MCU启动那些事(7)- 从SD/eMMC启动
恩智浦i.MX RTxxx系列MCU启动那些事(8)- 从Serial(1-bit SPI) NOR恢复启动
恩智浦i.MX RTxxx系列MCU启动那些事(9)- 动态解密安全启动需知(OTFAD)

经验篇(持续更新中...12/12)

类别 文章
系统启动 一种i.MXRT下从App中进入ROM串行下载模式的方法 快速定位i.MXRT600板级设计ISP[2:0]启动模式引脚上电时序问题的方法 i.MXRT连接特殊Octal Flash时(OPI DTR模式下反转字节序)下载与启动注意事项(以MX25UM51245为例) 了解i.MXRTxxx系列ROM中灵活的串行NOR Flash启动硬复位引脚选择 深扒i.MXRTxxx系列ROM中集成的串行NOR Flash启动SW Reset功能及其应用场合 揭秘i.MXRTxxx系列上串行NOR Flash双程序可交替启动设计
片内存储 对比i.MXRT与LPC在RTC外设GPREG寄存器使用上的异同 从功耗测试角度了解i.MXRTxxx系列片内SRAM分区电源控制
下载算法 轻松为i.MXRT设计更新Segger J-Link Flash下载算法文件(i.MXRT600为例)
在线升级 了解i.MXRTxxx系列ROM API及其与i.MXRT1xxx系列的差异 解锁i.MXRTxxx上FlexSPI模块自带的地址重映射(Remap)功能
仿真调试 揭秘i.MXRT600的ISP模式下用J-Link连接后PC总是停在0x1c04a的原因(Debug Mailbox)
通用外设
外存扩展
性能分析
图形显示
安全可靠

项目篇(持续更新中...1/1)

RT-MFB - 一种灵活的i.MXRT下多串行NOR Flash型号选择的量产方案

标准篇(持续更新中...1/1)

微处理器CPU性能测试基准(Dhrystone)

--------------------------------------------------------------------------------------

恩智浦i.MX RT四位数系列微控制器相关知识

恩智浦半导体于2017年10月发布的i.MX RT四位数系列开启了高性能MCU的新纪元,其第一款芯片i.MX RT1052,搭载Cortex-M7内核,主频高达600MHz,CoreMark跑分高达3020。

资料篇(全1篇已完结)

史上最强i.MX RT学习资源汇总(持续更新中...)

芯闻篇(持续更新中...1/1)

终于可以放开聊一聊i.MXRT1170这颗划时代MCU了

介绍篇(全4篇已完结)

恩智浦i.MX RT1xxx系列MCU特性那些事(1)- 概览
恩智浦i.MX RT1xxx系列MCU特性那些事(2)- RT1052DVL6性能实测(CoreMark)
恩智浦i.MX RT1xxx系列MCU特性那些事(3)- 命名规则
恩智浦i.MX RT1xxx系列MCU特性那些事(4)- RT105x选型

硬件篇(持续更新中...7/7)

恩智浦i.MX RT1xxx系列MCU硬件那些事(1)- 官方EVK简介
恩智浦i.MX RT1xxx系列MCU硬件那些事(2.1)- 玩转板载OpenSDA,Freelink调试器
恩智浦i.MX RT1xxx系列MCU硬件那些事(2.2)- 在串行NOR Flash XIP调试原理
恩智浦i.MX RT1xxx系列MCU硬件那些事(2.3)- 串行NOR Flash下载算法(J-Link工具篇)
恩智浦i.MX RT1xxx系列MCU硬件那些事(2.4)- 串行NOR Flash下载算法(Keil MDK篇)
恩智浦i.MX RT1xxx系列MCU硬件那些事(2.5)- 串行NOR Flash下载算法(IAR EWARM篇)
恩智浦i.MX RT1xxx系列MCU硬件那些事(2.6)- 串行NOR Flash下载算法(MCUXpresso IDE篇)

工具篇(持续更新中...21/21)

恩智浦SDK代码风格检查工具MCUXpresso-SDK-CodingStyleChecker
恩智浦MCU安全加密启动一站式工具NXP-MCUBootUtility用户指南
恩智浦MCU安全加密启动一站式工具NXP-MCUBootUtility常见问题
开启NXP-MCUBootUtility工具的HAB签名功能 - CST(中英双语)
开启NXP-MCUBootUtility工具的HAB加密功能 - CST(中英双语)
开启NXP-MCUBootUtility工具的BEE加密功能 - image_enc
恩智浦i.MX RT系列MCU量产神器NXP-MCUBootFlasher用户指南
恩智浦i.MX RT系列MCU量产神器NXP-MCUBootFlasher常见问题
如果i.MX RT是一匹悍马,征服它时别忘了用马镫MCUBootUtility
MCUBootUtility v2.0.0来袭,i.MXRT1010哪里跑
MCUBootUtility v2.3.0发布,这次不再放过任何一款Flash
MCUBootUtility v2.3.1发布,解决了长久以来非空flash可能无法下载的问题
MCUBootUtility v2.4.0发布,轻松更换Flashloader文件
MCUBootUtility v3.0.0发布,开始支持LPC, Kinetis啦
MCUBootUtility v3.3.0发布,可配合SBL项目使用
MCUBootUtility v3.4.0发布,支持串行NAND
MCUBootUtility v3.5.0发布,支持串行NOR的ECC及双程序启动
MCUBootUtility v4.0.0发布,开始支持MCX啦
MCUBootUtility v5.0.0发布,初步支持i.MXRT1180
如果你正在量产i.MX RT产品,不妨试试这款神器RT-Flash
MCUBootFlasher v3.0.0发布,为真实的产线操作场景而生

启动篇(持续更新中...19/25)

恩智浦i.MX RT1xxx系列MCU启动那些事(1)- Boot简介
恩智浦i.MX RT1xxx系列MCU启动那些事(2)- Boot配置(BOOT Pin/eFUSE)
恩智浦i.MX RT1xxx系列MCU启动那些事(3)- Serial Downloader模式(sdphost/MfgTool)
恩智浦i.MX RT1xxx系列MCU启动那些事(4)- Flashloader初体验(blhost)
恩智浦i.MX RT1xxx系列MCU启动那些事(5)- 再聊eFUSE及其烧写方法
恩智浦i.MX RT1xxx系列MCU启动那些事(6)- Bootable image格式与加载(elftosb/.bd)
恩智浦i.MX RT1xxx系列MCU启动那些事(7)- 静态解密安全启动需知(HAB)
恩智浦i.MX RT1xxx系列MCU启动那些事(8)- 从Raw NAND启动
恩智浦i.MX RT1xxx系列MCU启动那些事(8.A)- SEMC NAND启动时间(RT1170)
恩智浦i.MX RT1xxx系列MCU启动那些事(9)- 从Parallel NOR启动
恩智浦i.MX RT1xxx系列MCU启动那些事(10)- 从Serial NAND启动
恩智浦i.MX RT1xxx系列MCU启动那些事(10.A)- FlexSPI NAND启动时间(RT1170)
恩智浦i.MX RT1xxx系列MCU启动那些事(11)- 从Serial NOR启动
恩智浦i.MX RT1xxx系列MCU启动那些事(11.A)- FlexSPI NOR启动时间(RT1170)
恩智浦i.MX RT1xxx系列MCU启动那些事(11.B)- FlexSPI NOR连接方式大全(RT1015/1020/1050)
恩智浦i.MX RT1xxx系列MCU启动那些事(11.B)- FlexSPI NOR连接方式大全(RT1060/1064(SIP))
恩智浦i.MX RT1xxx系列MCU启动那些事(11.B)- FlexSPI NOR连接方式大全(RT1010)
恩智浦i.MX RT1xxx系列MCU启动那些事(11.B)- FlexSPI NOR连接方式大全(RT1024(SIP))
恩智浦i.MX RT1xxx系列MCU启动那些事(11.B)- FlexSPI NOR连接方式大全(RT1160/1170)
恩智浦i.MX RT1xxx系列MCU启动那些事(12)- 从SD/eMMC启动
恩智浦i.MX RT1xxx系列MCU启动那些事(13)- 从Serial(1-bit SPI) EEPROM/NOR恢复启动
恩智浦i.MX RT1xxx系列MCU启动那些事(13.A)- LPSPI NOR启动时间(RT1170)
恩智浦i.MX RT1xxx系列MCU启动那些事(14)- 动态解密安全启动需知(BEE)
恩智浦i.MX RT1xxx系列MCU启动那些事(15)- 动态解密安全启动需知(OTFAD)
恩智浦i.MX RT1xxx系列MCU启动那些事(16)- 终极一站式工具(NXP-MCUBootUtility)

经验篇(持续更新中...79/83)

类别 文章
电源时钟 浅谈i.MXRT1xxx系列MCU时钟相关功能引脚的作用 浅谈i.MXRT10xx系列MCU外接24MHz晶振的作用
系统启动 理解i.MXRT1xxx上的XIP和Non-XIP App制作、下载、启动、调试上的差异 在i.MXRT1xxx上设计一个level2 bootloader实现App分散加载启动 使用i.MXRT1xxx ROM Flashloader工具生成bootable image的注意事项 IVT里的不同entry设置可能会造成i.MXRT1xxx系列启动App后发生异常跑飞 16MB以上NOR Flash使用不当可能会造成软复位后i.MXRT无法正常启动 导致串行NOR Flash在i.MXRT下无法正常下载/启动的常见因素之SFDP 导致串行NOR Flash在i.MXRT下无法正常下载/启动的常见因素之QE bit 导致串行NOR Flash在i.MXRT下无法正常下载/启动的常见因素之Write Protection i.MXRT中不支持DQS的FlexSPI引脚组连接串行NOR Flash下载与启动注意事项 深入i.MXRT1050系列ROM中串行NOR Flash启动初始化流程 了解i.MXRT1060系列ROM中串行NOR Flash启动初始化流程优化点 自识别特性(Auto Probe)可以让i.MXRT1060无需FDCB也能从NOR Flash启动 从头开始认识i.MXRT启动头FDCB里的lookupTable 在i.MXRT启动头FDCB里调整Flash工作频率也需同步设Dummy Cycle(以IS25WP128D为例) 在i.MXRT启动头FDCB里使能串行NOR Flash的DTR模式 在i.MXRT1170上启动含DQS的Octal Flash可不严格设Dummy Cycle(以MT35XU512为例) 在i.MXRT1050上启动含DQS的Hyper Flash可不严格设Dummy Cycle(以S26KS512为例) 在i.MXRT启动头FDCB里使能串行NOR Flash的Continuous read模式 串行NOR Flash的Continuous read模式下软复位后i.MXRT无法启动问题解决方案之RESET# 串行NOR Flash的Continuous read模式下软复位后i.MXRT无法启动问题解决方案之SW Reset 在i.MXRT启动头FDCB里使能串行NOR Flash的QPI/OPI模式 系统时钟配置不当会导致i.MXRT1xxx系列下OTFAD加密启动失败 FlexSPI复位方式不当会导致i.MXRT系列下OTFAD加密启动失败 揭秘i.MXRT1060,1010上串行NOR Flash冗余程序启动设计 揭秘i.MXRT1170上串行NOR Flash双程序可交替启动设计 聊聊系统看门狗WDOG1在i.MXRT1xxx系统启动中的应用及影响 利用i.MXRT1xxx系列ROM集成的DCD功能可轻松配置指定外设 聊聊i.MXRT1xxx上第三级启动保障 - SDMMC manufacture模式 借助i.MXRT10xx系列INIT_VTOR功能可以缩短程序热重启时间
片内存储 在SBL项目实战中妙用i.MXRT1xxx里SystemReset不复位的GPR寄存器 i.MXRT1010,1170型号上不一样的SNVS GPR寄存器读写控制设计 改动i.MXRT1xxx里IOMUXC_GPR寄存器保留位可能会造成系统异常 原来i.MXRT1xxx系列里也暗藏了Product ID寄存器 了解i.MXRT1xxx系列里负责动态分配ITCM/DTCM/OCRAM大小的FlexRAM模块
下载算法 一个关于Segger J-Flash在Micron Flash固定区域下载校验失败的故事(SR寄存器BP[x:0]位)
在线升级 利用i.MXRT1xxx系列ROM提供的FlexSPI driver API可轻松IAP 其实i.MXRT1050,1020,1015系列ROM也提供了FlexSPI driver API 其实i.MXRT下改造FlexSPI driver同样支持AHB方式去写入NOR Flash 探讨i.MXRT下FlexSPI driver实现Flash编程时对于中断支持问题 借助Serial Plot软件观测i.MXRT系列FlexSPI驱动Flash页编程执行时间分布 利用i.MXRT1060,1010上新增的FlexSPI地址重映射(Remap)功能可安全OTA 可通过USB Device Path来唯一指定i.MXRT设备进行ROM/Flashloader通信
仿真调试 IAR在线调试时设不同复位类型可能会导致i.MXRT下调试现象不一致(J-Link/DAPLink) Keil在线调试时设不同复位类型可能会导致i.MXRT下调试现象不一致(J-Link/DAPLink) 揭秘i.MXRT1170上用J-Link连接复位后PC总是停在0x223104的原因 IAR环境下无法直接下载调试i.MXRT分散链接工程的解决方案(宏文件.mac+双Flashloader)
通用外设 以i.MXRT1xxx的GPIO模块为例谈谈中断处理函数(IRQHandler)的标准流程 对比恩智浦全系列MCU(包含Kinetis/LPC/i.MXRT/MCX)的GPIO电平中断设计差异 聊聊i.MXRT1xxx上的普通GPIO与高速GPIO差异及其用法 实测i.MXRT1010上的普通GPIO与高速GPIO极限翻转频率 再测i.MXRT1060,1170上的普通GPIO与高速GPIO极限翻转频率 聊聊i.MXRT1170双核下不同GPIO组的访问以及中断设计 介绍i.MXRT定时器PIT的多通道链接模式及其在coremark测试工程里的应用
双核通信 大话双核i.MXRT1170之Cortex-M7与Cortex-M4互相激活之道 大话双核i.MXRT1170之单独在线调试从核工程的方法(IAR篇) 大话双核i.MXRT1170之在线联合调试双核工程的三种方法(IAR篇)
外存扩展 同一厂商不同系列Flash型号下Dummy Cycle设置方法可能有差异(以IS25LP064A为例) 关于i.MXRT中FlexSPI外设lookupTable里配置Normal read的一个小误区(Dummy Cycle不可设0) 理解i.MXRT中FlexSPI外设lookupTable里配置访问行列混合寻址Memory的参数值 串行NAND Flash的两大特性(坏块,读等待)导致其在i.MXRT FlexSPI下无法XiP i.MXRT中FlexSPI外设不常用的读选通采样时钟源 - loopbackFromSckPad 在i.MXRT1060-EVK上利用memtester程序给SDRAM做压力测试 分享一个i.MXRT系列配套DRAM压力测试上位机工具(i.MXRT DRAM Tester)
性能分析 链接函数到8字节对齐地址或可进一步提升i.MXRT1xxx内核执行性能 i.MXRT中FlexSPI外设对AHB Burst Read特性的支持 i.MXRT全系列下FlexSPI外设AHB Master ID定义与AHB RX Buffer指定的异同 实抓Flash信号波形来看i.MXRT的FlexSPI外设下AHB读访问情形(无缓存) 实抓Flash信号波形来看i.MXRT的FlexSPI外设下AHB读访问情形(有预取) 实抓Flash信号波形来看i.MXRT的FlexSPI外设下AHB读访问情形(全加速) 在串口波特率识别实例里逐步展示i.MXRT上提升代码执行性能的十八般武艺 利用GPIO模块来测量i.MXRT1xxx的系统中断延迟时间 对比MbedTLS算法库纯软件实现与i.MXRT上DCP,CAAM硬件加速器实现性能差异
图形显示 记录i.MXRT1060驱动LCD屏显示横向渐变色有亮点问题解决全过程(提问篇) 记录i.MXRT1060驱动LCD屏显示横向渐变色有亮点问题解决全过程(解答篇) 降低刷新率是定位LCD花屏显示问题的第一大法(i.MXRT1170, 1280x480 LVDS)
安全可靠 简析i.MXRT1170 Cortex-M7 FlexRAM ECC功能特点、开启步骤、性能影响 简析i.MXRT1170 Cortex-M4 L-MEM ECC功能特点、开启步骤、性能影响 简析i.MXRT1170 XECC功能特点及其保护串行NOR Flash和SDRAM之道 揭秘i.MXRT1170 eFuse空间访问可靠性的保护策略(冗余与ECC) SNVS Master Key仅在i.MXRT10xx Hab关闭时才能用于DCP加解密 利用i.MXRT1xxx系列内部DCP引擎计算Hash值时需特别处理L1 D-Cache

项目篇(持续更新中...12/13)

kFlashFile - 一个基于Flash的掉电数据存取方案
RT-UFL - 一个适用全平台i.MXRT的超级下载算法设计
超级下载算法RT-UFL v1.0发布,附J-Link下安装教程
超级下载算法RT-UFL v1.0在MCUXpresso IDE下的使用
超级下载算法RT-UFL v1.0在IAR EW for Arm下的使用
超级下载算法RT-UFL v1.0在Keil MDK下的使用
超级下载算法RT-UFL v1.0在Segger Ozone下的使用
超级下载算法(RT-UFL)开发笔记(1) - 执行在不同CM内核下
超级下载算法(RT-UFL)开发笔记(2) - 识别当前i.MXRT型号
超级下载算法(RT-UFL)开发笔记(3) - 统一FlexSPI驱动访问
超级下载算法(RT-UFL)开发笔记(4) - 轮询Flash配置参数
超级下载算法(RT-UFL)开发笔记(5) - 动态调整FlashDevice内容
超级下载算法(RT-UFL)开发笔记番外(1) - JLinkScript妙用

标准篇(持续更新中...8/10)

微控制器CPU性能测试基准(EEMBC-CoreMark)
并行NAND接口标准(ONFI)及SLC Raw NAND简介
并行NAND互操作性标准(JESD230)
并行NOR接口标准(CFI-JESD68)及SLC Parallel NOR简介
串行EEPROM接口事实标准及SPI EEPROM简介
串行NOR接口标准(SFDP-JESD216)及QuadSPI NOR简介
高速串行NOR兼容性标准(xSPI-JESD251)及OctalSPI/HyperBus NOR简介
串行NOR Flash的DQS信号功能简介
串行NOR Flash的页编程模式对于量产效率的影响
内存读写正确性压力测试程序(memtester)

第三方篇(持续更新中...3/3)

2021 TencentOS Tiny AIoT应用创新大赛 - 初赛阶段的38个作品速览
把玩i.MXRT1062 TencentOS Tiny EVB_AIoT开发板(1) - 开发环境搭建与点灯
把玩i.MXRT1062 TencentOS Tiny EVB_AIoT开发板(2) - 在Flash调试及离线启动

--------------------------------------------------------------------------------------

飞思卡尔Kinetis系列和恩智浦LPC系列微控制器相关知识

飞思卡尔半导体(现恩智浦半导体)于2010年开始推出的Kinetis系列昭示着ARM Cortex-M MCU阵营又多了一个顶级厂商,其第一款芯片Kinetis K60,搭载Cortex-M4内核(也是业界第一款Cortex-M4内核产品),主频最高可达150MHz,性能可达1.25DMIPS/MHz。

Kinetis芯片家族发展至今(2017)已拓展至7大家族系列:K/L/E/V/EA/M/W,其中K/L系列主打通用市场,其余5个系列专攻细分领域。

恩智浦半导体最早于2003年便开始推出LPC系列MCU,但早期的产品LPC2000/3000系列属于ARM7/9内核的产品,直到2008年开始推出的LPC1800系列标志着恩智浦也加入了ARM Cortex-M MCU阵营,LPC18xx系列MCU,搭载Cortex-M3内核,主频最高可达180MHz。

LPC芯片家族发展至今(2022)出现过很多家族成员系列:800/1100/1200/1300/1500/1700/1800/2000/3000/4000/4300/54000/5500系列,其中800/1100/54000/5500系列是目前的主推产品系列。

Kinetis调试篇(持续更新中...1/3)

飞思卡尔Kinetis开发板OpenSDA调试器那些事(上)- 背景与架构
飞思卡尔Kinetis开发板OpenSDA调试器那些事(中)- 使用与修复
飞思卡尔Kinetis开发板OpenSDA调试器那些事(下)- 原理与开发

Kinetis启动篇(持续更新中...5/12)

飞思卡尔Kinetis系列MCU启动那些事(1)- KBOOT架构
飞思卡尔Kinetis系列MCU启动那些事(2)- KBOOT形态(ROM/Bootloader/Flashloader)
飞思卡尔Kinetis系列MCU启动那些事(3)- KBOOT配置(FOPT/BOOT Pin/BCA)
飞思卡尔Kinetis系列MCU启动那些事(4)- KBOOT通信外设(uart/spi/i2c/can/usb-hid)
飞思卡尔Kinetis系列MCU启动那些事(5)- KBOOT初级工具(blhost/bus_pal/KinetisFlashTool)
飞思卡尔Kinetis系列MCU启动那些事(6)- 从片内Flash启动
飞思卡尔Kinetis系列MCU启动那些事(7)- KBOOT高级工具(elftosb/QCBGenerator/embedded_host)
飞思卡尔Kinetis系列MCU启动那些事(8)- 从片外QSPI NOR Flash启动
飞思卡尔Kinetis系列MCU启动那些事(9)- KBOOT特性(完整性检测)
飞思卡尔Kinetis系列MCU启动那些事(10)- KBOOT特性(可靠升级)
飞思卡尔Kinetis系列MCU启动那些事(11)- KBOOT特性(ROM API)
飞思卡尔Kinetis系列MCU启动那些事(12)- KBOOT特性(Security)

LPC外设驱动篇(持续更新中...1/1)

恩智浦经典LPC系列MCU内部Flash IAP驱动入门

--------------------------------------------------------------------------------------

ARM Cortex-M内核微控制器相关知识

ARM公司从2004年开始推出Cortex-M系列内核,迄今Cortex-M家族已经包含九款Cortex-M0/M0+/M1/M3/M4/M7/M23/M33/M35P,一个合格的Cortex-M微控制器开发者必须要对这些内核有充分了解,读内核手册是了解内核的主要途径,而对于Cortex-M软件开发者来说还可以从CMSIS(Cortex-M软件接口标准)入手来逐步了解内核的使用。

资料篇(全1篇已完结)

史上最强ARM Cortex-M学习资源汇总(持续更新中...)

芯闻篇(持续更新中...2/2)

单片机AI的春天已来,ARM Cortex-M55发布了
Ethos-U55,ARM首款面向Cortex-M的microNPU

内核篇(持续更新中...8/14)

ARM Cortex-M内核那些事(1)- 内核架构编年史
ARM Cortex-M内核那些事(2)- 第一款微控制器
ARM Cortex-M内核那些事(3.1)- 功能模块看差异(M0/3/4/7)
ARM Cortex-M内核那些事(3.2)- 为Security而生(M23/33/35P)
ARM Cortex-M内核那些事(4)- 性能指标大比拼
ARM Cortex-M内核那些事(5)- 一表搜罗指令集
ARM Cortex-M内核那些事(6)- 系统堆栈机制
ARM Cortex-M内核那些事(7)- 内核寄存器
ARM Cortex-M内核那些事(8)- 系统总线(AHB/APB/AXI)
ARM Cortex-M内核那些事(9.1)- 存储保护(MPU - PMSAv6/7)
ARM Cortex-M内核那些事(9.2)- 存储保护(MPU - PMSAv8)
ARM Cortex-M内核那些事(10)- 浮点计算(FPU)
ARM Cortex-M内核那些事(11)- 数字信号处理(DSP)
ARM Cortex-M内核那些事(12)- 安全区域(TrustZone)

中断篇(持续更新中...0/5)

ARM Cortex-M中断那些事(1)- 工作机制
ARM Cortex-M中断那些事(2)- 管理模块(SCB/NVIC)
ARM Cortex-M中断那些事(3)- 向量表
ARM Cortex-M中断那些事(4)- 优先级设置
ARM Cortex-M中断那些事(5)- 异常处理

功耗篇(持续更新中...0/0)

ARM Cortex-M低功耗那些事(0)- 索引

调试篇(持续更新中...1/8)

ARM Cortex-M调试那些事(1)- 4线协议标准(JTAG)
ARM Cortex-M调试那些事(2)- 2线协议标准(SWD)
ARM Cortex-M调试那些事(3)- CoreSight架构
ARM Cortex-M调试那些事(4)- DAPLink调试器
ARM Cortex-M调试那些事(5)- J-Link仿真器
ARM Cortex-M调试那些事(6)- IAR内嵌调试C-SPY
ARM Cortex-M调试那些事(7)- Flashloader
ARM Cortex-M调试那些事(8)- 常用技巧

文件篇(全9篇已完结)

ARM Cortex-M文件那些事(0)- 文件关联
ARM Cortex-M文件那些事(1)- 源文件(.c/.h/.s)
ARM Cortex-M文件那些事(2)- 链接文件(.icf)
ARM Cortex-M文件那些事(3)- 工程文件(.ewp)
ARM Cortex-M文件那些事(4)- 可重定向文件(.o/.a)
ARM Cortex-M文件那些事(5)- 映射文件(.map)
ARM Cortex-M文件那些事(6)- 可执行文件(.out/.elf)
ARM Cortex-M文件那些事(7)- 反汇编文件(.s/.lst/.dump)
ARM Cortex-M文件那些事(8)- 镜像文件(.bin/.hex/.s19)