|||
修改ARM处理器AT91RM9200 LOADER和BOOT源代码
仇洁婷, 陈儒军
1 修改 AT91RM9200-Loader
-------------------------------------------------------------------------
修改Loader.bin的源码
1. 修改 AT91RM9200-Loader/include/main.h
#define AT91C_UBOOT_BASE_ADDRESS 0x21f00000 , 定义UBOOT在RAM中的起始地址
上述修改针对SDRAM为32M, 地址空间为 0x20000000—0x22000000 。
uboot被解压缩后要被拷贝到RAM的高端地址,防止与其它地址冲突
2. 修改AT91RM9200-Loader/init.c中对SDRAM的初始化
AT91C_BASE_SDRC->SDRC_MR=0x02
在这里要根据具体的SDRAM芯片修改: MR[4]=1 (表示16位)
MR[4]=0 (表示32位)
-------------------------------------------------------------------------
2 修改 AT91RM9200-Boot
-------------------------------------------------------------------------
修改Boot.bin的源码
1. 在main.c中添加两个外部函数定义
Extern int deampress_image(void *src,void *dst,unsigned int len);
解压缩函数,用来解压缩UBOOT
Extern void Jump() 跳转函数
2. 在main.c中修改宏定义
#define SRC 0x10010000 uboot在flash中的基地址, 要特别注意这里。
#define DST 0x21f00000 解压缩UBOOT后载入到SDRAM中的地址
#define LEN 0x20000 uboot的大小(最大大小)
3 修改main.c中打印语句
AT91F_DBGU_Pringk() ………
AT91F_DBGU_Pringk() ………
AT91F_DBGU_Pringk() ………
……
…
修改成自己希望的开机文字图样
AT91F_DBGU_Printk("nr");
AT91F_DBGU_Printk("**************************************************nr");
AT91F_DBGU_Printk("** Welcome to BGP, CNPC **nr");
AT91F_DBGU_Printk("** http://www.bgp.cnpc/ **nr");
AT91F_DBGU_Printk("** Tel:86-312-3736048 **nr");
AT91F_DBGU_Printk("**************************************************nr");
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-27 17:21
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社