亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? uboot詳細分析.c

?? 關于 linux 的開發(fā), 主要介紹啦linux下開發(fā)的重要細節(jié)地方
?? C
?? 第 1 頁 / 共 2 頁
字號:
[0]目錄結(jié)構(gòu)
◆ board:和一些已有開發(fā)板有關的文件,比如Makefile和u-boot.lds等都和具體開發(fā)板的硬件和地址分配有關。 
◆ common:與體系結(jié)構(gòu)無關的文件,實現(xiàn)各種命令的C文件。 
◆ cpu:CPU相關文件,其中的子目錄都是以U-BOOT所支持的CPU為名,比如有子目錄arm926ejs、mips、mpc8260和nios等,每個特定的子目錄中都包括cpu.c和interrupt.c,start.S。其中cpu.c初始化CPU、設置指令Cache和數(shù)據(jù)Cache等;interrupt.c設置系統(tǒng)的各種中斷和異常,比如快速中斷、開關中斷、時鐘中斷、軟件中斷、預取中止和未定義指令等;start.S是U-BOOT啟動時執(zhí)行的第一個文件,它主要是設置系統(tǒng)堆棧和工作方式,為進入C程序奠定基礎。 
◆ disk:disk驅(qū)動的分區(qū)處理代碼。 
◆ doc:文檔。 
◆ drivers:通用設備驅(qū)動程序,比如各種網(wǎng)卡、支持CFI的Flash、串口和USB總線等。 
◆fs:支持文件系統(tǒng)的文件,U-BOOT現(xiàn)在支持cramfs、fat、fdos、jffs2和registerfs。 
◆ include:頭文件,還有對各種硬件平臺支持的匯編文件,系統(tǒng)的配置文件和對文件系統(tǒng)支持的文件。 
◆ net:與網(wǎng)絡有關的代碼,BOOTP協(xié)議、TFTP協(xié)議、RARP協(xié)議和NFS文件系統(tǒng)的實現(xiàn)。 
◆ lib_arm:與ARM體系結(jié)構(gòu)相關的代碼。 
◆ tools:創(chuàng)建S-Record格式文件 和U-BOOT images的工具。

==========================================================================================
[1]u-boot.1.1.2目錄下有Makefile
1)設置編譯器
可以看到這一項:
ifeq ($(ARCH),arm)
CROSS_COMPILE = arm-linux-

也就是說這里所用的交叉編譯器是arm-linux-gcc,u-boot默認是用這個的,也有用arm-elf-gcc的,arm-elf-tools-20030314.sh,用它來編譯,沒有問題。如果最后MAKE的時候提示找不到arm-linux-gcc就是這錯了,改一下。

arm-elf-gcc是用來編譯uClinux內(nèi)核的工具,arm-linux-gcc用來編譯LINUX
2)加進自己板子的項目
搜索B2的這部分文件
B2_config      :      unconfig
       @./mkconfig $(@:_config=) arm s3c44b0 B2 dave

后面加上這部分:
TT_config       :      unconfig
       @./mkconfig $(@:_config=) arm s3c44b0 TT T2T
切記在@./mkconfig $(@:_config=) arm s3c44b0 TT T2T
前面的是Tab來的,TT_config       :      unconfig也是一樣,不能用空格代替,因為它是靠這個來識別命令的

==========================================================================================

[2]在宿主機(PC機)上建立arm-elf-gcc交叉編譯環(huán)境

1)建立arm-linux-gcc編譯環(huán)境
在RedHat Linux系統(tǒng)下以root用戶登錄,
將cross-2.95.3.tar.bz2文件復制到/目錄下,
安裝:
# tar jxvf cross-2.95.3.tar.bz2
這個命令會在你的/usr/local/arm/2.95.3目錄下安裝 arm-linux-gcc 交叉編譯程序,
然后在PATH變量中添加一項:/usr/local/arm/2.95.3/bin.
[root@localhost root]# export PATH=$PATH:/usr/local/arm/2.95.3/bin

把PATH=:$PATH:/usr/local/arm/2.95.3/bin添加到/ETC/bash_profile文件中

或者
在/etc/bashrc文件中添加一項:
 export PATH=:$PATH:/usr/local/arm/2.95.3/bin
之后可以測試一下 echo $PATH 

注意:PATH大小寫不一樣,另外LINUX下大小寫是不同的,以后不特別聲明。

注意:命令中的參數(shù)之間都由單個空格或者TAB隔開,命令前有的有# 代表命令行符,不用輸入。

注意:不可在WINDOWS下用winRAR解壓u-boot-1.1.2.tar.bz2或u-boot-1.1.2.tar.gz這種文件,會少文件,去LINUX下,另外解壓的時候也不用非點用命令行操作,LINUX現(xiàn)在對GUI已經(jīng)支持的非常好了,比如解壓只要右鍵點文件,選解壓到當前文件夾就可以,執(zhí)行的時候只要雙擊再選“執(zhí)行”

注意:我用的VMWARE(虛擬機)裝的LINUX,要在LINUX和WIN中間傳遞文件用VM-》SETTING里的SHARE FOLDER
該功能是把WIN 下的一個文件夾共享給LINUX。
這個功能必須裝VMWARE TOOLS才能用,
裝VMWARE TOOLS方法:首先在VM-》SETTING里CDROM項里把光驅(qū)設置為裝入VMWARE安裝文件夾下的LINUX工具的.ISO,LUINUX下就出現(xiàn)CDROM了 拷貝 解壓 安裝不在話下。必須注意的是VMWARE TOOLS在每次重起LINUX之后還必須也重起一下,TMD,誰搞定不用重起告訴我一聲
重起的方法:/etc/init.d/vmware-tools restart
就有消息出來了

注意:另外郁悶的是我的WIN與LINUX之間復制文字似乎也不順暢,干脆在SHARE FOLDER里建立一個TXT,兩個系統(tǒng)搗文字玩~~

測試:
把終端關閉,重新打開后執(zhí)行如下命令:

# arm-linux-gcc –v

建立好交叉編譯環(huán)境后可以試著編譯u-boot了
2)也可以建立arm-elf-gcc
與上面類似,用周立功的編譯包直接安裝
會在/usr/local/bin下產(chǎn)生arm-elf-gcc只類的文件
然后設置路徑
[root@localhost root]# export PATH=$PATH:/usr/local/arm-elf/bin
======================================================================================================
[3] 測試交叉編譯器搞好沒有
 編譯個44B0例子 在UBOOT包目錄下執(zhí)行一下命令,以下是編譯的包自帶的DAVE公司板子B2(名)
1)     Make distclean (清除以前編譯的痕跡)
2)     Make B2_config(B2代表B2板子的,前面見到過)
3)     Make 
沒問題就可以進行下面了
注意:B2默認用arm-linux-gcc編譯,要是前面安的arm-elf-gcc的話此時會報錯 把UBOOT目錄下的MAKEFILE按照前面說的改一下
注意:一般說來還會有個問題,懷疑是編譯器的問題 提示什么abi=apcs-gnu只類的找不到吧~~記不住了
改UBOOT目錄下config.mk (好象)
文件里改成如下
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,$(call cc-option,-mabi=apcs-gnu,))
原來的行少了$(call cc-option,-mabi=apcs-gnu,) 具體在哪行忘了 CTRL+F搜索一下
其他應該沒問題,有問題GOOGLE搜一下,不是通病就是自己安裝的問題了
注意:
MAKE之后會生成三個文件: 
u-boot——ELF格式的文件,可以被大多數(shù)Debug程序識別; 
u-boot.bin——二進制bin文件,純粹的U-BOOT二進制執(zhí)行代碼,不保存ELF格式和調(diào)試信息。這個文件一般用于燒錄到用戶開發(fā)板中; 
u-boot.srec——Motorola S-Record格式,可以通過串行口下載到開發(fā)板中。








[4]開始配置U BOOT
1)給自己板子個公司起個名,我的公司叫T2T 板子叫TT,剛才那個例子公司名DAVE板子名B2
以B2板子的程序做為模板來做,省很多工作 
#cd u-boot-1.1.2//進U BOOT目錄
#cd board //進BOARD目錄,該目錄下存放各種公司的開發(fā)板,但44B0的好象只有一種B2
#cp -R dave T2T (復制 并且改名) 
#cd T2T
#mv B2 TT (復制 并且改名) 
#cd TT 
# mv B2.c TT.c 
修改TT里面的Makefile, 把B2改成TT,編譯時如果報的其它類似找不到B2的錯誤也是把相應的B2改成TT來處理。
修改T2T/TT/config.mk
  TEXT_BASE = 0x0c1000000
修改T2T/TT/Makefile
  將所有的B2改為TT
2)/include/configs
cp B2.h TT.h依舊是把B2的改個名
注意:DAVE的板子是用44B0的,但還有其他板子用嗎?怎么確定只有它用?用以下命令

到board目錄查了一下: 
#cd u-boot 
#cd board 
#find . -exec grep -l 44B0 {} \; 
結(jié)果是: 
./dave/B2/B2.c 
B2網(wǎng)站是: http://www.dave-tech.it

3)以下文件修改記錄

----------------------------------------------------------------------------------------------------
-----------------------------------/include/configs/TT.h-------------------------------------------
----------------------------------------------------------------------------------------------------
#define CONFIG_INIT_CRITICAL     1         這個在cpu/s3c44b0/start.S里面用到,如果你的u-boot程序不是在sdram中調(diào)試而是固化到flash中運行的話,這個必不可少。

找到 #define CONFIG_B2          1        改成CONFIG_TT

找到 #define CONFIG_S3C44B0_CLOCK_SPEED   75   主頻改成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  這個必不可少,如果你想把你的參數(shù)保存到flash的話
#define CFG_ENV_ADDR    (PHYS_FLASH_1+0x40000)  這個就是你的參數(shù)保存在flash里的起始地址了

#define CFG_ENV_OFFSET 0x40000      這個我后來看它源程序發(fā)現(xiàn)如果你上一步?jīng)]有設置它的起始地址的話就會用它來作默認地址的了

#define CONFIG_AUTO_COMPLETE

其它地方?jīng)]有深究哦,有些好像不要也行,你就試試吧。

找到Hardware drivers部分,這應該是網(wǎng)絡芯片設置吧,參考一下這個吧(要看芯片的):

#define CONFIG_DRIVER_RTL8019        這個就要看你的板上用的是什么網(wǎng)卡了(這個是臺灣出的,有10M)

#define RTL8019_BASE        0x06000300   這個是網(wǎng)卡相就寄存器的起始地址,有的掛在BANK4上了地址自然是0X08000300

以下部分我試過不要也行,你試下吧

#define RTL8019_BUS32             0

#define CONFIG_SMC_USE_16_BIT

#undef  CONFIG_SHOW_ACTIVITY

#define CONFIG_NET_RETRY_COUNT           10       應該是重試的次數(shù)吧


#define CONFIG_SERIAL 1

#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參數(shù)設置,看一下吧,其實我覺得了解一下就行的了,只是一些初始設置值,以后可以用命令setenv  saveenv來修改的。

#define CONFIG_BOOTDELAY   3                這個就是運行bootcmd之前的等待時間

#define CONFIG_BOOTARGS  "devfs=mount root=ramfs console=ttyS0,115200" 引導uClinux的時候傳遞的參數(shù),不會就先不用管它也行。 

#define CONFIG_ETHADDR       00:50:c2:1e:af:fb    網(wǎng)卡的物理地址MAC

#define CONFIG_NETMASK  255.255.255.0       掩碼地址,設置過ip的人都應該知道吧

#define CONFIG_IPADDR   192.168.0.30          這是你板上網(wǎng)卡8019的ip地址

#define CONFIG_SERVERIP       192.168.0.10       這是你宿主機的ip地址,以后用tftp下載的時候用到,一定要跟你的宿主機一致才行。

#define CONFIG_BOOTFILE       "u-boot.bin"        這個就是你要下載文件的默認名字,注意的是不是UBOOT編譯的文件 而是UBOOT下載以后在這個地址執(zhí)行這個文件,比如這個文件在下LINUX后就常被改成UCLINUC.BIN了

#define CONFIG_BOOTCOMMAND   "bootm 0x50000"   這是bootdelay后運行的命令

 


Miscellaneous configurable options部分,參考一下吧:

#define    CFG_LONGHELP                       /* undef to save memory       */

#define    CFG_PROMPT      "TENWAY=>"   這是進入命令模式下的提示符,改個帥一點的吧

#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        0x00200000 flash的容量(2M)

#define CFG_FLASH_BASE         PHYS_FLASH_1   定義多個名字而已,其它地方會用到

注意:
存儲容量的計算方法
2M=0x00200000-----------------16進制轉(zhuǎn)換成10進制(用WINDOWS自帶的計算機就行)-------------------》2097152
2097152=1024*1024*2

 

 

 

FLASH organization部分,看注釋應該知道了吧,參考一下:
/*-----------------------------------------------------------------------
 * FLASH organization
 */
#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks  */
#define CFG_MAX_FLASH_SECT 256 /* 最大支持的SECTOR數(shù)量,另外SAM FEI的補丁這里設置了32個 是錯誤的*/
//#define CFG_MAIN_SECT_SIZE      0x10000  /* main size of sectors on one chip */

#define CFG_FLASH_ERASE_TOUT 4120000 /* Timeout for Flash Erase (in ms) 在前面加個4讓它長點 */
#define CFG_FLASH_WRITE_TOUT 1000 /* Timeout for Flash Write (in ms) */
其他地方還沒動 以后動的再補上







UBOOT 移植操作(3)
mamajinco 發(fā)表于 2006-9-6 9:41:00


----------------------------------------------------------------------------------------------------
-----------------------------------board/myboard/common/flash.c-----------------------------------
----------------------------------------------------------------------------------------------------
找到這個函數(shù):write_buff

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩精品在线| 美女国产一区二区| 视频一区二区三区中文字幕| 久久91精品国产91久久小草 | 7777精品伊人久久久大香线蕉的| 在线精品视频一区二区| 久久亚洲一区二区三区四区| 五月综合激情日本mⅴ| 不卡视频在线观看| 精品久久久网站| 视频一区二区三区入口| 99精品欧美一区| 久久夜色精品国产欧美乱极品| 亚洲成人免费视| 91免费小视频| 中文字幕亚洲成人| 国产91精品一区二区麻豆网站 | 一本久道中文字幕精品亚洲嫩| 欧美电影精品一区二区| 首页综合国产亚洲丝袜| 91福利国产成人精品照片| 国产精品久久久久久久午夜片| 激情国产一区二区| 欧美va亚洲va香蕉在线| 日本91福利区| 制服丝袜亚洲播放| 日产国产高清一区二区三区| 欧美日韩国产免费| 亚洲午夜精品网| 精品视频一区三区九区| 亚洲自拍偷拍综合| 欧美日韩综合一区| 亚洲亚洲精品在线观看| 欧美视频完全免费看| 亚洲欧美视频在线观看| 在线免费视频一区二区| 亚洲综合色噜噜狠狠| 欧美性受极品xxxx喷水| 亚洲国产一区二区三区| 欧美亚洲一区三区| 天天亚洲美女在线视频| 6080yy午夜一二三区久久| 免费高清视频精品| 2017欧美狠狠色| 成人爽a毛片一区二区免费| 国产精品国产三级国产普通话三级 | 国产精品996| 日本一区二区三区视频视频| 9i看片成人免费高清| 亚洲精品日产精品乱码不卡| 欧美视频一区二区三区| 美日韩一区二区三区| 精品日韩欧美一区二区| 成人网页在线观看| 亚洲午夜免费电影| 精品国产三级a在线观看| 国产精品资源在线看| 综合av第一页| 91精品国产综合久久久久| 国内精品视频666| 中文在线一区二区| 欧美视频自拍偷拍| 国产一区二区三区在线观看免费| 国产精品乱子久久久久| 欧美视频精品在线观看| 国产美女一区二区| 亚洲一级在线观看| 国产亚洲精品超碰| 欧美日韩国产大片| 国产成人在线视频网站| 亚洲一二三区不卡| 国产清纯白嫩初高生在线观看91 | 夜夜嗨av一区二区三区四季av| 91精品国产综合久久久久久漫画| 春色校园综合激情亚洲| 午夜久久福利影院| 国产欧美精品一区二区色综合| 91成人在线精品| 国内精品伊人久久久久av一坑| 国产精品色婷婷久久58| 欧美日韩国产美女| 成人h动漫精品一区二区| 美女免费视频一区二区| 亚洲乱码国产乱码精品精小说| 日韩欧美一卡二卡| 色噜噜夜夜夜综合网| 国产精品资源在线看| 日韩国产精品久久久| 一个色综合av| 国产精品欧美综合在线| 欧美一区二区三区免费大片| 一本到不卡精品视频在线观看| 久久国产成人午夜av影院| 亚洲午夜一区二区| 亚洲欧洲成人精品av97| 国产日韩精品一区二区浪潮av | 日韩电影在线看| 亚洲精品国产成人久久av盗摄| 国产日韩一级二级三级| 日韩三级免费观看| 欧美一区二区三区四区在线观看| 91麻豆免费看| 色综合咪咪久久| 成人av电影免费观看| 国产a区久久久| 韩国理伦片一区二区三区在线播放| 性欧美大战久久久久久久久| 亚洲永久免费av| 中文字幕一区二区视频| 国产欧美日韩精品一区| 久久九九99视频| 国产清纯在线一区二区www| 欧美mv日韩mv国产网站app| 日韩欧美久久久| 日韩一区二区三区在线观看| 欧美一级欧美一级在线播放| 欧美男同性恋视频网站| 正在播放亚洲一区| 在线成人av网站| 日韩欧美国产一区二区三区| 日韩欧美的一区| 久久久久久**毛片大全| 国产三级一区二区| 国产精品国产自产拍高清av王其| 国产精品视频观看| 亚洲乱码国产乱码精品精98午夜| 一区二区三区高清不卡| 亚洲午夜精品久久久久久久久| 亚洲成人av福利| 美女精品自拍一二三四| 国产精品一区二区在线观看网站 | 视频在线观看91| 九色综合狠狠综合久久| 国产乱国产乱300精品| 大尺度一区二区| 欧美这里有精品| 制服丝袜国产精品| 日本一区二区视频在线观看| 亚洲三级视频在线观看| 午夜视频在线观看一区| 激情综合网天天干| www.66久久| 欧美欧美午夜aⅴ在线观看| 久久综合九色综合欧美就去吻| 国产精品国产自产拍高清av王其| 亚洲永久精品大片| 精品在线观看免费| 97精品久久久午夜一区二区三区| 欧美军同video69gay| 久久综合九色综合97婷婷| 亚洲精品乱码久久久久久| 美女视频黄 久久| 色综合中文字幕| 日韩欧美黄色影院| 亚洲日本在线天堂| 九九国产精品视频| 91国偷自产一区二区三区成为亚洲经典 | 久久青草欧美一区二区三区| 国产精品久久久久久户外露出| 五月天一区二区三区| 成人毛片老司机大片| 欧美喷潮久久久xxxxx| 国产精品视频在线看| 秋霞午夜av一区二区三区| 成人av免费观看| 日韩精品最新网址| 亚洲一区二区三区在线| 国产成人av一区二区三区在线| 51午夜精品国产| 亚洲色大成网站www久久九九| 激情五月婷婷综合网| 欧美另类久久久品| 亚洲精品国产无套在线观| 国产精品一级片在线观看| 337p亚洲精品色噜噜| 亚洲国产精品尤物yw在线观看| 国产91精品精华液一区二区三区| 日韩午夜在线观看视频| 国产在线精品一区二区夜色| 欧美色综合天天久久综合精品| 中文字幕免费不卡在线| 国产麻豆精品久久一二三| 欧美久久高跟鞋激| 亚洲一区在线观看免费观看电影高清| 国产精品亚洲午夜一区二区三区 | 中文字幕一区二区视频| 国产一区二区三区| 欧美videos中文字幕| 蜜臂av日日欢夜夜爽一区| 91精品欧美一区二区三区综合在| 一区二区三区四区在线播放| 成人国产精品免费网站| 国产亚洲欧洲997久久综合| 久88久久88久久久| 26uuu久久天堂性欧美| 久久精品国产色蜜蜜麻豆| 日韩精品一区二区三区在线播放| 视频一区二区国产| 日韩三级视频在线观看| 免费观看91视频大全|