打印

GD32学习笔记-1 一些基本的概念理解

[复制链接]
1639|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sunmeat|  楼主 | 2014-7-28 18:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Cortex™-M3 处理器包含三组 AHB 总线,分别称为 ICode 总线、DCode 总线以及系统总线。
来自于手册Page13
沙发
sunmeat|  楼主 | 2014-7-28 18:07 | 只看该作者
概念1:
I-Code 总线是一条基于 AHB-Lite 总线协议的 32 位总线,负责在 0x0000_0000 – 0x1FFF_FFFF 之 间的取指操作。取指以字的长度执行,即使是对于 16 位指令也如此。因此 CPU 内核可以一次取出 两条 16 位 Thumb 指令。

使用特权

评论回复
板凳
sunmeat|  楼主 | 2014-7-28 18:07 | 只看该作者
概念2:
D-Code 总线也是一条基于 AHB-Lite 总线协议的 32 位总线,负责在 0x0000_0000 – 0x1FFF_FFFF 之间的数据访问操作。尽管 CM3 支持非对齐访问,但你绝不会在该总线上看到任何非对齐的地址, 这是因为处理器的总线接口会把非对齐的数据传送都转换成对齐的数据传送。因此,连接到D-Code 总线上的任何设备都只需支持 AHB-Lite 的对齐访问,不需要支持非对齐访问。

使用特权

评论回复
地板
sunmeat|  楼主 | 2014-7-28 18:08 | 只看该作者
概念3:
系统总线也是一条基于 AHB-Lite 总线协议的 32 位总线,负责在 0x2000_0000 – 0xDFFF_FFFF 和0xE010_0000 – 0xFFFF_FFFF 之间的所有数据传送,取指和数据访问都算上。和D-Code 总线一样,所 有的数据传送都是对齐的。

使用特权

评论回复
5
sunmeat|  楼主 | 2014-7-28 18:10 | 只看该作者
补充两个其他的总线:
1.外部私有外设总线
这是一条基于 APB 总线协议的 32 位总线。此总线来负责 0xE004_0000 – 0xE00F_FFFF 之间的私 有外设访问。但是,由于此 APB 存储空间的一部分已经被 TPIU、ETM 以及 ROM 表用掉了,就只留 下了 0xE004_2000-E00F_F000 这个区间用于配接附加的(私有)外设。
2.调试访问端口总线
调试访问端口总线接口是一条基于“增强型 APB 规格”的 32 位总线,它专用于挂接调试接口, 例如 SWJ-DP 和 SW-DP。不要挪用此总线。

使用特权

评论回复
6
sunmeat|  楼主 | 2014-7-28 18:18 | 只看该作者
下面上一张图,M3的总线连接范例,我觉得这张图讲的比较好,比官网给的容易理解

使用特权

评论回复
7
sunmeat|  楼主 | 2014-7-28 18:20 | 只看该作者
下面是GD32的文档中的截图

使用特权

评论回复
8
sunmeat|  楼主 | 2014-7-28 18:23 | 只看该作者
话题继续回到数据手册,解释几个下图中的名词,都来自百度,图片来自手册14页

使用特权

评论回复
9
sunmeat|  楼主 | 2014-7-28 18:46 | 只看该作者
概念1:
MPU:(Memory Protection Unit):内存保护单元,MPU中一个域就是一些属性值及其对应的一片内存。这些属性包括:起始地址、长度、读写权限以及缓存等。对于这个,我也不怎么懂,稍后开个帖子讲诉。。。

使用特权

评论回复
10
sunmeat|  楼主 | 2014-7-28 18:49 | 只看该作者
概念2:
FPB:FPB单元实现了硬件断点和从代码空间到系统空间的修正存取。这个也不大懂

使用特权

评论回复
11
sunmeat|  楼主 | 2014-7-28 18:55 | 只看该作者
概念3:
DWT单元含有以下的调试功能:
• 它有四个比较器,每个都能设置成一个硬件观察点、一个ETM触发器、一个PC采样事件触发器,或者一个数据地址采样事件触发器。
• 性能分析用的几个计数器或数据匹配事件触发器。
• 可设置成在特定间隔发射一个PC采样值或中断事件信息。

使用特权

评论回复
12
sunmeat|  楼主 | 2014-7-28 19:03 | 只看该作者
概念4:
ITM:ITM是一个应用驱动的跟踪源,它支持应用程序事件跟踪和printf风格的调试。
ITM提供以下跟踪信息的来源:
• 软件跟踪。 软件可以直接操作ITM有关寄存器,引发信息包发出。
• 硬件跟踪。 信息包由DWT产生,然后由ITM发出。
• 时间戳(time stamping)。与信息包相关的时间戳的发射。

使用特权

评论回复
13
sunmeat|  楼主 | 2014-7-28 19:07 | 只看该作者
概念5:
ETM:嵌入式跟踪单元(ETM)提供了一种远小于传统跟踪单元范围的指令跟踪捕获,使许多低价器件(如MCU)可以实现跟踪调试。
下图是ETM的优点

使用特权

评论回复
14
sunmeat|  楼主 | 2014-7-28 21:01 | 只看该作者
概念6:
TPIU:TPIU是ITM、ETM(如果存在)和片外跟踪端口分析器之间传输Cortex-M3跟踪数据的桥梁。TPIU可以设置成支持低开销调试的串行引脚跟踪,或者用于更高带宽跟踪的多引脚跟踪。 TPIU是与CoreSight兼容的。
TPIU的实现选项有:
• 如果系统中有ETM组件,那么就有TPIU格式器,否则就没有。
• 多个TPIU中的一个就可以跟踪多核的实现。
• ARM TPIU部件可以被特定的CoreSight相应TPIU替代.
• 在一个实际器件中,可能没有TPIU。
注意
如果没有TPIU,那么Contex-M3就没有跟踪能力。

使用特权

评论回复
15
sunmeat|  楼主 | 2014-7-28 21:08 | 只看该作者
总结下:总的来说,这一次学到了许多乱七八糟的概念,但总算是知道M3的总线架构,知道了哪种外设挂在哪个总线上面

使用特权

评论回复
16
dushuaihu| | 2014-7-28 21:28 | 只看该作者
still don't understand!

使用特权

评论回复
17
sunmeat|  楼主 | 2014-7-28 21:56 | 只看该作者
dushuaihu 发表于 2014-7-28 21:28
still don't understand!

:lol哈哈,坚决不懂?

使用特权

评论回复
18
kfliuyan| | 2014-7-29 11:24 | 只看该作者
不错,学习了

使用特权

评论回复
19
dushuaihu| | 2014-9-24 21:27 | 只看该作者
但是也要顶一下!

使用特权

评论回复
20
zitral| | 2014-9-25 10:47 | 只看该作者
sunmeat 发表于 2014-7-28 18:18
下面上一张图,M3的总线连接范例,我觉得这张图讲的比较好,比官网给的容易理解

...

这个图不错!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

208

主题

2132

帖子

13

粉丝