首页 > 代码库 > SylixOS最小系统开发(一)

SylixOS最小系统开发(一)

\

  1. 开发环境

  • 操作系统: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设置

  1. 第三步:在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所示。        

                                  技术分享

     

                                          

  1. 修改startup.S 系统引导文件

  2. 看门狗设置

    看门狗定时器的设置可以在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看门狗设置

 

  1. 异常向量表设置

    异常向量中断表的内容在创建工程时是自动生成的,一般不用修改,但是对于MPC8313E需要设置减流器异常(Decrementer)需要跳转到的函数,如图 2.7所示。

    技术分享

    2.7 Decrementer异常设置

    当Startup.S中的初始化流程结束后,会进入到初始化的C程序入口函数bspInit。

  2. 修改bspMap.h地址映射文件

    bspMap.h不需要修改。

  3. 编写系统公用头文件

  4. 编写公用寄存器地址头文件

    MPC8313E所有设备的寄存器都映射到一块大小为1Mbyte的内存中,此内存叫做内存映射寄存器IMMR(Internal Memory Map Registers),IMMR的基址寄存器叫做IMMRBAR。IMMRBAR在u-boot中设置为0xE0000000。如图 2.8所示。

    技术分享

                                                      

                                         图 2.8 u-bootIMMR的设置

  1. 在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所示

                                       技术分享

 

参考资料无

本文出自 “逍遥蓝云的家” 博客,请务必保留此出处http://xiaoyaolanyun.blog.51cto.com/2586643/1926215

SylixOS最小系统开发(一)