发新帖我要提问
12
返回列表
打印

J-link烧写Uboot的问题

[复制链接]
楼主: MCU2me
手机看帖
扫描二维码
随时随地手机跟帖
21
jlass| | 2013-3-28 14:28 | 只看该作者 回帖奖励 |倒序浏览
用J-link烧uboot最好的方法就是,先通过j-link把uboot传到内存里面运行起来,然后通过tftp把要烧写的uboot传到指定的位置,再用nand write写到nand中去的。

楼主你是要逆天么。

使用特权

评论回复
22
MCU2me|  楼主 | 2013-3-28 14:33 | 只看该作者
江枫渔火 发表于 2013-3-28 12:51
一般是不能直接烧写NAND FLASH芯片,是把你要烧录的数据先写到内存指定位置里,然后传一段烧录代码到CPU, ...

嗯,把整个Uboot镜像烧写到0确实有问题……还是应该用类似分段加载的那种技术,理论上能理解,但是具体实现感觉有点吃力啊,对代码具体怎么写还不太会~嘿嘿~

使用特权

评论回复
23
MCU2me|  楼主 | 2013-3-28 14:49 | 只看该作者
jlass 发表于 2013-3-28 14:28
用J-link烧uboot最好的方法就是,先通过j-link把uboot传到内存里面运行起来,然后通过tftp把要烧写的uboot ...

这个思路感觉好厉害……
我板子的连接是这样的,0地址接的Nor, bank4接的NAND。
下次再启动的时候怎么办呢?是不是应该把Uboot中的引导部分烧到Nor里 其余的烧到NAND ,引导部分加入从 NAND中搬运程序到SDRAM的代码?

使用特权

评论回复
24
jlass| | 2013-3-28 16:18 | 只看该作者
本帖最后由 jlass 于 2013-3-28 16:52 编辑
MCU2me 发表于 2013-3-28 14:49
这个思路感觉好厉害……
我板子的连接是这样的,0地址接的Nor, bank4接的NAND。
下次再启动的时候怎么 ...

早期的芯片是把uboot和内核烧到Nor中,文件系统烧到nand中。现在一般都是全部烧在nand里,但是这和你的问题没有关系,你仍然可以通过tftp传送uboot到内存里,然后用指令拷贝到Nor中。而不需要直接使用j-link烧写

使用特权

评论回复
25
江枫渔火| | 2013-3-28 17:13 | 只看该作者
楼上的方法也是需要琢磨的~具体可以参考网上的教程,原理就是JLINK直接用W指令向RAM中写入一个uboot镜像,然后跳到写入点去执行,说起来简单,其实中间还有些耐人寻味的细节的~
直接把一个完整的uboot写入进去貌似是不能运行的,因为有关地址是不对的~要模仿uboot执行后的加载地址来写入~
等RAM里的uboot运行起来了,一切就好办了,因为uboot里的命令行工具很丰富,里面有写nandflash的命令。利用这命令,把uboot正式烧录进去~
不区分引导不引导部分的,uboot本身编译的时候就安排好了,你烧录到nand里的时候,前4k就是最先的引导部分(主要汇编写的),到时系统启动的时候,刚好就会复制它到RAM中运行~。
不知道我说的对不对,有一段时间没搞了~

使用特权

评论回复
26
MCU2me|  楼主 | 2013-3-28 19:01 | 只看该作者
jlass 发表于 2013-3-28 16:18
早期的芯片是把uboot和内核烧到Nor中,文件系统烧到nand中。现在一般都是全部烧在nand里,但是这和你的问 ...

其实只要把Uboot烧进Nor里,剩下的工作交给它就好了哈……

使用特权

评论回复
27
MCU2me|  楼主 | 2013-3-28 19:06 | 只看该作者
江枫渔火 发表于 2013-3-28 17:13
楼上的方法也是需要琢磨的~具体可以参考网上的教程,原理就是JLINK直接用W指令向RAM中写入一个uboot镜像, ...

我觉得您说的很有道理~!

使用特权

评论回复
28
huangxz| | 2013-3-28 21:47 | 只看该作者
MCU2me 发表于 2013-3-28 14:26
无论0地址接的是Nor还是NAND,那44b会不会搬运Uboot的前4K(或者8k)到内部Ram? ...

那要看u-boot的设置了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则