2007.8.13
u-boot1.1.6 初步调试成功。
1. 在网上找了几个 u-boot 的移植文档,之前一直没有成功,后来,设置好 u-boot 的程序运行地址后, make clean && make at91rm9200dk_config && make ,生成 u-boot.bin 文件。
2. 在调试好 arm9200 的仿真器后,选择 File->Load memory from file ,选择 u-boot.bin 文件。
3. 文件 Load 成功以后,将 PC 指针设置为 u-boot 程序的运行地址。
4. 执行程序,即可在串口终端看到 u-boot 的提示符。
2007.8.14
1. 发现在文件 Start.S 中调用了 LowLevelInit 函数,初始化 SDRAM , 终端, DEBUG 串口, NAND 等,根据需要添加。在 u-boot 中没有进行 LowLevelInit ,所以会出现初始化不正确的时候会有问题。
2. 经常会出现 IIC 不 能写的状况,原因不明。
3.AXD 调试的时候,经常要重启才可以。有时候要进行断电。
4.u-boot 的程序启动地址在 board/at91rm9200dk/config.mk 中修改 TEXT_BASE 的值
2007.8.15
1. 研究 PMC 时钟是怎么回事,给个时钟是 如何产生的,看数据手册的方框图。
设置 master clock 的寄存 器,选择使用 slow clock ,main clock,plla,pllb 中的一个作为 时钟输入,通过 master clock controller 后生成 master clock 和 process clock. 选择 的 plla 和 pllb 可以通过设置相应的寄存器 来倍频 main clock.
2007-8-20
1.u-boot-1.1.6 成功从 nand flash 上启动。但 是还有很多问题没有搞清楚。 board/at91rm9200dk/config.mk ,这个 TEXT_BASE 的值所起的作 用,没有搞清楚。 U-boot.bin
文件从 flash 中读取到 sdram 中的内存的位置不是这个地址,也还是可以启动的。所以,之前的 bios9200 的代码完全不用作任何的改变,就可以将 u-boot 烧写到 nand flash 上,并且读入内存,启动 u-boot 。之前虽然也进行过直接烧写的工作,但是可能是 u-boot 中的代码,初始化的串口有问题,造成没有什么输出,显示的。现在代码中写死了。
2. 阅读了一下 bios9200 的代码,关键的部分在于,不同的板子,要进行不同的 LowLevelInit 工作 的,所以之前的 at91rm9200_for_Uboot ,不能够使用,也是因为 LowLevelInit 初始化的可能有些问题,在 u-boot 启动的时候,按照网上的修改方法,并没有进行 LowLevelInit ,所以出 现问题。
3.u-boot 的移植配置,参看以下文章
开发板 H9200M 简介 FLSH: 4M (2M ×16) -> 固化Linux 内 核 0x1000_0000-0x103_FFFF [编辑 ] [ 编辑 ]
[ 编辑 ] 完全使用 U - boot 来做 bootloader 的资源分配
[ 编辑 ] 移植 u-boot 到目标板 |