第7章-存储器映像及Boot引导模式0403

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

7.1F2812的存储器映像7.2外部接口XINTF7.3F2812的上电引导7.4FLASH的烧写固化7.1F2812的存储器映像TMS320F2812的CPU本身不含存储器,但它可以通过总线访问DSP片内其他地方的存储器或者片外存储器。F2812的存储器被划分成如下几个部分:①程序/数据存储器。F2812具有片内单口随机存储器SRAM、只读存储器ROM和Flash存储器。它们被映像到程序空间或者数据空间,用来存放执行代码或存储数据变量。②保留区。数据区的某些地址被保留作为CPU的寄存器使用。③CPU中断向量。在程序地址中保留了64个地址作为CPU的32个中断向量。通过ST1的为VMAP可以将CPU的中断向量映像到程序空间的顶部或底部。7.1.1存储器的结构存储器名称存储器容量FLASH128K*16位H0(SRAM)8K*16位L0(SRAM)4K*16位L1(SRAM)4K*16位M0(SRAM)1K*16位M1(SRAM)1K*16位BootROM4K*16位OTP(OneTimeProgrammableROM)1K*16位表7-1片内存储器资源7.1.1存储器的结构7.1F2812的存储器映像7.1.2F2812的存储器映像存储器映像的概念:“Map”存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配的,给存储器分配地址的过程就称为存储器映射。7.1F2812的存储器映像7.1.2F2812的存储器映像存储器映像的概念:“Map”实际物理存在的存储器,配置成不同的程序空间或数据空间,分配上各自的标签(也就是地址),然后通过该空间的地址来访问实际的物理上的存储器。7.1F2812的存储器映像F2812存储器映像1.统一编址,共用同一个地址空间。2.每个存储空间都有唯一的地址。3.PF0~2只与数据存储有关。4.某些范围的存储器受到EALLOW保护,以避免配置后的改写。5.BootROM和外扩的XINTF区7不能被同时激活,由MP/MC引脚的电平来决定哪个被激活。6.向量表位置。7.1.3F2812各个存储器模块的特点(1)片内SARAMSARAM为单口随机读/写存储器,简称片内RAM。含有18K×16位的RAM空间,分为H0、L0、L1、M0、M1共5个存储器。这些存储器模块,都可以被单独访问,并且觉可以作为程序空间或数据空间,用来存放指令代码或者存储数据。L0、L1受代码安全模块CSM保护。(2)片内OTPROM(一次性可编程ROM)有2K×16位的OTPROM空间,其中1K由TI公司保留,作为系统测试使用;剩余1K用户可以使用。OTP中的内容受代码安全模块CSM保护。7.1F2812的存储器映像7.1.3F2812各个存储器模块的特点(3)BootROM(引导ROM)该存储空间有TI公司装载了产品的版本号、发布的数据、校验求和信息、复位矢量、CPU矢量及数学表等。BootROM主要作用是实现DSP的Bootloader功能。芯片出厂时,在BootROM的0x3FFC00~0x3FFFBF存储器内装有厂家的引导装载程序。,DSP被置位微计算机模式,CPU在复位后将执行这段程序,从而完成Bootloader功能。(4)片内FlashF2812片内含有128K×16位的Flash,分为4个8K×16位和6个16K×16位的存储段,用户可以单独对某些段进行操作。内容受CSM模块保护。/0MPMC7.1F2812的存储器映像7.1.3F2812各个存储器模块的特点(5)代码安全模块CSM可以保护Flash/ROM、OTPROM和L0、L1SARAM;防止系统中的软件程序被修改或读取。(6)外设帧PFF2812有3个外设帧PF0、PF1、PF2,专门用于外设寄存器的映像空间。除了CPU的寄存器外,其他寄存器均放在了PF0、PF1和PF2内。有的外设寄存器受EALLOW指令保护,防止一些偶然的代码或指针去破坏寄存器的内容。再写外设寄存器相关程序时,操作前需要加指令EALLOW,操作结束后使用EDIS。7.1F2812的存储器映像7.2外部接口XINTF7.2.1XINTF的存储区域外部接口XINTF采用非复用异步总线,通常可用于扩展SRAM、Flash、ADC、DAC模块等。XINTF接口是F2812与外部设备进行通信的重要接口,这些外部接口分别和CPU的某个存储空间相对应,CPU通过对存储空间进行读/写操作,从而间接控制外部接口。在使用XINTF接口同外部设备进行通信时,无论是写操作还是读操作,CPU都作为主设备,外部设备作为从设备。外部设备不能控制F2812的外部接口信号线,只能读取、判断信号线的状态,来进行相应的操作。16根数据总线19根地址总线跟读写操作有关的一些控制信号TMS320F2812的有16根数据总线和19根地址总线.常用SRAM芯片IS61LV51216和IS61LV25616。容量分别为512K×16位和256K×16位.常选用的Flash芯片型号为SST39VF160、SST39VF400.外扩RAM/FLASH的设计16位19位XINTF7.2外部接口XINTFXZCS7取决于MP/MC的状态7.2外部接口XINTF7.2外部接口XINTF7.2.1XINTF的存储区域外部接口的访问:①各个区域共享外部地址总线,例如,当CPU访问Zone2和Zone6空间的第一个字时,地址总线产生0x00000地址;当CPU访问Zone2和Zone6空间的最后一个字时,地址总线产生0xFFFFF地址。访问Zone2和Zone6空间的唯一区别在于控制的片选信号不同,分别是XZCS2和XZCS6ANDCS7。例如:如果CPU现在要向地址为Ox002001中写入数据,具体过程是:1:将片选信号置为低电平,这样就选中了以Ox002000为为起始地址的区域0;2:接着有19根地址总线产生偏移地址Ox0001;这样就产生了地址Ox002001。XZCS0AND17.2外部接口XINTF7.2.1XINTF的存储区域7.2外部接口XINTF7.2.1XINTF的存储区域外部接口的访问:②当系统使能某个片选信号时,相应的外部设备就会被选中,数据就可以存储到相应的存储空间内,或者数据就可以从相应的存储空间内读取出来。例如,当XZCS2信号为低电平时,表示Zone2(0x080000~0x100000)这片存储区域被选中,也就是和这片存储区域相对应的外部设备被选中。7.2外部接口XINTF7.2.1XINTF的存储区域外部接口的访问:对于两个区域共用片选信号时,例如zone0(0x2000~0x3FFF)和zone1(0x4000~0x5FFF)0x20x30x30x4XZCS0AND17.2外部接口XINTF7.2.1XINTF的存储区域外部接口的访问:④Zone7的映射同MP/MC有关,而Zone0,1,2,6总是有效的存储空间,同MP/MC状态无关。DSP复位时,XMP/MC引脚的值被采样,然后锁入XINTF的配置寄存器XINTFCNF2中,该引脚电平决定BootROM还是XINTF7被使能。7.2外部接口XINTF7.2.2XINTF的时钟XINTF模块有两种时钟模式XTIMCLK和XCLKOUT,下图给出了CPU、SYSCLKOUT时钟同XINTF时钟之间的关系。XINTF配置寄存器XINTF各个区相应的时序寄存器,中可以设置每个XINTF空间访问各阶段的等待的XTIMCLK周期数。系统时钟XINTF模块的基本时钟7.2外部接口XINTFXTIMCLK是XINTF接口各个区域时序的基本时钟,所有的外部扩展访问都是以XTIMCLK为参考的,因此在配置XINTF时,首先要通过XINTFCNF2寄存器配置XTIMCLK。XTIMCLK可以配置为SYSCLKOUT,也可以配置为SYSCLKOUT/2,XTIMCLK默认的值是SYSCLKOUT/2。7.2.2XINTF的时钟7.2外部接口XINTF外部接口还提供了一个时钟输出XCLKOUT,对XINTF的访问都是在XCLKOUT的上升沿开始的,其大小取决于XINTFCNF2寄存器CLKMODE位。1时配置为XTIMCLK/2,0时配置为XTIMCLK,默认的值是XTIMCLK/2。此外,XCLKOUT还受到XINTFCNF2寄存器CLKOFF位的控制。7.2.2XINTF的时钟7.2外部接口XINTF7.2.2XINTF的时钟XINTF配置寄存器XINTCNF2设置XTIMCLK,000和001两种XCLKOUT输出的模式0XCLKOUT=XTIMCLK1XCLKOUT=XTIMCLK/2禁止XCLKOUT输出,主要为了将低功耗和减少噪声。复位时CLKOFF的值是0。0允许XCLKOUT输出1禁止XCLKOUT输出7.2外部接口XINTFF2812的XINTF映射到5个独立的存储空间。当访问相应的存储空间时,就会产生一个片选信号。每个空间都可以独立地设置访问等待、选择、建立以及保持时间,同时还可以使用XREADY信号来控制外设的访问。外部接口的访问时钟频率由内部的XTIMCLK提供XTIMCLK可以等于SYSCLKOUT或SYSCLKOUT/2。外扩RAM的设计写信号引脚读信号引脚同DSP的XZCS6AND7相连,表示选择了2812的XINTF6区,起始地址为0x100000SST39VF160512K同DSP的XZCS2相连,表示选择了2812的XINTF2区,起始地址为0x80000写信号引脚读信号引脚外扩FLASH的设计7.3F2812的上电引导上电引导流程图BootROM,地址为0x3FF000~0x3FFFFFInitBoot函数:1.对芯片初始化,并将DSP配置成28x工作模式;2.选择引导方式0x3F7FF60x3F80000x3D7800_c_int00是boot.asm的入口地址boot.asm文件:1.为堆栈预留空间,设置堆栈指针初始值;2.初始化状态寄存器;3.初始化全局变量;4.初始化C++变量,设置C运行环境;7.调用主函数main()。按照一定的数据流格式接受来自外部的用户代码,写入DSP对应的目标内存,完成装载。

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功