OK6410 uboot移植问题?

时间:2022-06-28 17:51:15
有没有在OK6410上把UBOOT移植成功的大虾
我按照下面的步骤移植了一下,串口无输出,怎么回事?
我是按照下面的教材移植的,但是编译后下载到板子上没放映,串口也无输出
我是用DNW 下载 到 SDRAM里  ,直接在内存中运行的
#dnw 50008000
#g0 50008000



1. 建立自己的开发板项目并测试编译

目前u-boot对很多CPU直接支持,可以查看board目录的一些子目录,如:board/samsung/目录下就是对三星一些ARM处理器的支持,有smdk2400、smdk2410和smdk6400,但没有6410,所以我们就在这里建立自己的开发板项目。

1)因6410和6400的资源差不多,主频和外设有点差别,所以我们就在board/samsung/下建立自己开发板的项目,取名叫my2440 

#tar -jxvf u-boot-2010.03.tar.bz2    //解压源码
#cd u-boot-2010.03/board/samsung/    //进入目录
#mkdir smdk6410                        //创建smkd6410文件夹



2)因6410和6400的资源差不多,所以就以6400项目的代码作为模板,以后再修改

#cp -rf smdk6400/* smdk6410/   //将6400下所有的代码复制到6410下

#cd smdk6410                   //进入smdk6410目录

#mv smdk6400.c my6410.c      //将smdk6410下的smdk6400.c改名为smdk6410.c

#cd ../../../                //回到u-boot根目录
#cp include/configs/smdk6400.h include/configs/smdk6410.h 
3)修改u-boot跟目录下的Makefile文件。查找到smdk6400_config的地方,在他下面按照smdk6400_config的格式建立smdk6410_config的编译选项,另外还要指定交叉编译器 

#gedit Makefile




CROSS_COMPILE ?= arm-linux-        //指定交叉编译器为arm-linux-gcc

smdk6410_noUSB_config \

smdk6410_config      :      unconfig

      @mkdir -p $(obj)include $(obj)board/samsung/smdk6410

      @mkdir -p $(obj)nand_spl/board/samsung/smdk6410

      @echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h

      @if [ -z "$(findstring smdk6410_noUSB_config,$@)" ]; then                   \

             echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/smdk6410/config.tmp;\

             $(MKCONFIG) $(@:_config=) arm arm1176 smdk6410 samsung s3c64xx;            \

      else                                                                \

             echo "RAM_TEXT = 0xc7e00000" >> $(obj)board/samsung/smdk6410/config.tmp;\

             $(MKCONFIG) $(@:_noUSB_config=) arm arm1176 smdk6410 samsung s3c64xx;       \

      fi

      @echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk

*说明:arm    :CPU的架构(ARCH)

       arm1176:CPU的类型

       smdk6410 :对应在board目录下建立新的开发板项目的目录

       samsung:新开发板项目目录的上级目录,如直接在board下建立新的开发板项目的目录,则这里就为NULL

       s3c64xx:CPU型号

*注意:编译选项格式的第二行要用Tab键开始,否则编译会出错



4)进入顶层目录nand_spl/board/samsung目录新建目录smdk6410,并将smdk6400下的文件复制到刚刚新建的smdk6410下 

#cd nand_spl/board/samsung //

#cp –ar smdk6400/* smdk6410/




5)测试编译新建的smdk6410开发板项目 

#make smdk6410_config //如果出现Configuring for smdk6410 board...则表示设置正确

#make //编译后在根目录下会出现u-boot.bin和u-boot-nand.bin文件,则u-boot移植的第一步就算完成了



由于此版本的u-boot对于串口和时钟在开始配置文件中就已经初始化,对于ARM1176有很好的支持,利用从SD卡启动的uboot将u-boot-nand.bin下载到nand flash中,同时将开发板上SW2设置到从Nand flash启动位置。


详细地址:http://armbbs.net/forum.php?mod= ... &extra=page%3D1

7 个解决方案

#1


硬件上出问题了吧?就算没boot也会有打印消息啊?

#2


应该不是硬件的问题,运行官方的uboot可以正常

#3


额,我以前用的cpu要是里面没boot文件它会提示 no boot image之类的打印消息,那你就着重看下你的串口设置这块,在汇编代码这段,另外,你可以看下板子上电后的电流,看它是否启动起来

#4


我最近也在弄这个,下载到NAND FLASH 之后,硬件设置成 NAND 的启动模式,DNW串口只输出“OK”,不知道是什么原因。

#5


该回复于2012-05-16 09:16:53被版主删除

#6


看下是否是串口设置错了,用示波器测测其他的串口是否有数据信息

#7


引用 4 楼  的回复:
我最近也在弄这个,下载到NAND FLASH 之后,硬件设置成 NAND 的启动模式,DNW串口只输出“OK”,不知道是什么原因。

我也差不多的问题啊,不过我的板不是输出OK,而是输出KK

#1


硬件上出问题了吧?就算没boot也会有打印消息啊?

#2


应该不是硬件的问题,运行官方的uboot可以正常

#3


额,我以前用的cpu要是里面没boot文件它会提示 no boot image之类的打印消息,那你就着重看下你的串口设置这块,在汇编代码这段,另外,你可以看下板子上电后的电流,看它是否启动起来

#4


我最近也在弄这个,下载到NAND FLASH 之后,硬件设置成 NAND 的启动模式,DNW串口只输出“OK”,不知道是什么原因。

#5


该回复于2012-05-16 09:16:53被版主删除

#6


看下是否是串口设置错了,用示波器测测其他的串口是否有数据信息

#7


引用 4 楼  的回复:
我最近也在弄这个,下载到NAND FLASH 之后,硬件设置成 NAND 的启动模式,DNW串口只输出“OK”,不知道是什么原因。

我也差不多的问题啊,不过我的板不是输出OK,而是输出KK