第三章F2812片内资源、存储器映射以及CMD文件的编写
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
3.1.1 2812内部的总线结构
我们首先需要知道2812的存储器空间被分成了2块,一 块是程序空间,一块是数据空间,而无论是那一块的内容, 我们都需要借助于两种总线来进行传送相关的内容—地址总 线和数据总线,用地址总线来传送存储单元的地址,而用数 据总线来传送存储单元内的内容。2812的存储器接口具有3 条地址总线和3条数据总线。了解了这些基本的内容之后我 们接下来一一讲述2812内部的总线结构。
7
3.2 F2812的存贮器映射
8
让我们看看F2812内部的映射空间,如图4所示。其存储空间 分布如下表所示
9
10
ቤተ መጻሕፍቲ ባይዱ
11
3.3.CMD文件的认识
CMD:command命令,顾名思义就是命令文件指定存储区域的分配, 2812的CMD采用的是分页制,其中PAGE0用于存放程序空间,而 PAGE1用于存放数据空间。 MEMORY伪指令用来表示实际存在目 标系统中的可以使用的存储器范围,在这里每个存储器都有自己的 名字,起始地址和长度。SECTIONS伪指令是用来描述输入端是如 何组合到输出端内的。
4
5
先来讲地址总线,顾名思义,这类总线的作用就是 来传送存储单元的地址的。 1. PAB(Program Address Bus)程序地址总线,它是 一个22位的总线,用于传送程序空间的读写地址。程序 在运行的时候,假如执行到了某一个指令,那么需要去 找到这段代码的地址,就是用PAB来传送。 2. DRAB(Data-Read Address Bus)数据读地址总线 ,它是个32位的总线,用于传送数据空间的读地址。假 如要读取数据空间某一个单元的内容,那么这个单元的 地址就是通过DRAB来传送。 3. DWAB(Data-Write Address Bus)数据写地址总线 ,它也是个32位的总线,用于传送数据空间的写地址。 类似的,如果我要对数据空间的某一个单元进行写操作 ,那么这个单元的地址就是通过DWAB来传送。
6
了解了地址总线后,我们再来看看数据总线,这类总线 传送的就是数据了,也就是各个存储单元内的具体内容了。 1. PRDB(Program-Read Data Bus)程序读数据总线,它 是一个32位的总线,用于传送读取程序空间时的指令或者数 据。我们在执行代码的时候,首先是通过PAB传送并找到了 存放该指令的存储单元,但是这个存储单元下的具体内容就 要由我们的PRDB来传送了。 2. DRDB(Data-Read Data Bus)数据读数据总线,它是 一个32位的总线,在读取数据空间时用来传送数据。我们在 进行读操作时,先通过DRAB总线确定了需要进行读操作的 数据单元的地址,接下来传送这个数据单元下面的具体内容 时就需要DRDB了。 3. DWDB(Data/Program-Write Data Bus)数据写数据总 线,它是一个32位的总线,在进行写操作时,向数据空间/ 程序空间传送相应的数据。
12
大家都知道,DSP在150M时钟频率下,FLASH 中只能提供大约120M的时钟频率,所以有时候 我们希望在RAM中运行时间敏感或计算量很大 的子程序(比如AD采样)。但是我们所有代码 都放在FLASH中,这就必须在上电后将FLASH 中的这段敏感程序复制到RAM中运行,加快速 度。这是在.CMD文件就必须划分一段用来设置 RAM的载入和运行地址。
13
DSP技术
电气自动化研究所(503)
1
3.1 F2812的片内资源
2
1. 2个事件管理器EVA、EVB,这个应该是使用2812必用的外设 了,PWM波形就是需要这个外设来产生的。 2. 2个串行通信接口SCI,标准的UART(SCIA SCIB)。 3. 1个串行外围接口SPI。 4. 改进的CAN通信ECAN。 5. 多通道缓冲串行接口McBSP。 6. 12位的ADC,一共有16个通道,实现AD转换的功能 7. 最多有56个可独立编程的,多功能复用的GPIO引脚。
3.1.1 2812内部的总线结构
我们首先需要知道2812的存储器空间被分成了2块,一 块是程序空间,一块是数据空间,而无论是那一块的内容, 我们都需要借助于两种总线来进行传送相关的内容—地址总 线和数据总线,用地址总线来传送存储单元的地址,而用数 据总线来传送存储单元内的内容。2812的存储器接口具有3 条地址总线和3条数据总线。了解了这些基本的内容之后我 们接下来一一讲述2812内部的总线结构。
7
3.2 F2812的存贮器映射
8
让我们看看F2812内部的映射空间,如图4所示。其存储空间 分布如下表所示
9
10
ቤተ መጻሕፍቲ ባይዱ
11
3.3.CMD文件的认识
CMD:command命令,顾名思义就是命令文件指定存储区域的分配, 2812的CMD采用的是分页制,其中PAGE0用于存放程序空间,而 PAGE1用于存放数据空间。 MEMORY伪指令用来表示实际存在目 标系统中的可以使用的存储器范围,在这里每个存储器都有自己的 名字,起始地址和长度。SECTIONS伪指令是用来描述输入端是如 何组合到输出端内的。
4
5
先来讲地址总线,顾名思义,这类总线的作用就是 来传送存储单元的地址的。 1. PAB(Program Address Bus)程序地址总线,它是 一个22位的总线,用于传送程序空间的读写地址。程序 在运行的时候,假如执行到了某一个指令,那么需要去 找到这段代码的地址,就是用PAB来传送。 2. DRAB(Data-Read Address Bus)数据读地址总线 ,它是个32位的总线,用于传送数据空间的读地址。假 如要读取数据空间某一个单元的内容,那么这个单元的 地址就是通过DRAB来传送。 3. DWAB(Data-Write Address Bus)数据写地址总线 ,它也是个32位的总线,用于传送数据空间的写地址。 类似的,如果我要对数据空间的某一个单元进行写操作 ,那么这个单元的地址就是通过DWAB来传送。
6
了解了地址总线后,我们再来看看数据总线,这类总线 传送的就是数据了,也就是各个存储单元内的具体内容了。 1. PRDB(Program-Read Data Bus)程序读数据总线,它 是一个32位的总线,用于传送读取程序空间时的指令或者数 据。我们在执行代码的时候,首先是通过PAB传送并找到了 存放该指令的存储单元,但是这个存储单元下的具体内容就 要由我们的PRDB来传送了。 2. DRDB(Data-Read Data Bus)数据读数据总线,它是 一个32位的总线,在读取数据空间时用来传送数据。我们在 进行读操作时,先通过DRAB总线确定了需要进行读操作的 数据单元的地址,接下来传送这个数据单元下面的具体内容 时就需要DRDB了。 3. DWDB(Data/Program-Write Data Bus)数据写数据总 线,它是一个32位的总线,在进行写操作时,向数据空间/ 程序空间传送相应的数据。
12
大家都知道,DSP在150M时钟频率下,FLASH 中只能提供大约120M的时钟频率,所以有时候 我们希望在RAM中运行时间敏感或计算量很大 的子程序(比如AD采样)。但是我们所有代码 都放在FLASH中,这就必须在上电后将FLASH 中的这段敏感程序复制到RAM中运行,加快速 度。这是在.CMD文件就必须划分一段用来设置 RAM的载入和运行地址。
13
DSP技术
电气自动化研究所(503)
1
3.1 F2812的片内资源
2
1. 2个事件管理器EVA、EVB,这个应该是使用2812必用的外设 了,PWM波形就是需要这个外设来产生的。 2. 2个串行通信接口SCI,标准的UART(SCIA SCIB)。 3. 1个串行外围接口SPI。 4. 改进的CAN通信ECAN。 5. 多通道缓冲串行接口McBSP。 6. 12位的ADC,一共有16个通道,实现AD转换的功能 7. 最多有56个可独立编程的,多功能复用的GPIO引脚。