mini2440 jlink 间接烧写nand 以及 uboot

guanliheng   2010-6-4 22:15 楼主
我的是256M的nand。。没有并口,使用jlink。

使用supervivi-128M,这个文件直接烧写到nor,启动正常。从nor启动后,利用'a'命令烧到nand,然后从nand也能正常启动(需要按下六个按键中的一个)。说明这个文件自适应nor、nand。

我打算从nand启动,然后通过将supervivi-128M写入sdram,并且从sdram启动,之后将这个文件烧入nand。但是我按照网上的步骤做,发现跳到那里执行supervivi-128M的时候,蜂鸣器响了一声,而且串口打印了几个乱码。

步骤如下:
r
speed 12000

loadbin d:\init.bin 0
setpc 0
g

h
loadbin d:\supervivi-128M.bin 0x33f80000
setpc 0x33f80000
g        //这步做完直接出错。80000足够放下载的文件了。而且两个都改成 0x33f00000也不行

============================================
然后我在使用nand 和nor启动的方式下,从suppervivi里面download & run “supervivi-128M”这个文件,都能正常运行。但是为什么通过jlink就不行呢???

===========================================================================================

另外,关于uboot,我使用mini2440光盘里面带的uboot,直接用jlink烧入nor,启动正常,然后从命令行将uboot烧入nand,并改为从nand启动,启动不了,这个又是怎么回事呢???我看他们的文档上面写uboot支持从nor nand启动。uboot不能自适应吗?
有谁有在mini2440(256M)上能用的uboot吗?能发我一份吗?
email: rayforeverster@gmail.com

回复评论 (5)

貌似JLINK烧写nand要做很多一些额外的工作,我当时在ouravr上看到一个帖子了。楼主你的是jlink v8吗?
我手头有一个mini2440,和jlink v8,还没有多少时间去搞bootloader呢。
点赞  2010-6-4 22:48
h
loadbin d:\supervivi-128M.bin 0x33f80000
setpc 0x33f80000
g //这步做完直接出错。80000足够放下载的文件了。而且两个都改成 0x33f00000也不行

这时候不该是下载你自己的Bootloader,应当是用他提供的特制的uboot
下载特制的uboot:  
h  
loadbin e:\u-boot.bin 0x33f80000  
setpc 0x33f80000  
g  

基本的流程应当是,先把内存初始化文件(init.bin)放到steppingstone,跳到执行,然后把特制u-boot下到内存。跳到执行,然后利用这个特制的uboot把你的bootloader烧到flash

从nor flash可以正常启动的uboot放到nand flash当然不能正常启动,得修改源码,好多地方是不一样的
最起码的搬运地址就是不一样的
点赞  2010-6-5 01:24
引用: 引用 1 楼 peasant_lee 的回复:
貌似JLINK烧写nand要做很多一些额外的工作,我当时在ouravr上看到一个帖子了。楼主你的是jlink v8吗?
我手头有一个mini2440,和jlink v8,还没有多少时间去搞bootloader呢。

恩,我的也是v8的,原来光盘里面带的那个uboot.bin不能用,下载到nand没反应,刚刚从tekkaman的网站上下载他编译的uboot.bin可以用,但是用git下载下来,做
$make ARCH=arm CROSS_COMPILE=/usr/local/arm/4.3.2/bin/arm-linux- mini2440_config

报错,是invalid option,不知道怎么回事。。。
点赞  2010-6-5 17:18
引用: 引用 2 楼 mostmark 的回复:
h
loadbin d:\supervivi-128M.bin 0x33f80000
setpc 0x33f80000
g //这步做完直接出错。80000足够放下载的文件了。而且两个都改成 0x33f00000也不行

这时候不该是下载你自己的Bootloader,应当是用他提供的特制的uboot
下载特制的uboot:  
h  
loadbin e:\u-boot.bin 0……


友善的网站上说这个uboot是自适应的nor nand的,也就是开机的时候他会检查到底用什么方式启动的,然后加载代码到内存,并运行。。我后来从其他网站上下载的可以自适应nor nand启动。。

另外,我感觉那步没有问题。。因为我只需要运行一个能从内存启动,并且能够想nand写入的代码就可以了,不需要一个特殊的程序。。
supervivi烧入nand后,可以从命令行通过d,使用dnw从usb接收supervivi-128M.bin文件,然后并且能够运行。。。
同理,再烧入init.bin之后,我们可以将supervivi-128M.bin下载到内存,通过setpc让他启动运行。。
我感觉这两者之间完全是一样一样的~~~但是就是想不通为何后者不能正常运行
点赞  2010-6-5 17:26
顶上去。。。

谁有能用的 mini2440 256M nandflash 自启动的uboot吗?
点赞  2010-6-11 11:47
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复