hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - 杂谈 - 正文 君子好学,自强不息!

痞子衡嵌入式:飞思卡尔i.MX RTyyyy系列MCU硬件那些事(2.2)- 在串行NOR Flash XIP调试道理

2019-11-18杂谈搜奇网26°c
A+ A-

  人人好,我是痞子衡,是正派搞手艺的痞子。本日痞子衡给人人引见的是飞思卡尔i.MX RTyyyy系列EVK在串行NOR Flash调试的道理

  本文是i.MXRT硬件那些事系列第二篇的续集,在第二篇首集合痞子衡给人人细致引见了EVK板载调试器用法,有了调试器在手,今后调试不必愁。从调试代码地点目的存储器种别上来分,调试平常分为在SRAM调试和在Flash调试。在SRAM调试完成比较简朴,顺序直接从JTAG/SWD口灌进RAM即可;在Flash调试,则相对庞杂一点,由于起首须要有Flash下载算法,下载胜利后才调试。
  一般的Cortex-M内核MCU平常都邑内嵌并行NOR Flash,这个并行NOR Flash是直接挂在Cortex-M内核高性能AHB总线上的,着名IDE假如支撑这款MCU,也都邑同时集成对应Flash的下载算法,轻易用户直接在IDE里下载代码进Flash和XIP调试,然则i.MXRT内部并没有Flash,用户须要本身外接Flash,那该怎么办?还能在线XIP调试么?别着急,i.MXRT可以支撑外接并行NOR和串行NOR完成XIP,从节约管脚数的角度,最罕见的做法是将串行NOR Flash挂在i.MXRT FlexSPI总线上,FlexSPI支撑XIP特征,所以道理上可以完成在线调试,本日痞子衡就为人人引见i.MXRT上在外部串行Flash调试的道理:

一、ARM CoreSight调试架构

  要完成在串行Flash调试,起首要能对内核举行调试。i.MXRT芯片是基于Cortex-M内核的,而Cortex内核的调试和跟踪,固然离不开CoreSight,它是ARM公司于2004年推出的一种新的调试体系结构,也是内核受权的一部份。
  CoreSight功用异常壮大,其包含了许多调试组件(即种种协定),下图来自于 CoreSight手艺简介手册,图中标出了CoreSight架构下的种种调试组件之间的联络,这么多组件一会儿看起来会有点晕,假如我们按功用将这些组件分组,它们可以被分红以下三组:

  • 源部件(Source):芯片上跟踪数据的泉源,发生跟踪数据发送到ATB(AMBA Trace Bus)。比方STM和ETM都属于Source部份。
  • 掌握接见部件(Sink):设置和掌握数据流的发生,然则不发生数据流,即那些可以坚持从Source过来数据的模块。比方DAP和ECT(包含CTI和CTM)都属于Sink部份。
  • 会聚点(Link):芯片上跟踪数据的尽头,用于指导从Source到Sink历程当中的类似于通道作用的模块。比方TPIU、ETB和SWO都属于会聚点。

  本文主如果概述性地引见i.MXRT在外部串行Flash调试的道理,并不想深切探析CoreSight,因而关于CoreSight,我们只须要知道是它完成了重要的调试事情,而CoreSight唯一的依靠就是要保证能经由历程DAP组件从AMBA总线及时接见体系内存和外设寄存器(固然包含外部串行Flash中的代码)。

二、i.MXRT FlexSPI外设特征

  要完成在串行Flash调试,其次是代码要能在串行Flash中XIP(原地实行),即CPU要能及时从串行Flash中恣意位置取指令和数据。本文讲的串行Flash平常指SPI接口的NOR Flash,SPI形式可以是Single/Dual/Quad/Octal。无论是哪一种SPI形式,这类接口的Flash本质上都属于串行Flash,地点线和数据线不仅同享而且是串行的。而根据一般的明白,要可以完成XIP,Flash应该是并行总线接口挂在AMBA上,这个并行总线应有自力的地点线和数据线,且地点线宽度跟Flash大小相对应。那末串行Flash为何能在i.MXRT上完成XIP呢?答案就是FlexSPI外设。
  让我们翻开RT1050参考手册,找到FlexSPI外设章节,可以看到以下FlexSPI模块框图,框图右侧是FlexSPI与外部串行Flash的信号衔接,框图左侧是FlexSPI与i.MXRT体系内部总线衔接,总线衔接分为两种,分别是32bit IPS BUS(即手动操纵FlexSPI寄存器发送Flash读写敕令),64bit AHB BUS(由FlexSPI翻译AHB接见地点并自动发送响应Flash读写敕令),串行Flash可以XIP的奥妙就在FlexSPI外设的AHB BUS衔接。

  关于这个64bit AHB BUS衔接,我们可以FlexSPI特征里的Memory mapped read/write access by AHB Bus一栏找到更多细节。i.MXRT为FlexSPI外设在体系内存里分配了AHB接见地点映照(关于XIP调试来讲主如果读接见),当CPU取指到FlexSPI AHB地点映照空间时,FlexSPI外设会自动完成从外部串行Flash读取指令数据的事情,并将指令数据存放到AHB RX buffer里(一共8个),CPU直接从AHB RX buffer里猎取指令去实行,AHB RX buffer可以有用下降读延时。

  • AHB RX Buffer implemented to reduce read latency. Total AHB RX Buffer size: 128 x 64 Bits
  • 16 AHB masters supported with priority for read access
  • 8 flexible and configurable buffers in AHB RX Buffer
  • AHB TX Buffer implemented to buffer all write data from one AHB burst. AHB TX Buffer size: 8 x 64 Bits
  • All AHB masters share this AHB TX Buffer. No AHB master number limitation for Write Access.

  关于FlexSPI AHB地点映照,可见下面的RT1050 memory map表,AHB映照肇端地点为0x60000000,最大支撑504MB的空间(实用RT1010/RT1020/RT1050/RT1060)。假如是RT1064,AHB映照肇端地点改成0x70000000;假如是RT1170,除了0x60000000映照地点外还新增了0x30000000的地点映照。FlexSPI AHB映照地点读接见包含以下特性:

  • Cachable and Non-Cachable access
  • Prefetch Enable/Disable
  • Burst size: 8/16/32/64 bits
  • All burst type: SINGLE/INCR/WRAP4/INCR4/WRAP8/INCR8/WRAP16/INCR16

三、串行NOR Flash下载算法

  要完成在串行Flash调试,末了要确保代码被胜利下载到串行Flash中。串行Flash的读写不像接见RAM那样简朴,是须要一套专程的FlexSPI NOR Flash驱动的,即所谓的Flash下载算法。
  串行Flash品种许多,虽然大多都相符JESD216规范,然则详细到某个厂家生产的Flash,照样有纤细区分的。有的Flash下载算法力图支撑尽量多的Flash,而有的Flash下载算轨则仅针对某个系列Flash。不管是哪一种Flash下载算法,关于i.MXRT如许没有内部Flash的芯片而言,Flash下载算法都是要跟详细的i.MXRT开发板相关联的,由于开发板决议了Flash衔接的pinmux,Flash下载算法里FlexSPI管脚初始化要与开发板相匹配。
  每一个IDE的Flash下载算法设想不尽相同,本文暂不细致引见详细Flash下载算法,后续文章会对罕见IDE的Flash下载算法设想举行详解。

四、在串行Flash调试历程

  CoreSight架构,FlexSPI特征,NOR Flash下载算法都引见过了,在串行Flash调试的充分条件都有了。如今痞子衡为人人综合引见一下调试历程。下面是痞子衡专程画的简图,实在调试历程概述起来并不庞杂,当你启动IDE调试时,预先放在IDE里的Flash下载算法(可实行文件)会起首经由历程调试器下载到i.MXRT内部FlexRAM中,下载算法须要供应FlexSPI外设初始化和NOR Flash擦除、烧写功用API,然后调试器继承将运用顺序代码(二进制机器码)分段缓存在FlexRAM里,并挪用Flash下载算法API去完成运用顺序的烧写(从FlexRAM到Flash中),运用顺序完整下载终了以后,便由CoreSight最先接受调试事情,此时CPU已可以经由历程AHB总线接见挂在FlexSPI外设上的串行Flash里的运用顺序代码数据,所以CoreSight固然可以完成及时代码运转掌握与跟踪,你在IDE里也就可以举行单步调试啦。

  至此,飞思卡尔i.MX RTyyyy系列EVK在串行NOR Flash调试的道理痞子衡便引见终了了,掌声在那里~~~

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
痞子衡嵌入式:飞思卡尔i.MX RTyyyy系列MCU硬件那些事(2.2)- 在串行NOR Flash XIP调试道理

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
未定义标签

本文来源:搜奇网

本文地址:https://www.sou7.cn/282249.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>