sigma移植.docx
上传人:sy****28 上传时间:2024-09-14 格式:DOCX 页数:6 大小:108KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

sigma移植.docx

sigma移植.docx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

sigma移植...<准备工作:建立编译环境>1.Sigma8634是SigmaDesigns公司一个功能强大的SoC芯片。2.Sigma8634包含了一块mips300MHZ的CPU。3.Sigma8634包含了两个解码芯片,可以同时解码两路高清。4.Sigma8634可以支持mpeg1/mpeg2/mpeg4,H.264,wmv9等格式。5.Sigma8634不支持Real的音视频格式。6.Sigma8634的运行系统可以通过kernel2.4/2.6+busybox构建。7.Sigma8634的开发系统需要建立mipsel-linux-gcc等一系列的交叉编译工具链。8.Sigma8634的建立开发系统的简要步骤:1).建立交叉编译工具链。2).下载kernel,设置指向kernel位置的环境变量。3).编译rootfs(busybox)。4).编译kernel,生成包含kernel+rootfs的单体包vmlinux.binorzbimage-xrpc-linux。5).把单体包下载至Sigma8634Board,用其来启动系统。6).编译Sigma8634的SDK。9.Sigma8634Board使用是zboot来boot系统,使用yamon来做linux启动前的设置监视工具。10.Sigma8634Board的yamon里y.start指定的脚本,不能使用Ctrl-C来打断,所以不要用y.start来设置自动启动linux的脚本,否则除非出错和重烧flash,不然你永远无法再进入yamon的命令行。11.zboot和yamon都可以使用交叉编译工具重新编译,通过yamon的pflash工具把编译好的包烧入flash。12.Sigma8634的SDK包里都带有设置环境变量的脚本。一、bootloadYamon流程:yamon是mips的一个bootload。长按“1”进入yamon命令模式,配置好系统环境以后可以通过TFTP将编译好的内核下载到板上,也可以给板上现有的内核传递参数。Zboot流程:通过Makefile了解到zboot启动分为stage0和stage1两个部分,stage0入口函数是reset.s,汇编比较多,负责很基础的一些设备初始化,例如初始化寄存器、cache、关中断等。Stage1入口是start.s,负责引导内核到SDRAM中,最后启动内核。zboot最后打印数据如下Decompressingto0x90020000..OK(3873207/0x3b19b7).Loadtimetotal880/1962msec.Executefinalat0x903ae000..从0x903ae000开始运行内核,从start_kernel()开始运行。对芯片的存储区分配了解不够,内核的加载过程还不是很清晰。这里有个问题是,虽然smp8635号称有两个CPU,没看出来两个CPU是如何配合工作,可能是代码看的不够仔细。二、驱动Makefile的第122行开始,包含编译2.6.15内核所需要的补丁,也即patch文件。patch是用来查找文件之间差异的GNUdiff命令的一个接口,patch典型地用于把一个目录下的源代码文件更新到新的版本。FLASH驱动:在LINUX系统中,使用MTD系统来建立FLASH的统一接口函数。MTD的配置在1000.tangox.patch、1007.mtd.patch文件中。分区信息physmap_maps在1007.mtd.patch文件中从FLASH底层开始的设备驱动和接口一共分为4层:1、硬件驱动层S29GL256属于NORFLASH。他的芯片驱动cfi_cmdset_002.c位于linux-2.6.15\drivers\mtd\chips目录下。2、MTD原始设备层用与描述MTD原始设备层的数据结构是mtd_infoMTD的驱动、侦测函数、加载函数在cfi_probe.c、cfi_util.c、chipreg.c文件中。3、MTD设备层MTD设备层的数据结构是:mtdblk_dev。4、设备节点通过mknod在/dev子目录下建立MTD块设备节点(块设备主设备号31)。FLASH驱动步骤:init_physmap()函数流程图NORFLASH驱动的核心是定义mtd_info结构体在1007.mtd.patch中:定义了structmap_infophysmap_map。调用init_physmap(),侦测接口类型为cfi接口。调用do_map_probe(),do_map_probe()会通过第一个参数cfi接口类型的带入,调用get_mtd_chip_driver()得到具体的MTD函数。并通过对应