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中運行,看看效果。
u-boot移植日記3
更新時間: 2007-02-02 21:50:51來源: 粵嵌教育瀏覽量:1174
推薦閱讀
- ·湖北精實機電科技有限公司專場招聘會(長沙校區)
- ·信號量與互斥鎖在資源競爭中的協同控制機制
- ·粵嵌科技2025年中總結大會召開——擘畫產教融合新藍圖
- ·Linux字符設備驅動框架解析:file_operations的核心作用與實現
- ·廣東朝歌數碼科技股份有限公司專場招聘會
- ·深化產教融合,共筑技能人才培養新生態 —— 廣州華立學院到訪粵嵌從化校區為深化產教
- ·校企合作新突破 | 粵嵌科技與三亞學院共探產教融合新路徑
- ·粵嵌科技入選國家級職業數字展館聯合建設單位,賦能計算機程序設計員高技能人才培養
- ·嵌入式實時操作系統的性能優化與實現路徑
- ·校企攜手賦能教育!粵嵌科技助力海南科技職業大學探索 AGI 時代教學新范式