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-boot中IMMR的设置

  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所示

参考资料无

时间: 2024-10-06 04:28:09

SylixOS最小系统开发(一)的相关文章

SylixOS最小系统开发(二)

系统Tick MPC8313芯片的Tick实现比较特殊,因为在MPC8313芯片中存在名为Decrementer的寄存器,如图 1.1 Decrementer寄存器所示. 图 1.1 Decrementer寄存器 Decrementer寄存器中保存的数据会每4个总线周期减1,当Decrementer寄存器递减到0时,触发Decrementer异常,CPU会执行异常服务程序.Decrementer的异常服务函数需要在startup.S文件中设置,如图 1.2 startup.S所示. 图 1.2

[嵌入式开发入门]4412开发板从零建立Linux最小系统

本文转自iTOP-4412开发板实战教程书籍 http://www.topeetboard.com iTOP-4412开发板不仅可以运行Android,还可以运行简单的Linux最小文件系统. 最小Linux 系统“麻雀虽小,五脏俱全”,它不带图形界面的Linux 系统,剔除干扰因素便于理解,用来学习Linux系统编程非常合适. 另外,Linux最小系统占用的内存空间很小,也经常用于不带图形界面的项目. 1. 最小Linux系统简介 制作文件系统需要使用到Busybox工具. BusyBox是一

关于编程开发的最小系统学习法

文/向右奔跑(简书作者) 原文链接:http://www.jianshu.com/p/c340c2d3c152 著作权归作者所有,转载请联系作者获得授权,并标注"简书作者". 今天中午与成长会shawn童靴见面,他在陆金所做Java开发,自学Python一年多了,能坚持下来很不容易.现在已经具备了一定的生产力. 不过,他说没有用py做过什么项目.我说,刚好有个想法,一个月前也试了试,不知道是不是感兴趣,用Java和py都可以做.最好是py,需要js熟悉一些. 我说,我想追踪一下现在成长

学习手记-基于iTOP4412开发板Linux最小系统烧录

最小系统只能通过超级终端进行操作,没有画面显示. 使用工具:超级终端.fastboot 通信:串口RS232 操作环境:开机后完成bootloader,但还未挂载文件系统之前.(开机后通过"超级终端"中止文件系统挂载) 操作权限:root 操作步骤: 1.格式化(按顺序来) fdisk -c 0     [分区命令 分区序号:0 (该命令将会清空emmc)] fatformat mmc 0:1    [按"FAT"格式进行格式化,对象:mmc,分区序号0第一分区]

微领地小蜜app模式系统开发详解

如今企业竞争的最高境界, 不再是产品的竞争.人才的竞争.营销的竞争-- 而是一种商业模式(即赢利模式)的竞争. 微领地小蜜软件,微领地小蜜系统,小蜜APP,微领地小蜜平台,微领地小蜜开发公司,微领地小蜜服务模式,微领地小蜜商圈.O2O.C2B.B2C.F2C.B2B.C2N.C2C等微商城.App.手机网页.PC商城.小程序,微商管理系统.一物一码.防伪防窜.扫码红包.质量追溯.分销.全返.分红.拼团.互联网+直播+定制服务·系统开发提供中心. 回首过去,创新与发展裹带着机遇和挑战,微领地小蜜在

三分钟学会用SpringMVC搭建最小系统(超详细)

前言 做 JavaWeb 开发的你,一定听说过SpringMVC的大名,作为现在运用最广泛的Java框架,它到目前为止依然保持着强大的活力和广泛的用户群. 本文介绍如何用eclipse一步一步搭建SpringMVC的最小系统,所谓最小系统,就是足以使项目在SpringMVC框架下成功跑起来,并且能够做一些简单的事情(比如访问页面)的系统. 话不多说,让我们开始吧.所有的源代码和jar包都会在最后给出. 正文 1. 新建一个项目 Paste_Image.png 我们用eclipse新建项目,选择D

Linux统系统开发11 Socket API编程2 多进程 多线程 高并发处理

[本文谢绝转载原文来自http://990487026.blog.51cto.com] <纲要> Linux统系统开发11 Socket API编程2 多进程 多线程 高并发处理 UDP服务器 客户端最小模型,处理字符转大写 TCP 多进程并发服务器模型,为每个客户端开启一个进程: TCP 多线程服务器模型,使用wrap函数封装 作业: ---------------------------------------------------- UDP服务器 客户端最小模型,处理字符转大写 [em

企业级业务系统开发实战

通过一个系列讲述一个真实企业的ERP系统开发全过程.其中包括需求分析.设计建模.开发.测试全生命周期过程,其中会详细讲方法论与技术实践.涉及到的方法包括敏捷软件开发.四色原型.领域驱动设计.业务架构.技术架构与具体的EF.WF.EasyUI等技术在项目中的使用. 领域驱动设计案例之领域层框架搭建 摘要: 根据前面对领域驱动设计概念以及一些最佳实践的理解,领域模型是系统最核心的部分,我们还是采用前面销售订单的例子,这个案例系统的核心构建就从领域层开始.领域层框架搭建主要完成两个任务:1.领域模型的

基于Proteus仿真的Arduino学习(1)——Arduino Uno最小系统及LED的简单使用

一.前言:  A.Arduino简介 Arduino是由一个欧洲开发团队于2005年冬季开发.其成员包括Massimo Banzi.David Cuartielles.Tom Igoe.Gianluca Martino.David Mellis和Nicholas Zambetti.据说Auduino开发团队的领袖Massimo Banzi 之前是意大利Ivrea 一家高科技设计学校的老师.他的学生们经常抱怨找不到便宜好用的微控制器.2005年冬天,Massimo Banzi 跟David Cua