• 2019.06.12


    第5章:存储器系统

    1.存储器系统的功能概述

    2.存储器映射

    3.存储器的各种访问属性

    4.缺省的存储器访问许可

    5.位带操作

    6.非对齐数据传输

    7.互斥访问

    8.端模式

    5.1 存储系统功能概述

    2.5存储器映射

    Cortex-M3的内部拥有一个总线基础设施,专用于优化对这种存储器结构的使用。

    处于最高地址的系统级存储区,是CM3用于藏“私房钱”的--包括中断控制器、MPU以及各种调试组件。所有这些设备均使用固定的地址(本书第5章讨论存储器系统)。通过把基础设施的地址定死,就至少在内核水平上,为应用程序的移植扫清了障碍。

    2.6总线接口

    Cortex-M3内部有若干个总线接口,以使CM3能同时取地址和访问内存。它们是:

    1.指令存储区总线(两条)

    2.系统总线

    3.私有外设总线

    有两条代码存储区总线负责对代码存储区的访问,分别是I-Code总线和D-Code总线。前者用于取指令,后者用于查表等操作,它们按最佳执行速度进行优化。

    系统总线用于访问内存和外设,覆盖的区域包括SRAM,片上外设,片外RAM,片外扩展设备,以及系统级存储区的部分空间。

    私有外设总线:负责一部分私有外设的访问,主要就是访问调试组件。它们也在系统级存储区。

    2.7存储器保护单元(MPU)

    2.8指令集

    不少有趣和强大的指令为Cortex-M3注入了新鲜的青春血液,下面给出几个例子:

    UBFX,BFI,BFC:位段提取,位段插入,位段清零。支持C位段,也简化了外设寄存器操作。

    CLZ,RBIT:计算前导零指令和位反转指令。二者组合使用能实现一些特技。

    UDIV,SDIV:无符号除法和带符号除法指令。

    SEV,WFE,WFI:发送事件,等待事件以及等待中断指令。用于实现多处理器之间的任务同步,还可以进入不同的休眠状态。

    MSR,MRS:通向禁地--访问特殊功能寄存器。

    2.9中断和异常

    ARMv7-M开创了一个全新的异常模型,CM3采用了它。

    结果:CM3就有了256个预定义的异常类型。外部中断240,保留(4+1)个挡位。

    问题1:片上外设在哪里???

    问题2:所有被除能的fault,都将”上访“成硬fault???

    虽然CM3是支持240个外中断,但具体使用了多少个是由芯片生产商决定。CM3还有一个NMI(不可屏蔽中断)输入引脚。当它有效时(assert),NMI服务例程会无条件执行。

    2.9b 低功耗与高能效(r2p0 修订版)

    2.10调试支持

    Cortex-M3在内核水平上搭载了若干种调试相关的特性。最主要的就是程序执行控制,包括停机、单步执行、指令断点、数据观察点、寄存器和存储器访问、性能速写以及各种跟踪机制。

    Cortex-M3的调试系统基于ARM最新的CoreSight架构。不同于以往的ARM处理器,内核本身不再含有JTAG接口。取而代之的,是CPU提供称为“调试访问接口(DAP)”的总线接口。通过这个总线接口,可以访问芯片的寄存器,也可以访问系统存储器,甚至是在内核运行的时候访问!!!对此总线接口的使用,是由一个调试端口(DP)设备完成的。DPs不属于CM3内核,但它们是在芯片的内部实现的。目前可用的DPs包括SWJ-DP(既支持传统的JTAG调试,也支持新的串行线调试协议),另一个SW-DP则去掉了对JTAG的支持。另外,也可以使用ARM CoreSight产品家族的JTAG-DP模块。这下就有3个DPs可以选了。芯片制造商可以从中选择一个,以提供具体的调试接口(通常都是选SWJ-DP)。

    此外,CM3还能挂载一个所谓的“嵌入式跟踪单元(ETM)”。ETM可以不断地发出跟踪信息,这些信息通过一个被称为"跟踪端口接口单元(TPIU)"的模块而送到内核的外部,再再芯片外面使用一个“跟踪信息分析仪“,就可以把TIPU输出的”已执行指令信息”捕捉到,并且送到调试主机--也就是PC。

    在Cortex-M3中,调试动作能由一系列的事件触发,包括断点,数据观察点,fault条件,或者是外部调试请求输入的信号。当调试事件发生时,Cortex-M3可能会停机。也可能会进入调试监视器异常handler。具体如何反应,则根据与调试相关寄存器的配置。

    与调试相关的还有其它的绝活。现在要介绍的是“仪器化跟踪宏单元(ITM)”,它也有自已的办法把数据送往调试器。通过把数据写到ITM的寄存器中,调试器能够通过跟踪接口来收集这些数据,并且显示或者处理它。此法不但容易使用,而且比JTAG的输出速度更快。

    所有这些调试组件都可以由DAP总线接口来控制,CM3内核提供DAP接口。此外,运行中的程序也能控制它们。所有的跟踪信息都能通过TPIU(跟踪端口接口单元!!!)来访问到。

    2.1Cortex-M3结构!

  • 相关阅读:
    大数加法、乘法实现的简单版本
    hdu 4027 Can you answer these queries?
    zoj 1610 Count the Colors
    2018 徐州赛区网赛 G. Trace
    1495 中国好区间 尺取法
    LA 3938 动态最大连续区间 线段树
    51nod 1275 连续子段的差异
    caioj 1172 poj 2823 单调队列过渡题
    数据结构和算法题
    一个通用分页类
  • 原文地址:https://www.cnblogs.com/AlexzhiyiPython/p/11013034.html
Copyright © 2020-2023  润新知