文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>完成u-boot到nano移植

完成u-boot到nano移植

时间:2007-04-15  来源:fail

经过了漫长的时间终于完成了移植工作。其实也不需要这么多时间,主要是工作太忙没有时间搞,另一方面,这是第一次做bootrom这一块,没什么经验。

目标机:  友善的Nano2410
        内存 32M
        Flash 64M

软件:    uboot-1.1.2
        arm-linux-gcc 2.95.3

在移植的过程中主要是参考了网友们的移植步骤,再结合友善提供的Nano VIVI的源代码。具体步骤就不多说了,网上到处都是。这里列举一下我在移植过程中遇到的困难和解决的办法。

2006-12-18
问题: 昨天下了几篇文章关于uboot移植到2410的,左考右考终于考完,编过。
今天下到设备中,什么反应都没有。
解决: 一开始在cygwin上弄(友善提供的),后来听说cygwin编译可能会有问题,于是编了一个友善提供的肯定没问题的VIVI版本,解决一样没反应,只能作罢。在vmware里面搭建了一个编译环境,继续研究。

2007-1-14
问题: 每编一个目录就会停一下,提示找不到.depend, unrecognized option `-MQ'
解决: gcc的版本太低了,不支持MQ选项。现在用的arm-linux-gcc编译器是2.95.3版本,u-boot1.1.6版本,重新搭建编译环境太耗时间。退到u-boot1.1.4版本问题解决。走读代码的时候发现内存大小没有设对。依然没有任何信息。决定先把串口搞定再说,不然根本没有办法定位。
Smdk2410.h
/*-----------------------------------------------------------------------
 * Physical Memory Map
 */
#define CONFIG_NR_DRAM_BANKS     1       /* we have 1 bank of DRAM */
#define PHYS_SDRAM_1         0x30000000 /* SDRAM Bank #1 */
#define PHYS_SDRAM_1_SIZE     0x02000000 /* 32 MB */

2007-1-15
问题: 移植了VIVI的串口初始化代码到uboot,但是还是打不出信息。
解决: UART地址没有设置对。
/* UART */
#define UART_CTL_BASE         0x50000000
#define UART0_CTL_BASE        UART_CTL_BASE
#define UART1_CTL_BASE        UART_CTL_BASE + 0x4000
#define UART2_CTL_BASE        UART_CTL_BASE + 0x800

现在可以看到打印“@”了。但是好像出现死循环一样,估计是在不停重启。

2007-1-17
问题: 串口可以打印,但是还是看不到启动界面
解决: board/crane2410/config.mk
我的板子只有32M的内存。修改:TEXT_BASE = 0x31f00000
nano sdk 中的vivi明明把bin copy到0x31f00000,然后r1=0x33f80000,再跳到main,不明白为什么还可以跑起来。修改了TEXT_BASE以后,终于可以看到启动界面了。但是ping不通,tftp也不行不断打印"ARP Retry count exceeded; starting again"

2007-4-14
问题: 启动后,ping不通,不断打印"ARP Retry count exceeded; starting again"
解决: lowlevel_init.S 中bank3的设置不对,这部分是我开始移植的时候按照VIVI设置的,恢复成uboot的设置。Ping还是没有反应,但是已经不像开始那样不断打印错误信息了。用试了一下tftp 下载kernel ok

2007-4-15
问题: tftp下载image后,执行go,但是在start_kernel的地方就停下来了。
## Starting application at 0x30008000 …
Uncompressing Linux……………………………………………………. Done, booting the kernel.
解决: r0 = 0,r1 = machine type,r2 = physical RAM address of params的ARM Linux这是linux的启动条件。参考VIVI,实现setup_linux_param, call_linux,成功搞定。
相关阅读 更多 +
排行榜 更多 +
恐怖老师中文版下载安卓版手机安装

恐怖老师中文版下载安卓版手机安装

角色扮演 下载
尼米亚传奇光明山脉汉化手机版下载

尼米亚传奇光明山脉汉化手机版下载

冒险解谜 下载
烽火望长安手游下载

烽火望长安手游下载

策略塔防 下载