SylixOS最小系统开发(一)
来源:互联网 发布:李娃传 知乎 编辑:程序博客网 时间:2024/06/06 07:25
开发环境
操作系统: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所示。
图 2.4 config.ld设置
修改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所示
图 2.10 immr.h
参考资料
无
- SylixOS最小系统开发(一)
- SylixOS最小系统开发(二)
- SylixOS系统简介
- SylixOS 热插拔系统
- SylixOS I/O系统
- SylixOS xinput 系统
- SylixOS 系统TICK实现
- SylixOS 系统Tick实现
- SylixOS BSP 开发连载
- SylixOS 经得起检验的国产操作系统 (一)
- SylixOS信号系统(1)
- SylixOS信号系统(2)
- SylixOS 信号系统(3)
- 第一次开发系统(一)
- 开发系统学习(一)
- 单片机最小系统的开发
- SylixOS 系统移植库第三方库流程 (其他系统交叉编译应该类似)
- fl2440内核移植(一)——最小系统
- mybatis日志配置手记
- DrawerLayout使用方法学习笔记
- 线程结束的方式
- 第三章:初探HTML
- Android第三方库——SwipeBackLayout和SwipeBaseActivity的使用
- SylixOS最小系统开发(一)
- 求出有序数组旋转后的最小值
- 【转载】C#网络编程(基本概念和操作)
- JAR、WAR、EAR
- 【POI】POI+JFREECHART实现图表报表
- Tensorflow的LRN是怎么做的
- JAVA 解压缩
- LightOJ
- 【msp430 launchpad、RF模块】调制、解码无线信号2