大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦全系列MCU(包含Kinetis, LPC, i.MXRT, MCX)的GPIO电平中断设计差异. 在痞子衡旧文 <以i.MXRT1xxx的GPIO模块为例谈谈中断处理函数(IRQHandler)的标准流程>里,痞子衡主要介绍得是 GPIO 一般控制以及最常用的输入边沿中断相关知识.最近恩智浦官方社区有用户反映 i.MXRT1060 上 GPIO 中断状态寄存器(GPIO->ISR)在发生有效电平中断后的置位并不需要手…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是深入i.MXRT1050系列ROM中串行NOR Flash启动初始化流程. 从外部串行NOR Flash启动问题是i.MXRT系列开发最高频的话题,无论是开发调试XIP应用程序阶段还是最终产品量产阶段都绕不开NOR Flash选型以及为它设计一个匹配的FDCB配置块.如果不了解FDCB是什么,先去看痞子衡之前的文章 <Bootable image格式与加载>. 实际开发过程中,影响串行NOR Flash正常下载/启动的因素有很多,…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1060系列ROM中串行NOR Flash启动初始化流程优化点. 前段时间痞子衡写了一篇 <深入i.MXRT1050系列ROM中串行NOR Flash启动初始化流程>,那篇文章如果你认真读,你会发现为了能让i.MXRT系列尽可能地支持来自不同厂商的不同串行NOR Flash型号,而且还得发挥Flash最好性能,BootROM可谓煞费苦心,做了很多精心设计. i.MXRT1060是在i.MXRT1050之后发布的,相比i…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT上进一步提升代码执行性能的经验. 今天跟大家聊的这个话题还是跟痞子衡最近这段时间参与的一个基于i.MXRT1170的大项目有关,痞子衡在做其中的开机动画功能,之前写过一篇文章 <降低刷新率是定位LCD花屏显示问题的第一大法> 介绍了开机动画功能的实现以及LCD显示注意事项,在此功能上,痞子衡想进一步测试从芯片上电到LCD屏显示第一幅完整图像的时间,这个时间我们暂且称为1st UI时间,该时间的长短对项目有重要意义. 痞…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT系列ROM中的FlexSPI驱动API实现IAP. 痞子衡的技术交流群里经常有群友提问: i.MXRT中的FlexSPI驱动API到底怎么用啊?这个问题已经出现过好几次了,本来痞子衡不打算专门为这个写文章的,因为这部分内容在芯片手册System Boot章节里的最后一节ROM APIs里其实介绍得非常详细了,但是既然还是有不少朋友在问这个,看起来手册里的内容藏得有点深,这么好的东西被埋没太可惜了,那么今天痞子衡就跟大家再…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT上使用16MB以上NOR Flash软复位无法正常启动问题的分析解决经验. 痞子衡这几天在支持一个i.MXRT1050客户项目,客户遇到了软复位无法从32MB NOR Flash重新启动的问题.这个客户是做医疗设备的,已经基于i.MXRT做出一款成功的产品了,所以客户其实有丰富的i.MXRT使用经验.目前调试的项目是客户的第二款产品,这个软复位无法启动问题已经困扰他们很久,但问题毕竟不是特别紧急,不影响他们开发进度,所以…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是超级下载算法开发笔记(2)之识别当前i.MXRT型号. 文接上篇 <超级下载算法(RT-UFL)开发笔记(1) - 执行在不同CM内核下>,我们已经解决了超级下载算法能够在i.MXRT全系列下执行的问题,现在我们往前继续推进项目.因为这个超级下载算法将来要跑在很多个芯片型号上,有时候因为型号间差异,我们不得不针对性地弄出不同代码处理分支,而这一切的前提是我们能动态地获取当前芯片型号. 本篇是开发笔记第二篇,咱们就重点聊聊如何让超级…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是一个奇怪的Keil MDK下变量链接强制对齐报错问题. 痞子衡最近一直在参与恩智浦SBL项目(就是一个适用LPC和i.MXRT的完整OTA方案),这个项目近期会和大家见面,项目需要同时支持GCC, IAR, MDK三大开发环境,项目所属i.MXRT1170工程在GCC和IAR下编译链接一切正常,但是在MDK下出现了链接对齐报错问题,痞子衡花时间研究解决了这个问题,这个问题算是和MDK工具本身紧紧相关,痞子衡觉得挺有意思(其实主要是想…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是同一厂商不同系列Flash型号下Dummy Cycle设置方法的差异. 上一篇文章 <在i.MXRT启动头FDCB里调整Flash工作频率也需同步设Dummy Cycle>, 痞子衡是以i.MXRT1170-EVK上板载Flash型号IS25WP128为例来介绍Dummy Cycle设置的.最近痞子衡在支持一个i.MXRT1020客户的问题,需要用到i.MXRT1020-EVK,这个板载Flash是IS25LP064A,跟IS25…
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是利用i.MXRT1xxx系列内部DCP引擎计算Hash值时需特别处理L1 D-Cache. 关于i.MXRT1xxx系列内部通用数据协处理器DCP模块,痞子衡之前写过一篇文章 <SNVS Master Key仅在i.MXRT10xx Hab关闭时才能用于DCP加解密> 介绍了DCP基本功能和AES加解密使用注意事项,实际上DCP模块除了对AES加解密算法支持外,还支持经典的Hash算法(SHA-1/SHA-256/CRC32).…