2812存储器映射

合集下载

F2812寄存器速查手册介绍

F2812寄存器速查手册介绍

11
T1CTRIPE
当 EXTCON=0 时该位保留。 0 禁 止 T1CTRIP , T1CTPIR 不 影 响 定 时 器 1 的 比 较 输 出 、 GPTCDN(4) 或 PDPINTA(EVIFRA(0))标志。 1 使能 T1CTRIP,定时器 1 变为高阻状态,GPTCON ( 4 )变为 0, PDPINTA(EVIFRA(0)) 标志置 1。 10~ 9 8~7 T2TOADC 定时器 2 事件启动 ADC 00 不启动 ADC 01 下溢中断启动 ADC 10 周期中断启动 ADC 11 比较中断启动 ADC 定时器 1 事件启动 ADC 00 不启动 ADC 01 下溢中断启动 ADC 10 周期中断启动 ADC 11 比较中断启动 ADC 比较输出使能位,禁止或使能定时器比较输出。只有当 EXTCON ( 0 ) =1 时才激活 该位,当 EXTCON(0)=0 时该位保留。当 PDPIN/T1CTRIP 为低电平且 EVIMRA(0) =1 时激活该位,它会变为 0 0 定时器比较输出 T1/2PWM_T1/2CMPR 为高阻: 1 定时器比较输出 T 1/2PWM_T1/2CMPR 由各自的定时器比较逻辑驱动。 定时器 2 比较输出使能位,使能或禁止定时器 2 的比较输出 T2PWM_T2CMP。 EXTCON(0)=1 时激活该位, EXTCON(0)=0 时该位保留。 如果 T2CMPOE 有效, T2CTRIP 为低电平且被使能,则 T2CMPOE 变为 0 0 定时器 2 比较输出 T2PWM_T2CMP 为高阻。 1 定时器 2 比较输出 T2PWM_T2CMP 由定时器 2 比较逻辑驱动 定时器 1 比较输出使能位,使能或禁止定时器 1 的比较输出 T1PWM_T1CMP。 EXTCON(0)=1 时激活该位, EXTCON(0)=0 时该位保留。 如果 T1CMPOE 有效, T1CTRIP 为低电平且被使能,则 T1CMPOE 变为 0 0 定时器 2 比较输出 T1PWM_T1CMP 为高阻。 1 定时器 2 比较输出 T1PWM_T1CMP 由定时器 1 比较逻辑驱动 定时器 2 比较输出极性。 00 强制低 01 低有效 01 高有效 11 强制高 定时器 2 比较输出极性。 00 强制低 01 低有效 01 高有效 11 强制高

hello第四课(二)f2812存储器映射及cmd详解-日志-eyes417-

hello第四课(二)f2812存储器映射及cmd详解-日志-eyes417-

hello第四课(二):f2812存储器映射及cmd详解-日志-eyes417-...2812存储器映射2812具有32位的数据地址和22位的程序地址,总地址空间可以达到4M的数据空间和4M的程序空间。

32位的数据地址,就是能访问2的32次,是4G,而22位的程序地址,就是能访问2的22次,是4M。

其实,2812可寻址的数据空间最大是4G,但是实际线性地址能达到的只有4M,原因是2812的存储器分配采用的是分页机制,分页机制采用的是形如0xXXXXXXX的线性地址,所以数据空间能寻址的只有4M。

 2812的存储器被划分成了下面的几个部分:1. 程序空间和数据空间。

2812所具有的RAM、ROM和FLASH都被统一编址,映射到了程序空间和数据空间,这些空间的作用就是存放指令代码和数据变量。

2. 保留区。

数据空间里面某些地址被保留了,作为CPU的仿真寄存器使用,这些地址是不向用户开放的。

3. CPU中断向量。

在程序空间里也保留了64个地址作为CPU 的32个中断向量。

通过CPU的一个寄存器ST1中的VMAP位来将这一段地址映射到程序空间的底部或者顶部。

映射和空间的统一编址 F2812内部的映射空间 2812CMD详解CMD:command 命令,顾名思义就是命令文件指定存储区域的分配.2812的CMD采用的是分页制,其中PAGE0用于存放程序空间,而PAGE1用于存放数据空间。

1.)#pragma ,CODE_SECTION和DATA_SECTION伪指令#pragma DATA_SECTION(funcA,"dataA"); ------ 函数外声明将funcA数据块定位于用户自定义的段"dataA"中------ 需要在CMD中指定dataA段的物理地址2.)MEMORY和SECTIONS是命令文件中最常用的两伪指令。

对于TMS320F2812的CMD文件的理解分解

对于TMS320F2812的CMD文件的理解分解

对于TMS320F2812的CMD文件的理解1.COFF格式要谈CMD文件,首先不可避免的要谈下COFF格式,COFF格式是通用目标文件格式(Common Object File Format)的缩写,它是一种流行的二进制可执行文件格式,在DSP里二进制可执行文件包括库文件(.lib)、目标文件(.obj)和最终可执行文件(.out)。

详细的COFF格式文件包括段头、可执行代码、初始化数据、可重定位信息、行号入口、符号表、字符串。

对于DSP的C语言编程我们只需要了解定义段和给段分配空间即可。

采用COFF格式更利于我们对其进行模块化编程,我们可以自由的把哪些段分配到哪些空间。

2.Section(1)其次,在编写CMD文件得时候要碰到SectionS命令,SectionS命令的英文理解就有区域的意思,我们利用SectionS来将目标文件的代码放到指定的区域中。

SectionS目标文件中最小的单位我们称之为块,一个块就是最终在存储器映像中占据连续空间的一段代码或者数据。

COFF文件格式默认有三个块:.text 存放可执行代码;.data 存放已初始化数据;.bss 为未初始化数据留下的保留空间。

(2)汇编器对块的处理和设置未初始化块的设置:.bss 变量存放空间;.usect 用户自定义的未初始化段;初始化块的设置:.text 汇编指令代码.data 常数数据(比如对变量的初始化数据).sect 用户自定义的已初始化段.asect 类似于.sect,多了绝对地址定位功能,一般不用(3)C语言对块得的设置和处理未初始化块(data).bss 存放全局和静态变量.ebss 长调用的.bss(超过了64K地址限制).stack 存放C语言的栈.sysmem 存放C语言的堆.esysmem 长调用的.sysmem(超过了64K地址限制)初始化块.text 可执行代码和常数(program).switch switch语句产生的常数表格(program/低64K数据空间).pinit Tables for global constructors (C++)(program).cinit 用来存放对全局和静态变量的初始化常数值(program).const 全局和静态的const变量初始化值和字符串常数,(data).econst 长.const(可定位到任何地方)(data)(4)C语言自定义块#pragma DATA_SECTION(函数名或者全局变量名,“用户自定义在数据空间的段名”);#pragma CODE_SECTION(函数名或者全局变量名,“用户自定义在程序空间的段名”);必须注意:不能在函数体内声明,必须在定义和使用前声明。

第2课 F2812系统结构

第2课 F2812系统结构
10
BGA封装的F2812
179引脚GHH球形网格阵列BGA(Ball Grid Array)
11
BGA封装的机械尺寸
12
贴片封装的F2812
176引脚LQFP封装顶视图
128引脚PBK封装顶视图
13
贴片封装的机械尺寸
14
F2812电源
2812采用了高性能的静态CMOS技术,时钟 频率可达150MHZ(6.67ns),其核心电压 为1.8V,I/O口电压3.3V,Flash编程电压也 为3.3V。 在设计2812电源部分的时候,需要将常用 的5V电压转换成1.8V和3.3V的电压之后, 才能供给2812。
8
TMS320F2812的主要特点
4) 片上存储器 --有多达128K×16的FLASH存储器 (4个8K×16和 6个16K×16) --有多达128K×16的ROM 5)外部存储器接口 --有多达1MB的寻址空间 --三个独立的片选端 6)时钟与系统控制 --支持动态的改变锁相环(PLL)的频率 --片上振荡器 7)三个外部中断 8)外部中断扩展(PIE)模块,支持45外部中 断
MUX
Data Memory
XAR31-16
XAR15-0
=AR7-0
28
C28x Pipeline
A F1 F2 D1 D2 R1 R2 B C D E F G H
F1: 取指令地址 F2: 取指令内容 D1: 32/16判断边界 D2: 取指译码 R1: 操作数地址 R2: 取操作数 E: 指令执行 W: 写内容回存储单元
Program Bus

32-bit 定点DSP

32 x 32 bit MAC
2次单周期16 x 16 MAC (DMAC) 快速中断响应机制 单周期读、写、修改指令

TechVF使用说明书

TechVF使用说明书

第一章 TMS320F2812 EVM 评估板介绍
本章主要介绍 TMS320F2812 EVM 评估板的基本概况、 主要特点、评估板功能以及功能框图等内容。
北京精仪达盛科技有限公司
2008.12 version 4.0
1
EVM 概况 1.1 F2812 F2812EVM
F2812EVM是一个独立的嵌入式应用板卡,用户可以通过它直 接验证自己的算法,或在此基础上进行最终产品的集成或开发。 板 卡上面丰富的资源能够满足大多数应用场合的需求。 高容量的存储 器能够满足各种应用代码的调试。 完全的信号扩展使用户更方便进 行二次开发。该产品灵活方便的外部接口,可以作为工业控制特别 是电机控制系统集成的配套产品。 选用该板卡可以大大降低系统的研发周期和风险, 由于其高的 可靠性能,为设备生产厂家和最终用户提供了可靠的平台。同时为 了简化代码开发,缩短编辑调试时间,提供了方便的接口和大容量 的片上RAM存储器。并可以使用C编辑器进行代码的调试。
Techv- TMS320F2812
评估板
使用说明书
北京精仪达盛科技有限公司
*本公司保留对此说明书最终解释权,如有更改恕不另行通知 *版权所有,严禁非法复制、传播


第一章................................................................................................ 1 1.1 F2812EVM 概况..................................................................2 1.2 F2812EVM 主要特点......................................................... 2 1.3 系统功能框图.....................................................................4 第二章................................................................................................ 5 2.1 TMS320F2812 EVM 组成.................................................. 6 2.2 TMS320F2812 模块介绍.................................................... 6 2.2.1 TMS320F2812 存储器接口....................................9 2.2.2 用户开关和 LED...................................................11 2.2.3 晶振选择................................................................14 2.2.4 复位电路................................................................14 2.2.5 电源接口................................................................15 2.2.6 扩展总线................................................................16 2.2.7 JTAG 接口..............................................................20 2.2.8 板上串行通信接口............................................... 21 2.2.9 CAN 总线接口....................................................... 21 2.2.10 AD 变换单元........................................................22 2.2.11 CPLD 模块........................................................... 23 第三章..............................................................................................26 实验一 SPI 实验.................................................................27 实验二 PWM 波形产生实验.............................................31 实验三 多通道缓冲串行口实验..................................... 36 实验四 RS323 串口通讯实验............................................41 实验五 CAN 总线通讯实验............................................... 47 附:.................................................................................................. 54

TMS320F2812芯片介绍

TMS320F2812芯片介绍

TMS320F2812芯片介绍1 TMS320F2812芯片的特点 (1)2 F2812内核组成 (4)3 F2812外设介绍 (5)①事件管理器 (6)②模数转换模块 (6)③SPI和SCI通信接口 (6)④CAN总线通信模块 (7)⑤看门狗 (7)⑥通用目的数字量I/O (7)⑦PLL时钟模块 (7)⑧多通道缓冲串口 (7)⑨外部中断接口 (8)⑩JTAG (8)1 TMS320F2812芯片的特点TMS320F2812是TI公司推出的低价钱、高性能的32位定点DSP数字信号处置器,是到目前为止用于数字控制领域性能最好的DSP芯片。

它是在TMS320C28x为内核的基础上扩展了相应的存储器并集成了大量的片内外设而成的新一代适用于工业控制的DSP芯片。

图9为F2812控制器方框图。

图9 F2812控制器方框图TMS320F2812 系统组成包括:150MHz、150MIPS的低电压3.3VCPU、片内存储器、中断管理模块、事件管理器模块、片内集成外围设备。

TMS320F2812的体系结构采用4级流水线技术,加速程序的执行。

32位的CPU 内核提供了壮大的数据处置能力, 最高速度可达150MIPS,能够在单个指令周期内完成32*32位的乘累加运算。

TMS320F2812采用增强的哈佛结构,芯片内部具有6 条32位总线, 程序存储器总线和数据存储器总线彼此独立, 支持并行的程序和操作数寻址, 因此CPU的读/写可在同一周期内进行。

这种高速运算能力使各类复杂控制算法得以实现。

芯片本身具有128KB的Flash,外部RAM 能够按照需要进行扩充。

另外,它还具有高性能的12位模/数转换能力,改良的通信接口和1MB的线性地址空间。

外设模块丰硕且功能壮大,其中包括:事件管理器EV A和EVB,包括16个PWM输出,10个16位比较器和4个通用按时器;快速灵活的12位,16通道ADC,12.5MPS数据吞吐率;及其它丰硕的片内集成外设:2通道的SCI模块、SPI模块、eCAN2.0B模块、McBSP模块等。

TMS320F2812寄存器定义(完整版)

TMS320F2812寄存器定义(完整版)
必须为11
=0 XREADY输入为同步方式=1 XREADY输入为异步方式
确定对区的访问是进行采样还是忽略XREADY =0区访问时忽略XREADY
读周期的建立周期=00无效=01 1个XTIMCLK周期(X2TIMING1=1加倍) =10 2个XTIMCLK周期=11 3个XTIMCLK周期
读周期的激活周期n*(X2TIMING1+1)*XTIMCLK周期(总的激活时间为(1+XRDACTIVE))
0x7040---0x704F
16
非EALLOW保护
SPI寄存器
0x7050---0x705F
16
非EALLOW保护
SCI A寄存器
0x7070---0x707F
16
非EALLOW保护
外部中断寄存器
0x70C0---0x70DF
32
EALLOW保护
GPIO多路选择寄存器
0x70E0---0x70FF
HOLD.9 (R/W/0)
MP/MC.8 (R/W/X) |
WLEVEL.(7-6) (R/W/0
CLKOFF.3 (R/W/0)
CLKMODE.2 (R/W/1)
WRBUFF.(1-0) (R/W/0)
0x0B34
设定XTIMCLK时钟比例000 XTIMCLK=SYSCLKOUT其它保留001 XTIMCLK=SYSCLKOUT/2
FBANKWAIT
读访问等待周期寄存器
PAGEWAIT.(11-8)(R/W/1)
RANDWAIT.(3-0) (R/W/1)
0x0A86
FLASH页读操作等待状态。(0--15 SYSCLKOUT周期)
FLASH随机读操作等待状态。(0--15 SYSCLKOUT周期)

第一章TMS320F2812系列DSP综述

第一章TMS320F2812系列DSP综述
MCU:微控制器(单片机),它是为中、低成本控制领域 而设计和开发的。单片机价格低、使用方便,但与DSP 相比,处理速度较慢。 ARM:具有比较强的事务管理能力,适合跑界面、操作系 统等,控制能力高。DSP相比具有强大的数据处理能力。 PLC:控制电机。 FPGA:一般用于数字电路,硬件的功能可以像软件一样通 过编程修改,价格较贵。 例如:手机。现在的手机都有单片机的核(ARM)和DSP的 核。ARM主要用来控制键盘,DSP的核主要是做语音的 压缩和解压,无线信道的调制和解调。
0x000000 0x000040 0x000400 0x000800 0x000D00
F2812的存储器映像
数据空间 程序空间 数据空间 程序空间 M0中的向量表 M0 SARAM(1K) M1 SARAM(1K) 保留 外设帧0 PIE中断 保留 0x000E00 向量表 保留 0x002000 XINTF Zone0(8k) 保留 XINTF Zone1(8K) 0x006000 外设帧 1 0x007000 保留 0x008000 外设帧2 保留 L0 SARAM(4K) 0x009000 L1 SARAM(4K) 0x00A000 XINTF Zone2(512k) 保留 XINTF Zone6(512K) 0x3D7800 OTP (1K) 0x3D7C00 保留(1K) 0x3D8000 保留 0x3F7FF8 片内FLASHA(128K) 安全密码128位 0x3F 8000 H0 SARAM(8K) 0x3FA000 保留 XINTF 0x3FF000 BootRom(MP/MC=0) Zone7(16K)(MP/MC=1) 0x3FFFC0 BROM Vector-ROM XINTF Vector-RAM (32×32)MP/MC=0 (32×32)MP/MC=1

TMS320F2812的CMD文件配置详解

TMS320F2812的CMD文件配置详解

TMS320F2812的CMD文件配置详解1存储空间的配置dsp交流网dsp学习第一论坛dsp技术应用与推广平台dsp开发服务平台\TMS320F2812的DSP内存分为三个独立选择的空间——程序空间、数据空间和I/O空间。

程序存储器存储要执行的指令和执行中使用的系数(常数),可以由片内或片外ram、ROM或EPROM组成;数据存储器存储指令执行期间生成的数据,这些数据可以在芯片内或芯片外使用的ram和rom来构成;i/o存储器存放与映象外围接口相关的数据,也可以作为附加的数据存储空间使用。

表1是tms320f2812的存储空间分布。

#p5r)e7[*e!s2cmd文件的分配方法TI新的汇编程序和链接器创建的目标文件采用coff(通用目标文件格式),这更有利于模块化编程,并为管理代码段和目标系统内存提供了强大而灵活的编程方法。

用户可以编写一个链接命令文件(.CMD文件),将链接信息放在一个文件中,以便在多次使用同一链接信息时调用它。

在命令文件中,使用了两条非常有用的伪指令“内存”和“内存”部分来指定实际应用中的内存结构和地址映射。

内存用于指定目标内存结构。

在内存下,可以通过页面选项配置地址空间。

链接器将每个页面视为独立的存储空间。

通常,Page0表示用于存储程序的程序内存,page1表示用于存储数据的数据内存。

编译器生成的可重定位代码和数据块称为被初始化的“sections”(包括数据表和可执行代码).text它包括所有的可执行代码和常数,必须放在程序页;.cinit它包括初始化的变量和常量表,要求放在程序页;.econst在使用大内存模式时使用,包括字符串、声明和显式初始化的全局和静态变量,这些变量可以放在数据页的任何位置。

DSP交流开关,包括用于转换声明的表格集,可以放在低地址的程序页或数据页上。

h2_u$?;d9e$l:o5k(2)未被初始化的“sections”(为程序运行中创建和存放的变量在存储器中保留空间)9d3a.\\'x7e)m;a'c.BSS,为全局变量和静态变量保留空间。

F2812存储器映射及CMD详解

F2812存储器映射及CMD详解

2812存储器映射及CMD2812存储器映射2812具有32位的数据地址和22位的程序地址,总地址空间可以达到4M的数据空间和4M的程序空间。

32位的数据地址,就是能访问2的32次,是4G,而22位的程序地址,就是能访问2的22次,是4M。

其实,2812可寻址的数据空间最大是4G,但是实际线性地址能达到的只有4M,原因是2812的存储器分配采用的是分页机制,分页机制采用的是形如0 xXXXXXXX的线性地址,所以数据空间能寻址的只有4M。

2812的存储器被划分成了下面的几个部分:1. 程序空间和数据空间。

2812所具有的RAM、ROM和FLASH都被统一编址,映射到了程序空间和数据空间,这些空间的作用就是存放指令代码和数据变量。

2. 保留区。

数据空间里面某些地址被保留了,作为CPU的仿真寄存器使用,这些地址是不向用户开放的。

3.CPU中断向量。

在程序空间里也保留了64个地址作为CPU的32个中断向量。

通过CPU寄存器ST1中的VMAP位来将这一段地址映射到程序空间的底部或者顶部。

映射和空间的统一编址F2 812内部的映射空间低地址空间高地址空间2812CMD详解CMD:command命令,顾名思义就是命令文件指定存储区域的分配.2812的CMD采用的是分页制,其中PAGE0用于存放程序空间,而PAGE1用于存放数据空间。

1.)#pragma ,CODE_SECTION和DATA_SECTION伪指令#pragma DATA_SECTION(funcA,"dataA"); ------ 函数外声明将funcA数据块定位于用户自定义的段"dataA"中 ------ 需要在CMD中指定dataA段的物理地址2.)MEMORY和SECTIONS是命令文件中最常用的两伪指令。

MEMORY伪指令用来表示实际存在目标系统中的可以使用的存储器范围,在这里每个存储器都有自己的名字,起始地址和长度。

2812初学手册

2812初学手册

目录:1 简介1.1 DSP281x C/C++头文件和外设例程程序包安装1.2 目录结构2 外设位域结构编程方法2.1 传统#define 方法2.2 位域和结构方法2.2.1 外设寄存器结构2.3 增加位域2.3.1 使用Bits-Fields编程时的Read-Modify-Write 考虑2.3.2 使用Bits-Fields编程时的代码大小考虑3 外设范例3.1 开始3.2 例程结构3.2.1 包含文件3.2.2 源代码3.2.3 连接命令文件3.3 例子编程流程3.4 包含的例子3.5 从FLASH开始执行例子4 逐步使用头文件和范例代码4.1 准备4.2 包含DSP281X外设头文件4.3 包含通用范例代码5 常见问题和处理5.1 read-modify-wriye的影响5.1.1 多标志位寄存器写1 清零5.1.2 Volatile Bits 寄存器6 版本变化7 包含内容7.1 支持DSP281X的头文件7.1.1 DSP281X的头文件-主函数7.1.2 DSP281X的头文件-外设位域和寄存器结构定义文件7.1.3 CCS的 .gel 文件7.1.4 变量名和数据段7.2 通用范例代码7.2.1 支持的外设中断扩展模块7.2.2 特殊外设文件7.2.3 有用函数源文件7.2.4 范例连接 .cmd文件1 简介TI针对’DSP281x系列DSP芯片使用通用的C/C++语言编写了外设头文件和范例程序。

这些代码可以作为应用的工具或根据使用者的需要而作为开发平台的基础。

传统的编程方法需要程序员自行编写寄存器的H文件和所需的片内外设的初始化、配置文件,与传统的编程方法比较,基于C281x C/C++的头文件提供了软件开发的程序框架,其中包含有寄存器结构定义文件、外设头文件和器件的宏与类型定义等系统所需的各种文件。

通过在那新的或原有的工程文件使用外设头文件,开发者可很容易的使用C或C++语言来控制片上外设。

第4课 2812的片内资源、存储器映射以及CMD文件的编写

第4课 2812的片内资源、存储器映射以及CMD文件的编写

第4课F2812片内资源、存储器映射以及CMD文件的编写作者:顾卫钢谢芬(HELLODSP资深会员)从今天开始,我们的课程终于进入F2812的核心了,呵呵。

在今天的课程中,我们将带领大家一起学习2812的片内资源,初步了解它究竟有哪些本事,能拿来干些什么,然后一起了解2812存储器的结构,统一编址的方式、存储器映射关系,并重点分析CMD文件,以期望消除大家对CMD文件的迷惑,在自己编写程序的时候会修改CMD文件中的部分内容,从而满足自己设计时的需求。

1.F2812的片内资源我们知道,TMS320F2812是32位的定点DSP,它既具有数字信号的处理能力,又具有强大的事件管理能力和嵌入式控制功能,特别适合用于需要大批量数据处理的测控领域,例如自动化控制、电力电子技术、智能化仪表、电机伺服控制。

下面是F2812的内部资源框图。

图1 TMS320F2812内部资源框图2812采用了高性能的静态CMOS技术,时钟频率可达150MHZ(6.67ns),其核心电压为1.8V,I/O口电压3.3V,Flash编程电压也为3.3V,所以我们在设计2812电源部分的时候,需要将常用的5V电压转换成1.8V和3.3V的电压之后,才能供给2812。

具体的设计我们将会在以后的硬件设计内容里进行探讨。

让我们一起来看看图1,最左边的A(18-0)和D(15-0)是表示2812外扩存储器的能力,2812外扩的存储空间最大是219*16 bit,就是说最多只能扩512K个存储单元,每一个存储单元的位数为16位。

从图中我们也可以看到,F2812支持JTAG边界扫描(Boundary Scan),这也是为什么我们的仿真器都是采用JTAG口的原因了,在这里,提醒大家一点的就是,仿真的时候,JTAG口的方向不能插反,如果插反的话会将仿真器烧坏。

我们所使用的14针JTAG口的第6针是空脚,所以一般情况下仿真器JTAG线的第6针是填针的,同时在板子上的第6脚是拔空的,这样可以防止您插反JTAG口,以避免不必要的损失。

DSP2812学习资料整理

DSP2812学习资料整理

目录TMS320F2812引脚详细分析 (1)HELLO一:如何开始DSP的学习 (9)HELLO二:完整工程的构成 (11)HELLO三:CCS的操作 (15)HELLO四(一):2812片内资源 (25)HELLO四(二):2812存储器映射及CMD (29)HELLO五(一):2812中断系统概述 (37)HELLO五(二):2812中断系统程序 (42)HELLO六:2812的时钟系统 (46)HELLO七:2812的IO口控制--LED点亮程序 (51)HELLO八(一) 2812EV模块---通用定时器 (52)2812---通用定时器1初始化程序(启动ADC) (59)HELLO八(二) 2812EV模块---PWM (62)DSP---PWM波形源码 (68)HELLO九:2812--SCI模块 (74)SCI查询方式 (83)TMS320F2812引脚详细分析推荐XINTF信号XA[0]~XA[18] --- 19位地址总线XD[0]~XD[15] --- 16位数据总线XMP/MC` --- 1 -- 微处理器模式 --- XINCNF7有效0 -- 微计算机模式 --- XINCNF7无效XHOLD` --- 外部DMA保持请求信号。

XHOLD为低电平时请求XINTF释放外部总线,并把所有的总线与选通端置为高阻态。

当对总线的操作完成且没有即将对XINTF进行访问时,XINTF释放总线。

此信号是异步输入并与XT IMCLK同步XHOLDA` --- 外部DMA保持确认信号。

当XINTF响应XHOLD的请求时XHOLDA呈低电平,所有的XINTF总线和选通端呈高阻态。

XHOLD和XHOLDA信号同时发出。

当XHOLDA有效(低)时外部器件只能使用外部总线XZCS0AND1` --- XINTF区域O和区域1的片选,当访XINTF区域0或1时有效(低)XZCS2` --- XINTF区域2的片选,当访XINTF区域2时有效(低)XZCS6AND7` --- XINTF区域6和区域7的片选,当访XINTF区域6或7时有效(低)XWE` --- 写有效。

浅谈2812上的外扩接口XINTF

浅谈2812上的外扩接口XINTF

浅谈2812上的外扩接口XINTFXINTF全称是eXternalINTerFace。

一开始我还以为是外部中断,居然用了那么多管脚。

后来拿到现在用的实验板后看例子才知道是外扩接口。

这个功能(模块)只在2812上有,它把外设直接映射到寻址空间的五个区域内。

好处是显而易见的——外扩存储设备具有和片内内存相同的地址空间。

可以直接通过地址进行访问。

上图是来自2812数据手册的XINTF示意图,XINTF的地址范围并不连续,共分为5个区域∙8K的Zone0和Zone1∙512K的Zone2和Zone6∙16K的Zone7用例子来说,当你读取0x2001的时候,这个地址属于zone0,硬件就会在nXZCS0AND1引脚上产生选通信号,转换后的实际地址通过XA线传递给外扩部件,相应的数据通过XD返回到DSP。

从这个意义上来看,XINTF相当于是一个MMU(内存管理单元)。

1).XINTF接口总线映射到5个区,区0,1,2,6,7;2).每个区都有一个内部片选信号,区0,1的片选信号,区6,7的片选信号在内部AND(与)后,通过管脚输出,所以实际的片选信号为三个,XZCS0AND1, XZCS2, XZCS6AND7.3).区2,和区6共享相同的外部总线物理地址,起始外部总线物理地址为0x00000-0x7ffff,两者靠片选信号XZCS0AND1, XZCS2区分。

4). 区0,区1使用相同的片选XZCS0AND1,但是两者外部总线物理地址不同,区0为0x20000-0x3ffff,区1为0x40000-0x5ffff,因此两者的片选XZCS0AND1要和其地址总线的13,14位XA{13],XA[14]通过外部逻辑配合才能产生能够区分区两者的有效片选信号。

5).区7只有当XMP\MC引脚复位的时候被拉高才能被外部总线连接,如果该区复位时未连接,复位后,可以通过XINTCNF2的XMP|MC位,使能该区。

如果区7复位时连接,2812认为复位位置以及向量表存在该区域,因此区7可以存储用户引导程序。

TMS320F2812DSP学习

TMS320F2812DSP学习

TMS320F28121 上电注意1)TMS320LF24xx:TPS7333QD,5V变3.3V,最大500mA2)JTAG中有四条地线,和P1(哈丁48输入ADC)中5v的地是联通的说明是由5v 供电的3)JTAG中的两条TCK是相同的4)P1中的每个输入有一个备用的5)电源连接后一定要检测,确保正、负极正确连接6)上电后不用示波器或者万用表点测,否则极易短路,如需,则上电之前用线焊上连出,将示波器探头连好7)送电之前一定用万用表测量电源和地是否短路8)连线务必焊接牢固,防止虚焊,否则易有过冲9)确保连出的线头不会短路,操作过程中不会互相碰触10)所有线头挂锡,否则相连太近的线头毛刺易短路10)仿真器不能热插拔11)加入的信号一定要确保在板子的额定之内,如AD电压不超过3V等2 仿真器驱程安装和ccs设置仿真器型号:USB2.0操作系统:WIN98,WINNT,WIN2000CPU:C2000,C5000,C6000口地址:0x240安装过程如下:1.首先安装USB驱动,与安装其它硬件类似。

2. 安装其它程序,运行SETUP即可。

1)仿真器作用:主要是通过仿真器将DSP开发板与电脑连接,这样所编写的程序才能写入DSP芯片,以及在计算机上通过软件(CCS软件)调试DSP开发板,没有仿真器几乎做不了什么(高手可能出外),现在仿真器一般都是USB接口的,比如XDS510DSP仿真器等等,可以对各种系列DSP使用。

开发板按照板上的DSP芯片信号又分为:2000系列(一般自动控制用),5000系列(一般数字信号处理用),6000系列(一般图像处理用)2)USB 仿真器的安装及设置(1)点击光盘中文件Techusb USB 仿真器安装“USB——SETUP.EXE”.(2)点击下一步;(3)点击下一步;(4)USB驱动安装了,再检测USB与计算机连接是否正常,点击“USB20EMURST.EXE”按“RESET(R)”键,出现如上图标则表示正确。

第2章TMS320F2812DSP内部结构

第2章TMS320F2812DSP内部结构
3
该产品的主要特点是:
1.运算速度 单周期指令执行时间为50、35或25ns; 即运算能力为20、28.5或40MIPS。
4
2. 兼容性
源代码与TMS320C1X/C2X全部产品兼容; 产品与TMS320C5X产品向上兼容;
5
3. 片内存储器
内部配置数量不同的RAM和ROM存 储器,有的芯片还配有闪速存储器Flash。 利用闪速存储器存储程序,不仅能降 低成本,减小体积,而且系统升级也比较 方便。
27
2.1.1 TMS320F2812CPU内部结构
除以上几个主要部分外,该控制器还包 含如指令队列、指令译码逻辑、中断处理 逻辑等控制单元。
28
2.1.1 TMS320F2812CPU内部结构
F2812 CPU的主要寄存器 • 累加器(ACC,AH、AL) • 辅助寄存器(XAR0-XAR7,AR0-AR7) • 状态寄存器(ST0) • 状态寄存器(ST1)
32 32
16/32 8/16/32
Shift R/L (0-16)
32
8/16 32
程序存储 区
Shift R/L (0-16)
数据存储区
32
ALU (32)
32 ACC (32) AH (16) AL (16)
AL.LSB AH.MSB AH.LSB AL.MSB
操作数2 来自于寄存器
• 32
Shift R/L (0-16)
1 1 1 1 2 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1
8
表 1.2 TMS320C24X 内部资源配置
设备 RAM ROM FLASH BOOT 通用 看门 PWM SPI (16 位) (16 位) (16 位) ROM 定时器 狗 通道 _ _ _ _ _ 32K 16K 6K 8K _ _ 4K _ 32K 32K 16K 8K 8K _ _ _ _ 8K 8K _ 16K 256 256 256 256 256 _ _ _ _ _ _ _ _ 4 4 2 2 2 4 4 2 2 2 2 2 3 Y Y Y Y Y Y Y Y Y Y Y Y Y 16 16 8 8 7 16 16 8 7 8 8 8 12 Y Y Y _ _ Y Y _ _ Y Y _ Y SCI CAN Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y _ _ Y _ _ _ Y Y _ _ A/D 通道 16ch 16ch 8ch 8ch 5ch 16ch 16ch 8ch 5ch 8ch 8ch 8ch 16ch I/O 引脚 41 41 21 21 13 41 41 21 32 26 26 26 28 电压 3.3 3.3 3.3 3.3 3.3 3.3 3.3 3.3 3.3 5 5 5 5 MIPS 40 40 40 40 40 40 40 40 40 20 20 20 20

TMS320F2812中FLASH寄存器的配置问题解答

TMS320F2812中FLASH寄存器的配置问题解答

TMS320F2812中FLASH寄存器的配置问题解答问:我使用的是TI 2000系列芯片中的2812!我使用的是汇编语言对其进行开发,目前主程序已经完成,需要烧写到FLASH中运行,但烧写过后发现在FLASH中运行的速度和在RAM中用仿真器仿真的速度差不多!这样就太慢了,我设置的PLL倍频到150MHZ,后来发现是有关FLASH的一些配置寄存器没有进行配置,我想在FLASH中运行速度过慢的原因可能是这个造成的吧!我查看了TI的说明文档,其中关于FLASH寄存器的介绍中,有如下的一段:Note: Flash configuration registers should not be accessed while anaccess is in progress in flash or OTP memoryThe flash registers should not be accessed from code that is running fromOTP or flash memory or while an access may be in progress. All register accessesto the flash registers should be made from code executing outsideof flash/OTP memory and an access should not be attempted until all activityon the flash/OTP has completed. No hardware is included to protect for this.You can read the flash registers from code executing in flash/OTP; however,do not write to the registers.从上面的一段看出,如果需要配置FLASH的寄存器,必须执行FLASH以外存储空间的程序才可以实现,我又发现这些寄存器是受EALLOW和CSM保护的,所以我按照以下步骤试图重新配置寄存器:1,在执行存放于FLASH中的主程序段时,将一段存于FLASH中的初始化flash配置寄存器的程序完全复制到片内L0SARAM中,该初始化程序如下:MOVW DP,#DP_FLASH ;指向FLASH寄存器所在的页面EALLOWMOV AL,#01HMOV @FOPT,AL ;使能FLASH流水线模式MOV AL,#03HMOV @FPWR,ALMOV AL,#0FFHMOV @FSTDBYWAIT,ALMOV AL,#0FFHMOV @FACTIVEWAIT,ALMOV AL,#0203HMOV @FBANKWAIT,ALMOV AL,#06HMOV @FOTPWAIT,ALEDISLB FLASH_RET ;FLASH_RET 是我这段程序需要返回到的地址2,我配置了CSM模块的寄存器,使得器件不受CSM的保护3,用MOVL XAR7,#8300H ;200H是初始化程序复制到RAM中的地址LB *XAR7从FLASH跳转到RAM中执行该段初始化FLASH的程序4,从RAM中返回到FLASH中的主程序继续执行但发现这段程序烧写到片子里面后,不能按照我的意图执行,FLASH寄存器没有得到重新配置,请问这是什么原因呢?我上述的几个步骤对不对呢?请问,如果在程序烧写到片内FLASH中,在执行该程序时,想调到RAM中执行另一段程序,这种情况应该如何实现呢?应该有哪些需要注意的地方呢?如果那位有配置FLASH寄存器的例子的话,请发给我一份做一下参考吧!======================================================== 答:在flash中怎么能运行配置属于flash的寄存器呢?自己改变自己是不行的。

DSP4系统与实验教程_2812存储器

DSP4系统与实验教程_2812存储器

2812的存储器配置本堂课我们来介绍存储器映像及CMD文件的编写,这部分内容较多,也是DSP区别于单片机的主要表现之一。

尤其是CMD文件的编写,工作中很多DSP的工作都是要围绕这个部分的内容进行,编写好的CMD文件也是衡量一个工程师水平高低的最好的体现。

那么我们现在就开始今天的课程。

第一节Memory简介在我们买计算机的时候,硬盘空间的大小是衡量计算机性能指标之一,在嵌入式DSP的工作时,存储器同样也是衡量的标准之一。

1.1What’s the memory?存储器是存放DSP运行过程中指令、代码、数据的地方,存储器的大小也直接影响到我们所编写的程序。

如果我们的程序量较大但选择了存储空间小的DSP时候,(工作中也经常遇到这样的问题,解决的方式之一就是充分的分析代码,看看能否压缩;第二就是将C语言改写成汇编语言)。

1.22812的memory的结构下面我们来看一下2812存储器的结构,是由那几部分组成的。

2812的CPU是不含有存储器的,但他可以访问片内也可访问片外的存储器。

2812的存储器分为这几个方面:1.程序或数据存储器1)单口随机存储器SRAM2)只读存储器ROM3)FLASH(3D 8000~3F 7FFF)共划分为ABCDEFGHIJ.A端地址(3F 6000~3F 7FFF)【注:FlashA】为Flash的高地址段最高的部分用于其他的功能【注:The difference between RAM & FLASH】平时先调试程序的时候,先将程序存放在RAM空间,限电丢失,一方面执行速度较快,另一方面下载速度较快;等到程序调试完毕后,程序下载到FLASH空间中。

他们可以被映射到程序空间或数据空间。

有同学会问“映像”是什么意思,英文“map”,意思是可以被分配用于程序空间(指令代码)或数据空间(数据资源)。

【注:the memory map in 2812】【注:Symbol】我们存储器的容量大小通常使用多少K*16位来表示。

1 TMS320F2812简介

1 TMS320F2812简介

1 TMS320F2812简介TMS320F2812是TI公司的一款用于控制的高性能、多功能、高性价比的32位定点DSP芯片。

该芯片兼容TMS320LF2407指令系统最高可在150MHz主频下工作,并带有18k×16位0等待周期片上SRAM和128k×16位片上FLASH(存取时间36ns)。

其片上外设主要包括2×8路12位ADC(最快80ns转换时间)、2路SCI、1路SPI、1路McBSP、1路eCAN等,并带有两个事件管理模块(EVA、EVB),分别包括6路PWM/CMP、2路QEP、3路CAP、2路16位定时器(或TxPWM/TxCMP)。

另外,该器件还有3个独立的32位CPU定时器,以及多达56个独立编程的GPIO引脚,可外扩大于1M×16位程序和数据存储器。

TMS320F2812采用哈佛总线结构,具有密码保护机制,可进行双16×16乘加和32×32乘加操作,因而可兼顾控制和快速运算的双重功能。

通过对TMS320F2812定点DSP芯片合理的系统配置和编程可实现快速运算,本文着重对此加以说明。

2 TMS320F2812基本系统配置2.1TMS320F2812时钟TMS320F2812的片上外设按输入时钟可分为如下4个组:(1)SYSOUTCLK组:包括CPU定时器和eCAN总线,可由PLLCR寄存器动态地修改;(2)OSCCLK组:主要是看门狗电路,由WDCR寄存器设置分频系数;(3)低速组:有SCI、SPI、McBSP,可由LOSPCP寄存器设置分频系数;(4)高速组:包括EVA/B、ADC,可由HISPCP寄存器设置分频系数。

为了使系统具有较快的工作速度,除了定时器和SCI等少数需要低速时钟的地方,其它外设均可以150MHz时钟工作。

图12.2存储空间图1所示是TMS320F2812的内部存储空间映射图。

TMS320F2812为哈佛(Harvard)结构的DSP,即在同一个时钟周期内可同时进行一次取指令、读数据和写数据的操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2812存储器映射
2812具有32位的数据地址和22位的程序地址,总地址空间可以达到4M的数据空间和4M的程序空间。

32位的数据地址,就是能访问2的32次,是4G,而22位的程序地址,就是能访问2的22次,是4M。

其实,2812可寻址的数据空间最大是4G,但是实际线性地址能达到的只有4M,原因是2812的存储器分配采用的是分页机制,分页机制采用的是形如0xXXXXXXX的线性地址,所以数据空间能寻址的只有4M。

2812的存储器被划分成了下面的几个部分:
1. 程序空间和数据空间。

2812所具有的RAM、ROM和FLASH都被统一编址,映射到了程序空间和数据空间,这些空间的作用就是存放指令代码和数据变量。

2. 保留区。

数据空间里面某些地址被保留了,作为CPU的仿真寄存器使用,这些地址是不向用户开放的。

3.CPU中断向量。

在程序空间里也保留了64个地址作为CPU的32个中断向量。

通过CPU 寄存器ST1中的VMAP位来将这一段地址映射到程序空间的底部或者顶部。

映射和空间的统一编址
F2812内部的映射空间
低地址空间
高地址空间
2812CMD详解
CMD:command命令,顾名思义就是命令文件指定存储区域的分配.2812的CMD采用的是分页制,其中PAGE0用于存放程序空间,而PAGE1用于存放数据空间。

1.)#pragma ,CODE_SECTION和DA TA_SECTION伪指令
#pragma DATA_SECTION(funcA,"dataA"); ------ 函数外声明
将funcA数据块定位于用户自定义的段"dataA"中 ------ 需要在CMD中指定dataA段的物理地址
2.)MEMORY和SECTIONS是命令文件中最常用的两伪指令。

MEMORY伪指令用来表示实际存在目标系统中的可以使用的存储器范围,在这里每个存储器都有自己的名字,起始地址和长度。

SECTIONS伪指令是用来描述输入端是如何组合到输出端内的。

以常用的F2812_nonBIOS_RAM.cmd F2812_nonBIOS_Flash.cmd 和 DSP281x_Headers_ nonBIOS.cmd为例
F2812_nonBIOS_RAM.cmd ----- 用于仿真,无BIOS系统,片外SRAM配置
CMD文件里有两个基本的段:初始化段和非初始化段。

初始化段包含代码和常数等必须在D SP上电之后有效的数。

故初始化块必须保存在如片内FLASH等非遗失性存储器中,非初始化段中含有在程序运行过程中才像变量内写数据进去,所以非初始化段必须链接到易失性存储器中如RAM。

已初始化的段:.text,.cinit,.const,.econst,..pinit和.switch..
.text:所有可以执行的代码和常量
.cinit:全局变量和静态变量的C初始化记录
.const:包含字符串常量和初始化的全局变量和静态变量(由const)的初始化和说明
.econst:包含字符串常量和初始化的全局变量和静态变量(由far const)的初始化和说明
.pinit:全局构造器(C++)程序列表
.switch:包含switch声明的列表
非初始化的段:.bss,.ebss,.stack,.sysmem,和esysmem.(更好的理解就是,这些段就是存储空间而已)
.bss: 为全局变量和局部变量保留的空间,在程序上电时.cinit空间中的数据复制出来并存储在. bss空间中。

.ebss:为使用大寄存器模式时的全局变量和静态变量预留的空间,在程序上电时,cinit空间中的数据复制出来并存储在.ebss中
.stack:为系统堆栈保留的空间,用于和函数传递变量或为局部变量分配空间。

.sysmem:为动态存储分配保留的空间。

如果有宏函数,此空间被宏函数占用,如果没有的话,此空间保留为0
.esysmem:为动态存储分配保留的空间。

如果有far函数,此空间被相应的占用,如果没有的化,此空间保留为0.
F2812_nonBIOS_Flash.cmd --- 用于无BIOS,从片内FLASH引导
对于程序在FLASH 中运行时,需要注意的: DSP 在150M 时钟频率下,FLASH 中只能提供大约120M 的时钟频率,所以有时候我们希望在RAM 中运行时间敏感或计算量很大的子程序(比如AD 采样)。

但是我们所有代码都放在FLASH 中,这就必须在上电后将FLASH 中的这
段敏感程序复制到RAM中运行,加快速度。

这是在.CMD文件就必须划分一段用来设置RA M的载入和运行地址。

程序代码如下:
SECTIONS {………
ramfuncs : LOAD = FLASHD,
RUN = RAML0,
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
PAGE = 0
}
DSP281x_Headers_nonBIOS.cmd ----- 用于无BIOS,外设寄存器产生的数据段映射至对应的存储器空间
cmd小技巧:
如果.text文件很大将其放在一段放不下,需将其放到两个程序段中
最长的一个length=0x002000,也放不下时.可以这样处理:
PAGE 0 :
PRAMH0 : origin = 0x3F8002, length = 0x0014FE
L0RAM : origin = 0x008000, length = 0x001000
SECTIONS
.text:{*(.text)} >>PRAMH0|L0RAM
这样就可以将.text文件放在两个定义段中。

查看段的分配及使用情况.map的链接器(存储器)分配映射文件,链接器的map文件描述以下内容:通过map文件可以查看各段的分配情况,包括段的起始地址,使用的字节数等配合cmd文件的使用,可确定各个段的使用情况,从而保证程序的正常运行和最小的空间使用。

VisualLinker可视化链接器TI公司出品的DSP软件开发环境CCS还提供了一种可视化生成存储器配置文件的工具:VisualLinker可视化链接器。

如果程序原来包含了一个链接器命令
文件(.cmd文件),则当创建可视化链接文件的时候,原来cmd文件中的内存配置仍然会被
使用。

如果读者想修改内存配置,双击.rcp文件就会在CCS中打开可视化链接器的图形界面,调整每个内存模块的大小,直到认为合适,然后只需要重新连编,程序即可生成新的输出文件,重复上面的步骤,直到出现满意的结果。

相关文档
最新文档