linux怎么查看本机内存大小
394
2022-11-09
基于MPC7448芯片和vME单板机实现嵌入式SMP系统的设计
1 前言
本文的嵌入式SMP系统基于MPC7448芯片,结合主桥芯片Tsi109和桥接芯片Tsi148设计的一个vME单板机。该系统具备优秀的计算性能,具有良好的通信能力。文章介绍了该嵌入式系统的硬件系统设计和系统软件开发过程。
2 系统硬件设计
2.1 系统整体简介
构建SMP系统需要处理器和主桥芯片的硬件支持,MPC7448和Tsi109支持sMP系统,Tsi109支持两个处理器。
图1 系统整体结构图
2.2 处理器接口设计
2.3 存储系统设计
Tsi109支持DDR2-400内存系统。内存接口包括数据信号、时钟信号、地地命令信号和控制信号。其中,数据信号包括64位数据位、8位校验位和18对源同步差分时钟信号;时钟信号包括6对差分时钟信号,分为两组分别由寄存器位SD_D[O,l]_CTRL[CLK_DISABLE]控制;控制信号分两组,包括2个时钟使能、4个0DT使能和4个片选,因此,Tsi109支持2个DIMM内存插槽,可以使用1-Bnak或2-Bank内存条。
HLP是系统中重要接口。在系统加电及完成内部寄存器初始化后,MPC7448开始向Ox0_FFF0_0100位置读取第一条外部指令.这一读取指令被Tsi109自动引导到HLP接口与HLP_CS0连接设备上。因此,这里要保存系统的启动程序,操作系统和应用程序也保存在该接口的存储设备上。
2.4 通信系统设计
系统使用一个33MHz的晶振作为基准时钟源,接入Tsi109的输入管脚CG_REF.经过内部倍频、缓冲,生成处理器接口、DDR2内存接口、PCI/X接口及Tsi109内部所需的时钟信号。处理器接口和DDR2内存接口的倍频因子可以通过CC_PB_SELECT[0..2]和CG_SD_SELECT[0..2]进行配置。
3 系统软件开发
3.1 U-Boot的移植
PowerPC体系结构的I/O寻址采用内存映射方式,即内存地址和I/O地址统一编码,在进行代码移植前,需要首先确定系统的地址映射关系,本系统地址映射见表(1)。u—Boot的移植可以通过以下步骤进行:(1)搜索u—Boot源码,找到一个和目标板最为接近的参考平台mpc7448hpc2;在board目录下创建目标板目录smp7448,复制参考平台文件到该目录,修改文件名为smp7448.c.在include/configs目录下找到参考板头文件,复制并创建目标板头文件smp7448.h;在顶层目录Makefile文件内添加目标板定义。(2)根据地址映射表修改目标板头文件中宏定义,这需要参考MPC7448和Tsi109相关寄存器格式;阅读目标板源代码,根据系统参数进行必要的修改和调整。(3)编译、下载和调试,直至顺利启动,能够进入命令状态。
表1 系统地址映射表
上述是单处理器的U-Boot移植,在SMP系统下稍有不同。大多数SMP系统的启动过程都由一个处理器来完成。其它处理器处于待命状态。在PowerPc平台规范中,负责启动的处理器称作主处理器.其余为从处理器。对SMP系统的U—Boot移植,需要在单处理器初始化代码的开始部分添加一个基于处理器识别的分支处理代码,让主处理器正常执行,从处理器直接跳转某地址(linux下为一secondary_hold)。需要说明的是。这里的“主”、“从”概念只在系统初始化阶段有意义,操作系统初始化完毕后处理器之间完全对称。
3.2 Linux的移植
LinⅡ操作系统是一个基于CPL版权的自由软件。目前,Linux已经支持x86、ARM、PowerPc、MIPs等多种处理器平台,另一方面。Linux已经在嵌入式系统.PC系统、服务器等场合得到广泛应用。自2.0版本开始提供对SMP支持,2.2版本添加PowerPc平台上SMP支持,直至在2.6版本中做了重大改进,包括复杂度为调度算法、独立的运行队列、基于优先级的任务抢占、SMP负载平衡等,Linux才更好地支持了SMP系统。
u-Boot及Linux移植成功后,即可进行应用软件的开发。
4 结束语
本文介绍了一个基于PowerPc的嵌入式SMP系统设计。本文的创新点在于,分析和设计了一个基于PowerPC的SMP系统。并介绍了相应的系统软件开发。本文可为嵌入式系统设计提供一定参考价值。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~