czs调试说明书Word文件下载.docx

上传人:b****5 文档编号:16212288 上传时间:2022-11-21 格式:DOCX 页数:14 大小:2.36MB
下载 相关 举报
czs调试说明书Word文件下载.docx_第1页
第1页 / 共14页
czs调试说明书Word文件下载.docx_第2页
第2页 / 共14页
czs调试说明书Word文件下载.docx_第3页
第3页 / 共14页
czs调试说明书Word文件下载.docx_第4页
第4页 / 共14页
czs调试说明书Word文件下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

czs调试说明书Word文件下载.docx

《czs调试说明书Word文件下载.docx》由会员分享,可在线阅读,更多相关《czs调试说明书Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。

czs调试说明书Word文件下载.docx

4时钟

通过时钟分发芯片MPC9447将输入的66MHz晶振信号分发为5路时钟,分别提供给CPU,SDRAM,LocalSDRAM,CPLD和电路板外部。

5复位

8260的复位逻辑有以下几种输入:

不同的复位源会有不同的复位效果。

这里要重点说明的是上电复位过程。

当外部输入信号/PORESET有效时开始上电复位流程。

在供给芯片的电压达到至少2/3Vcc以后,/PORESET有效信号还必须保持至少16个输入时钟周期。

此时CPU的输出管脚/HRESET和/SRESET都为低电平。

当/PORESET引脚由低变高时候,采样/RSTCONF的电压,以决定芯片的工作模式。

如果/RSTCONF是高电平,8260配置为从模式,如果为低则8260配置为主模式。

我们用跳线来决定这个管脚的值,调试时注意加上跳线帽。

然后MPC8260开始它的配置过程,整个配置过程需要1024个输入时钟周期,这个过程中读取硬复位配置字。

然后CPU采样MODCK[1:

3]来决定芯片的工作频率,锁相环锁定频率后,/HRESE和/SRESET分别再保持512和515个周期的低电平,然后变高,完成复位时序。

复位过程要采集四个外部配置管脚的值,分别是/RSTCONF和MODCK[1–3]。

/RSTCONF配置主从模式,MODCK[1–3]与复位配置字中的MODCK[4–7]共同决定内核和CPM的运行频率。

复位过程顺序如下:

1在/PORESET管脚的上升沿采集/RSTCONF管脚的值。

21024个时钟周期的配置期间。

3内部PORESET的上升沿采集MODCK[1–3]管脚的值。

4根据MODCK[1–7]的值锁定锁相环。

5锁相环锁定后再过512/515个时钟周期分别将/HRESET和/SRESET置为高电平。

配置过程中支持高达八个CPU的不同配置。

在多CPU系统中每个CPU的/RSTCONF管脚因按下表连接。

即主CPU接低电平,从CPU接主CPU的地址线的A0、A1等管脚。

配置期间CPU从CS0选中的器件(am29lv040b)中读取4个字节的复位配置字。

以下是示波器捕捉到的复位期间的/sreset(黄)和/cs0(蓝)信号,刻度每大格是5微秒。

复位期间片选信号CS0每个周期约为500ns,在/sreset低电平期间CS0共有八组低电平,每组包含四个时钟周期,分别读取4个字节的复位配置字。

由于这里是单CPU系统,实际上只用了cs0信号的第一组低电平进行配置。

这组低电平期间,存储控制器其按照八位的数据总线接口访问BOOTROM(am29lv040b),从BOOTROM地址0x00,0x08,0x10,0x18处读取四个字节的复位配置字。

MODCK[1–7]的取值详见参考手册[1]。

复位过后CPU从CS0选中器件的0x100地址处开始取程序执行(PowerPC的复位异常入口地址),数据总线宽度由复位配置字的BPS位确定,可以为8位、16位、32位或64位。

6硬复位配置字

系统上电复位配置过程中,CPU默认访问CS0控制的外部存储空间,获得32位长的一个硬复位配置字。

模块的CS0连接的是BOOTROM(am29lv040b)。

硬复位配置字共有4个字节,分别存储在BOOTROM的0x00、0x08、0x10、0x18地址中。

负责系统启动的代码则从BOOTROM的0x100地址开始存放。

上电复位过程结束后,CPU从BOOTROM的0x100地址开始取指令执行。

硬复位配置字的内容如表2-1所示。

表2-1硬复位配置字

硬复位配置字的设置至关重要,关系到整个系统是否能够正常工作起来。

EARB=0,总线仲裁模式的选择,为内部仲裁。

EXMC=0,没有外部存储控制器。

CDIS=0,核是激活的。

EBM=0,总线模式为单总线模式,MPC8260有两种总线模式,即60X单总线模式和60X兼容总线模式,一般要是接二级Cache的话则选择后者,本系统中没有接二级Cache,所以选择前者。

BPS=01,引导ROM的空间为8bit数据宽(am29lv040B是8位数据宽度)。

CIP=0,CPU复位向量地址为0xFFFn_nnnn

ISPS=0,对外部主控制器而言,MPC8260的内部存储空间是以64bit宽度访问。

L2CPC=00,二级Cache的管脚配置。

DPPC=00,数据奇偶校验的管脚配置。

ISB=010,内部空间的基地址的匹配空间为0x0F00_0000。

BMS=0,引导空间的地址区域,为0xFE00_0000—0xFFFF_FFFF。

BBD=0,总线忙使能(即复用管脚设置成了总线忙信号管脚),这样总线忙时我们能看到电源灯旁边的总线灯在闪烁。

MMR=00,总线请求线没有屏蔽。

LBPC=00,局部总线的管脚配置成局部总线的功能。

APPC=00,地址奇偶校验管脚配置。

CSl0PC=01,芯片选择第10管脚配置为/BCTL1。

MODCK_H=0110,输入时钟频率为66MHz,CPM的频率为166MHz,核的频率为266MHz。

注意此时须保证MODCK[1:

3]=111,这三个管脚也是由跳线决定的。

所以这种情况下硬件配置字为0x04,0x02,0x00,0x46,定义在BSP的config.h文件中,编译后被烧写进BOOTROM的0x00,0x08,0x10,0x18地址处。

硬复位配置字的有些位对于复位过程没有影响,可以在开始执行程序后通过程序改变,主要位于SIUMCR寄存器中。

另外ISB定义了内部存储空间的基址,MPC8260的内部空间的地址是由这个基址加偏移地址所确定。

偏移地址是固定的,基址可以由程序改变。

我们在复位配置时将基地址设为0x0,在程序中再修改。

/*

*initializetheIMMRregisterbeforeanynon-coreregisters

*modification.

*/

lisr4,HIADJ(0x000101A8)

addir4,r4,LO(0x000101A8)

sync

lisr5,HIADJ(INTERNAL_MEM_MAP_ADDR)

addir5,r5,LO(INTERNAL_MEM_MAP_ADDR)

stwr5,0(r4)/*initializetheIMMRregister*/

比较重要的还有,CS10PC决定将对应管脚定义为/CS10还是/BCTL1,由于我们要用/BCTL1控制缓冲芯片的使能管脚,所以要选择/BCTL1。

DPPC设置一些中断管脚的使用,在需要用到中断管脚时应注意这些位的设置是否正确。

这些项在SIUMCR中,可以由程序改变。

我们选择的配置频率如下表:

MODCK_H

MODCK[1–3]

InputClockFrequency

CPMMultiplicationFactor

CPMFrequency

CoreMultiplicationFactor

CoreFrequency

0110_111

66MHz

2.5

166MHz

4

266MHz

 

7初始化程序

复位过后,CPU从BOOTROM的0x100处开始执行程序。

编译后在这个位置的程序是BSP文件夹下的rominit.s,也即整个平台的入口程序,是用PowerPC汇编语言编写的,主要对8260的一些重要的SIU寄存器和储存控制器进行初始化,还有cache使能,段寄存器、浮点寄存器等的初始化。

各个寄存器在内部空间的偏移地址可以查手册第三章MemoryMap。

存储器控制器(MEMC)的初始化是初始化程序重要的一部分,决定了各种外部存储器和设备能否正常工作。

MPC8260包含12个基本寄存器BRx(BR0-BR11)和12个选择寄存器ORx(OR0-OR11),分别对其12个存储器进行设置。

初始化主要是对基本寄存器和选择寄存器、SDRAM的模式寄存器、刷新定时器寄存器、刷新定时器预定标寄存器等进行设置。

BRx(BR0-BR11)包含各存储器的基地址和地址类型,同时包含该存储器判决和存储器操作时的存储机制的选择。

ORx(OR0-OR11)定义了存储体的大小和接入判决,ORx根据BR[MS]的设置可以支持三种不同的操作模式:

SDRAM、GPCM、UPM。

对于选择GPCM机制的存储控制器,只需要设置相应的BRx和ORx,对于选择SDRAM机制的存储控制器,还需要对模式寄存器、刷新定时器寄存器以及刷新定时器预定标寄存器进行正确的初始化。

模式寄存器规定了SDRAM内存管理机制的一些设置,包括两种:

60X总线SDRAM模式寄存器PSDMR和局部总线SDRAM模式寄存器LSDMR。

模式寄存器设置该SDRAM控制器的地址复用方式、刷新操作和一些延时参数,这些参数与具体用到的SDRAM芯片有关,一般在相应的数据手册中可以查到。

60X总线SDRAM由四片MT48LC16M16A2芯片组成,每片该芯片的容量为4x4Mx16Bits,总共128M字节空间,四片芯片为位扩展,组成容量为4x4Mx64Bits的SDRAM空间,13根行地址线,9根列地址线,2根bank选择线,64根数据线,行列地址复用。

由于是64位数据线,所以地址线的低三位,即A29、A30、A31不用,行列地址复用如下:

列地址A20A21A22A23A24A25A26A27A28

行地址A7A8A9A10A11A12A13A14A15A16A17A18A19

根据MPC8260手册中的SDRAM地址复用表,PSDMR[SDAM]应设为001,OR2[ROWST]设为0010,即行地址起始于A7,OR2[NUMR]设为100,即有13根行地址线。

原理图中,8260的地址线A28-A16依次接内存条的地址线A0—A12,8260的A15、A14作为bankselect接内存条的bankselect线BA1、BA0。

由于bankselect管脚作为存储地址的A5、A6,复用引脚A14、A15,所以PSDMR[BSMA]应设为001。

在SDRAM地址线中,一般第11根地址线也作为命令控制用,特殊标为A10/AP,8260中有一根SDAl0信号线,专门用于此目的。

实际连线时应将SDAl0连至SDRAM的A10/AP。

SDAl0是作为8260地址线的A18,由于地址复用,对应的引脚应为行地址线的A9,故PSDMR[CSDAl0]应设为010。

SDRAM的上电初始化必须经过以下步骤,才能进行正常的读写操作。

(1)执行PRECHARGEALLBANKS命令。

(2)执行8次CBRREFRESH命令。

(3)执行MODESET命令初始化模式寄存器。

8260通过设置PSDMR[OP]来执行这些命令,具体做法是:

(1)设置PSDMR[OP]=101,然后向SDRAM的任意地址写入0xFF,执行

PRECHARGEALLBANKS命令。

(2)设置PSDMR[OP]=001,然后连续8次向SDRAM的任意地址写0xFF,执行8次CBRREFRESH命令。

(3)设置PSDMR[OP]=011,然后向SDRAM的任意地址写0xFF,执MODESET命令初始化模式寄存器。

此后就可以对SDRAM进行正常的读写操作了。

SDRAM刷新定时器预定标寄存器MPTPR和刷新定时器寄存器PSRT共同决定了60X总线上所挂的SDRAM的刷新周期。

从SDRAM的数据手册中可以查到总共的刷新周期refreshperiod=64ms,而此SDRAM有13根地址线,所以每一行的刷新间隔为64ms/8192=7.81us,刷新命令的间隔必须小于这个值。

根据8260手册中给出的刷新周期公式,当设定PSRT=0x0E和MPTPR=0x2000时,刷新周期为7.5us,符合刷新要求。

8调试建议

1硬件调试步骤:

1首先调好IO电压和内核电压,给8260供电。

加入时钟电路,检查系统晶振的频率和波形是否符合要求。

在总线未接任何设备前,可先看手动复位PORESET低电平时是否能够驱动/SRESET和/HRESET为低电平。

如果可以则初步判定CPU是正常工作的。

同时要注意跳线的配置是否正确。

也可以通过仿真器来看CPU是否正常。

2加入CPLD和BOOTROM并烧写CPLD程序和bootrom.bin。

加入缓冲芯片和SDRAM,要确保SDRAM初始化成功。

3逐步增加外围设备模块,逐个进行调试。

最先增加的模块是串口,在调通串口后,许多调试信息都可以通过串口打印到超级终端上。

从软件看,首先根据最小的需要修改BSP,生成BOOTROM进行调试。

串口之后是调试网口,网口调通后可以打开Tornado的目标服务器,然后可以使用WShell、WindView、Debugger等工具来观察、调试目标板上的程序。

4调试TFFS文件系统驱动程序,要先对FLASH进行格式化,成功后系统可以通过TFFS文件系统从FLASH中加载,至此核心模块部分的开发基本已经完成。

5扩展部分调试。

2搭建开发平台

嵌入式系统通常没有软件的自开发能力,所以我们需要一台通用机来辅助开发,这台通用机可以是PC或工作站,我们称辅助我们开发的通用机为宿主机(Host),用户自己开发的板子为目标机(Target)。

宿主机上有一个集成开发环境(IDE)来辅助我们的软件开发,即运行在WindowsXP的环境下的Tornado2.2。

Tornado包含三个高度集成的部分:

运行在宿主机和目标机上的强有力的交叉开发工具和实用程序;

运行在目标机上的高性能、可裁剪的实时操作系统VxWorks;

连接宿主机和目标机的多种通讯方式,如:

以太网,串口线,仿真器等。

运行于目标机的目标代理(TargetAgent)遵循WDB(WindDebug)协议,允许目标机和主机上的开发工具相连。

目标代理是以VxWorks的一个任务(tWdbTask)的形式运行的。

Tornado目标服务器(TargetServer)向目标代理发送调试请求。

默认情况下,目标服务器和目标代理通过网络进行通信,但是用户可以改变通信方式。

主机与目标机的连接如图所示。

主机与目标机的连接

另外,在系统初始的硬件调试阶段,可使用带USB接口的仿真器Visionprobe通过宿主机上的调试环境workbench对目标板进行调试。

MPC8260能正常启动后,可以通过仿真器来查看MPC8260内部空间状态,如图所示。

Workbench界面截图

当串口调通后,超级终端可以显示系统启动过程中的打印信息。

而当网口调通之后,目标机能够通过网线下载并启动VxWorks,如图所示。

网线的连接可以直接讲目标板与宿主机通过一根网线连接,也可以将两者分别连交换机,通过交换机进行通信。

VxWorks启动过程串口终端界面

如图中的启动行参数flags为0x80,即通过TFTP下载VxWorks映像,需要借助主机的小工具Tftp32d.exe,如图所示.

图Tftp服务器程序界面

VxWorks通过网口启动起来后,使用主机Shell工具如图所示。

Tornado下的Wshell

在Tornado开发环境中,开发工具是驻留在主机上的,但是也可以根据需要将基于目标机的Shell和装载/卸载组件加入VxWorks。

目标机Shell如图所示。

图串口终端输出的目标机shell

实现人机界面后,将原本通过串口打印到主机超级终端的目标机Shell重定向后显示到显示屏中,如图所示。

图显示器输出的目标机shell

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1