\
-
开发环境
-
操作系统:SylixOS
-
编程环境:RealEvo-IDE3.1.5
-
硬件平台:MPC8313E-RDB
MPC8313E芯片介绍MPC8313E是飞思卡尔(Freescale)基于 PowerPC-e300c3内核的系列芯片,MPC8313E-RDB采用的是MPC8313E处理器。芯片具有 :
-
16KB I-Cache,16KB D-Cache,8MB NOR Flash,128MB DDR2,32MB NAND Flash;
- 两路三速(10/100/100 Mbps)的以太网控制器(eTSECs);
- 一个 DDR1/DDR2 SDRAM内存控制器;
- 一个增强的本地总线控制器(eLBC);
- 一个32bit的PCI-2.3控制器;
- 1路USB 2.0 HS Device & HOST 二合一接口;
- 2路UART,2路I2C,1路SPI,一个4通道DMA;
- 软件看门狗定时器,电源管理控制器PMC;
- 最高可在333MHz的频率下运行。
MPC8313E-RDB启动设置MPC8313E-RDB使用拨码开关与跳帽结合的方式引导启动,拨码和跳线的设置如图 1.1所示。拨码开关与跳线的位置如图 1.2所示图 1.1拨码开关与跳帽的设置 图 1.2拨码与跳帽的位置正常情况下板卡应该设置为NOR Flash启动方式。技术实现修改ROM,RAM,OS基址配置文件设置ROM,RAM,OS的基址配置文件步骤如下:第一步:查看MPC8313-RDB的用户BSP指导手册,3.2章节为系统内存映射相关章节。Uboot初始化的内存映射关系如图 2.1所示。 图 2.1内存映射关系从图 21可以看到,MPC8313E的DDR SDRAM基址就是0x00000000,NOR Flash的基址是0xfe000000.第二步:修改config.h为如图 2.2所示:
图 2.2 config.h设置
- 第三步:在PowerPC的config.h文件中,还需要设置 BSP_CFG_OS_BASE。BSP_CFG_OS_BASE的作用是指定BSP文件的启动基址,如图 2.3所示。 图 2.3 BSP_CFG_OS_BASE的设置
第四步:修改config.ld文件,设置内存布局定义。把BSP_CFG_RAM_BASE改为BSP_CFG_OS_BASE。如图 2.4所示。
-
修改startup.S 系统引导文件
-
看门狗设置
看门狗定时器的设置可以在Uboot中获得,笔者使用的是经典的Uboot 1.1.6版本。在u-boot-1.1.6/include/ mpc83xx.h文件中可以获得看门狗的配置信息,如图 2.5所示。
图 2.5 uboot看门狗配置信息
在u-boot-1.1.6/cpu/mpc83xx/start.S文件中可以获得配置看门狗的汇编语句,如图 2.6所示。
图 2.6 uboot看门狗设置
-
异常向量表设置
异常向量中断表的内容在创建工程时是自动生成的,一般不用修改,但是对于MPC8313E需要设置减流器异常(Decrementer)需要跳转到的函数,如图 2.7所示。
图 2.7 Decrementer异常设置
当Startup.S中的初始化流程结束后,会进入到初始化的C程序入口函数bspInit。
-
修改bspMap.h地址映射文件
bspMap.h不需要修改。
-
编写系统公用头文件
-
编写公用寄存器地址头文件
MPC8313E所有设备的寄存器都映射到一块大小为1Mbyte的内存中,此内存叫做内存映射寄存器IMMR(Internal Memory Map Registers),IMMR的基址寄存器叫做IMMRBAR。IMMRBAR在u-boot中设置为0xE0000000。如图 2.8所示。
图 2.8 u-boot中IMMR的设置
- 在u-boot-1.1.6/cpu/mpc83xx/start.S中写入指定的寄存器,如图 2.9所示
图 2.9 start.S设置IMMRBAR
MPC8313E的芯片手册,2.3章节描述了IMMR Memory Map的相关信息。参照IMMR Memory Map笔者把所有设备的寄存器基址合并在immr.h头文件中,如图 2.10所示
参考资料无