6)好,现在继续修改u-boot-1.1.2/include/configs/myboards3c44b0.h这个文件。 #define CONFIG_INIT_CRITICAL 1 这个在cpu/s3c44b0/start.S里面用到,如果你的u-boot程序不是在sdram中调试而是固化到flash中运行的话,这个必不可少。 找到 #define CONFIG_B2 1 把B2改成myboards3c44b0吧(不然就不会编译你的板了)找到 #define CONFIG_S3C44B0_CLOCK_SPEED 75 你的44b0x应该没有75M吧 我的是改成60的找到Size of malloc() pool这部分设置,改成这样吧,反正我是照着人家来做的,你自己研究下吧^_^。 #define CFG_MONITOR_LEN (256 * 1024) /* Reserve 256 kB for Monitor */#define CFG_ENV_SIZE (64*1024) /* 1024 bytes may be used for env vars*/#define CFG_MALLOC_LEN (CFG_ENV_SIZE + 128*1024 )#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */#define CFG_ENV_IS_IN_FLASH 1 这个必不可少,如果你想把你的参数保存到flash的话(有些板是保存到EEPRAM中去的,但是s3c44b0的话还是保存到flash吧)#define CFG_ENV_ADDR (PHYS_FLASH_1+0x40000) 这个就是你的参数保存在flash里的起始地址了#define CFG_ENV_OFFSET 0x40000 这个我后来看它源程序发现如果你上一步没有设置它的起始地址的话就会用它来作默认地址的了#define CONFIG_AUTO_COMPLETE 其它地方没有深究哦,有些好像不要也行,你就试试吧。 找到Hardware drivers部分,这应该是网络芯片设置吧,参考一下这个吧(要看芯片的) #define CONFIG_DRIVER_RTL8019 这个就要看你的板上用的是什么网卡了(这个是台湾出的,有10M) #define RTL8019_BASE 0x06000000 这个是网卡相就寄存器的起始地址以下部分我试过不要也行,你试下吧 #define RTL8019_BUS32 0#define CONFIG_SMC_USE_16_BIT#undef CONFIG_SHOW_ACTIVITY #define CONFIG_NET_RETRY_COUNT 10 应该是重试的次数吧 #define CONFIG_BAUDRATE 115200 设置波特率 #define CONFIG_COMMANDS ( CONFIG_CMD_DFL | \ CFG_CMD_DATE | \ CFG_CMD_ELF | \ CFG_CMD_NET | \ CFG_CMD_EEPROM | \ CFG_CMD_I2C | \ CFG_CMD_FAT | \ CFG_CMD_JFFS2)把CFG_CMD_EEPROM改成CFG_CMD_FLASH吧,虽然不改也是可以的,具体没考究。 以下是板上env参数设置,看一下吧,其实我觉得了解一下就行的了,只是一些初始设置值,以后可以用命令setenv saveenv来修改的。 #define CONFIG_BOOTDELAY 3 这个就是运行bootcmd之前的等待时间#define CONFIG_BOOTARGS "devfs=mount root=ramfs console=ttyS0,115200" 引导uClinux的时候传递的参数,不会就先不用管它也行。 #define CONFIG_ETHADDR 00:50:c2:1e:af:fb 网卡的物理地址MAC#define CONFIG_NETMASK 255.255.255.0 掩码地址,设置过ip的人都应该知道吧#define CONFIG_IPADDR 192.168.0.30 这是你板上网卡8019的ip地址 #define CONFIG_SERVERIP 192.168.0.10 这是你宿主机的ip地址,以后用tftp下载的时候用到,一定要跟你的宿主机一致才行。 #define CONFIG_BOOTFILE "u-boot.bin" 这个就是你要下载文件的默认名字#define CONFIG_BOOTCOMMAND "bootm 0x50000" 这是bootdelay后运行的命令 Miscellaneous configurable options部分,参考一下吧 #define CFG_LONGHELP /* undef to save memory */#define CFG_PROMPT "s3c44b0=>" 这是进入命令模式下的提示符,改个帅一点的吧 #define CFG_CBSIZE 256 /* Console I/O Buffer Size */#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */#define CFG_MAXARGS 100 /* max number of command args */ #define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ #define CFG_MEMTEST_START 0x0C400000 /* memtest works on */ #define CFG_MEMTEST_END 0x0C800000 /* 4 ... 8 MB in DRAM */#undef CFG_CLKS_IN_HZ /* everything, incl board info, in Hz */#define CFG_LOAD_ADDR 0x0c008000 默认的下载地址 #define CFG_HZ 1000 /* 1 kHz */#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } 可供选择的波特率 Physical Memory Map部分,比较重要,修改你的sdram和flash的地址和容量。 #define CONFIG_NR_DRAM_BANKS 1 我们只占用了一个Bank用来映射sdram#define PHYS_SDRAM_1 0x0c000000 sdram的起始地址#define PHYS_SDRAM_1_SIZE 0x00800000 sdram的容量(8M) #define PHYS_FLASH_1 0x00000000 flash的起始地址#define PHYS_FLASH_SIZE flash的容量(2M)#define CFG_FLASH_BASE PHYS_FLASH_1 定义多个名字而已,其它地方会用到 FLASH organization部分,看注释应该知道了吧,参考一下 #define CFG_FLASH_ERASE_TOUT 4120000 /* Timeout for Flash Erase (in ms) */#define CFG_FLASH_WRITE_TOUT 4000 /* Timeout for Flash Write (in ms) */ 按着来一步步的做应该不难,这里提一下vi程序的用法,其实在google一搜就找到了,不过为了方便大家,还是说一声吧,在命令模式下:按/ xxx再回车即可搜索到你所需要的内容(xxx),再按n搜索下一个,按shift+n搜索上一个 按:xxx即可跟到你想要的行按:set nu显示行号其它查书都可以找到就不说了。 做到这个时候,你可以再编译一下,看有没有错,这一步我就没有帮你们做了,不过我觉得应该不会有问题吧,下载到ram中运行,看看效果。 |