首页 > 代码库 > M283-bsp包问题

M283-bsp包问题


M283bsp包中的,移植问题

 

测试一:

 

1、用新的bsp包中的ubootkernel源码进行编译后烧录后,TF卡插入后出现问题。

2、Uboot,源码中将厂家给的要覆盖的源码文件进行覆盖,进行编译

3、Kernel,源码未更改,进行编译

4、文件系统使用的厂家提供的文件系统。

5、出现问题,并且系统上电后,一个调试信息都没有。

 

技术分享 

 

测试二:

1、使用厂家提供的uboot镜像文件,kernel使用厂家提供的源码,手动进行编译,内核用的m283的配置,去掉了几个驱动,文件系统使用厂家提供的。烧录到TF卡中,插入到系统后,系统烧写时出现问题。

技术分享 

2、系统启动时,在内核阶段死亡,可以说uboot成功引导了内核启动,但是内核却死了

技术分享 

 

测试三:

1、uboot使用厂家提供的uboot镜像,kernel使用厂家提供的镜像,rootfs使用厂家提供的。

 

2、TF卡插入系统,烧写系统时,信息为

技术分享 

3、系统启动时,启动正常。

 

测试四:

1、拿厂家提供的uboot源码进行手动编译,产生镜像,使用厂家提供的kernel镜像与文件系统。

2、烧录到TF卡后,TF卡插入系统中,最后烧写系统时信息为

技术分享 

 

3、系统重新上电后,无任何打印信息,由此可以证明是uboot出现了问题。

 

测试五:

1、使用老源码的uboot,根据厂家提供的要覆盖的文件,进行覆盖后,对uboot老的源码进行编译,产生镜像,使用厂家提供的kernel镜像,使用厂家提供的rootfs镜像。

 

2、烧录到TF卡后,TF卡插入系统中,最后烧写系统时信息为:

技术分享 

 

3、系统上电后,在挂载根文件系统时失败。信息为:

技术分享 

 

4、经过对系统启动失败时的log信息,发现是挂载文件系统时出错,是由于内核的参数不对,而这个参数是有uboot给传递的,ubootbootargs正确的参数为gpmi=g console=ttyAM0,115200n8 ubi.mtd=5 root=ubi0:rootfs rootfstype=ubifs ro mem=64M

文件系统被放在了mtd分区的第5个分区,因此这里要改成5loadaddr建议该成0x42000000试试,而不用0x41600000,暂时感觉使用0x41600000好用些,意思就是让内核在内存的0x41600000处,将来从nand中写到内核的0x41600000的地方

 

5、由此可知,之前由于烧录后,系统没有任何信息是由于uboot不对,而老的源码中的uboot应该是做过相关的修改了,所以老的源码的uboot能够启动,并引导内核启动。

 

6、而老的源码的uboot在引导内核时,在内核阶段死亡,说明是内核不对,因为此时用的这个内核是用的厂家提供的源码进行手动编译后的,所以是内核不对,如果uboot传参是正确的话。两种解决思路:一个是uboot参数不对,二是内核不对。

 

7、而老的源码的uboot在修改参数为正确的话,使用了自己手动编译的内核,因为内核可能不对,所以系统无法正常启动。

设置正确的参数

Setenv bootargs ‘gpmi=g console=ttyAM0,115200n8 ubi.mtd=5 root=ubi0:rootfs rootfstype=ubifs ro mem=64M’ 

 

 

 

 

 

 

 

任务一:开始调试新bsp包中给的uboot源码,使得uboot能够正常启动。

 

问题1:新bsp包中的uboot源码进行编译调试后,至今还是启动不了,没有任何打印信息

 

任务二:使用老的uboot源码,将board_init函数中打印信息board_init777777777改为board_init99999999,以及将mx28_evk.h配置头文件中的命令行前缀名改为WHY U-boot后,在次编译,发现运行的uboot不是刚刚编译过的uboot

 

任务三:ubuntu中搭建tftp服务器环境,设置板子运行的不是刚编译过的老的uboot中的服务端的ip地址为192.168.1.189,本地ip地址设置为192.168.1.10网关gatewayip设置为192.168.1.0,尝试在ubootping UbuntuUbuntuip地址为192.168.1.189,能够ping通,uboot中使用tftp命令从ubuntu中的tftpboot目录中下载uboot镜像到内存中,下载成功,又将下载到内存中的uboot镜像,写入到nand0-0x100000地址的位置,之前已经用nand erase 0x0 0x100000 命令将nand0x00x100000存放uboot的位置擦除了,重新启动后,发现一个打印信息都没有。

 

任务四:重复任务三的过程,只是将下载到内存中的uboot换成了厂家提供的uboot镜像,写入到nand0x0-0x100000之间的位置后,重启系统,发现还是一条打印信息都没有

 

 

 

 

 

 

 

 

 

测试调试发现:

1、通过TF卡烧录好后,插入到系统中时,烧写系统的时候的log信息可以看出他们致远电子用TF卡部署镜像的机制了。TF卡烧录方案,TF卡插入到系统中后,先是运行了他们固话的内核,然后挂载了他们固话的文件系统,文件系统的主机名叫做飞思卡尔,运行了他们的程序,将TF卡中的内容读取出来,然后写入到nand中,然后替换文件系统。这么做应该是为了使用TF卡进行量产


本文出自 “whylinux” 博客,谢绝转载!

M283-bsp包问题