小靜的ARM進修日志04_U-Boot移植+S5求包養網PV210處置器簡介(轉)
Hello,大師好,錄像跳票N久,都不了解該用如何的收場白了。小小的為難。有時辰真感到越長年夜越繁忙,前段時光回黌舍忙著結業的工作,見導師、修正論文、辯論、結業照、結業儀式、同窗聚首等等一系列的工作。U-Boot的錄像沒能實時更換新的資料,估量曾經有不少伴侶都記不得小靜了吧。
此次回黌舍看了兩部片子,《致芳華》和《中國合伙人》。由於在黌舍考四六級的時辰看過新西方的教材,所以對《中國合伙人》更有感到。很愛好開頭王陽說的那句話:假如皺紋終將刻上額頭,你只能做到不讓皺紋刻到你的心上。
好了,結業了,也預備好了與芳華分別。小靜的分送朋友仍是要持續,持續保持記載我的ARM進修過程~
這一次,重要和大師分送朋友一下uboot2011.06在S5PV210處置器上的移植經過歷程。在錄這期錄像的時辰糾結了很久~底本預計用本身之前做的阿誰6410的小板子來停止移植,不外,比來正在跟徒弟做的項目用到了210處置器,感到這是一個很不錯的東東,所以就從師父那里借了一個210的板子,軟磨硬泡,讓徒弟供給了一個U-Boot在210平臺上的移植思緒。然后本身一路磕磕絆絆,終極在徒弟的領導下完成了這個移植經過歷程。此刻想想,這個經過歷程對U-Boot年夜致的移植思緒仍是挺有參考意義的,所以就記載上去,盼望我的帖子可以和收集上其他先輩的材料一路給正在研討U-Boot的伴侶供給輔助~
仍是先把錄像發下去:
S5PV210處置器簡述優酷版地址
U-Boot總述優酷版地址
U-Boot CPU級相干文件先容優酷版地址
U-Boot board級相干文件先容優酷版地址
U-Boot 編譯與燒寫優酷版地址
S5PV210處置器啟動經過歷程優酷版地址
第四期片尾錄像,送給大師一首輕松的旋律:星星小夜曲,盼望大師高興快活
百度網盤版下載地址
U-Boot移植相干文件和S5PV210手冊百度網盤下載
在停止U-Boot移植之前,我們會用到一些有關S5PV210的常識,在這里簡略的給大師先容一下~
—————————————————————————————————————–第一部門———————————————————————————————–
S5pv210是一個32位精簡指令集、低功耗、高機能的cortex-a8處置器,它屬于armv7架構。
上邊的這張圖,顯示了S5PV210處置器的全體框圖。從這張圖中我們可以清楚到210的重要效能,這些小的模塊配合組成了210處置器。
起首說一說CPU焦點部門,CPU的主頻可以到達800M或1GHz,我們可以經由過程設置裝備擺設U-Boot源碼中對應把持主頻的宏來停止主頻的選擇。U-boot默許的主頻是1GHz。CPU的焦點部門還有512KB的高速緩存。還有NEON,NEON它是ARM外部集成的可以完成復雜算法的模塊,好比說圖像的智能剖析,數學上的包養網心得運算等都是經由過程NEON來完成的。
左上角是體系外設,這一部門重要是一些低速王大是從藍府借來的療養院之一,另一個名叫林麗。裴奕向明遠行匯報的那天,藍學士帶著這對夫婦去接,在費奕出發後,他裝備。此中:
RTC是及時時鐘,擔任體系時光的把持;
PLL是鎖相環,重要起倍頻感化;
timer with PWM是按時器模塊;
Watching Timer是看門狗,看門狗重要是在利用法式跑飛或許體系逝世機一段時光之后,將體系重啟。看門狗在現實的項目中是要翻開的。
DMA(24ch)是24通道的DMA把持器。假如沒有DMA的話,數據是經由過程CPU傳包養心得給內存,再由內存傳給體系外設的;有了DMA之后,數據可以欠亨過CPU。好比音頻數據經由過程DMA把持通道直接傳到內存中。DMA可以把持外設數據與外設數據、外設數據與內存數據、內存數據與內存數據之包養sd間的傳輸,你為什麼要嫁給他?其實,除了她對父母說的三個理由之外,還有第四個決定性的理由伊森她沒說。如許可以有用的晉陞體系的任務效力。6410中也有DMA,只是沒有包養網評價210的多;
Keypad(14×8):14x8的鍵盤接口;
TS-ADC(12Bit/10ch):12位的數模轉換,有些電阻屏的觸摸效能就是由他來完成的;
左下角是內部總線模塊。從這個模塊可以看到210支撐IIS、AC97和PCM如許的音頻尺度接口;
HSMMC/SDx4:4包養網評價路MMC總線,可以接SD卡、TF卡和SDIO接口;
USB Host2.0/OTG2.0:210支撐USB Host 2.0,和徒弟現實測試了一包養情婦下,USB Host2.0的傳輸速率大要是12~16M/s;
UARTx4:4路串口;
IICx3:3路IIC總線,一些常用的電容屏的觸摸芯片,重力傳感器就是接在了IIC總線上;
HS-SPIx2:2路SPI總線;
GPIO:GPIO接口;
下邊中心的是電源管路模塊,假如在做手機或許平板電腦類的產物的話,普通會用到,他的感化是經由過程軟件靜態調理CPU功耗,普通是經由過程降低或下降,翻開或許封閉電壓的方法來調理功耗的;
右下角是存儲接口模塊,以前聽到Memory總會老練的以為是內存的意思,實在并不是如許,Memo短期包養ry實在是存儲的意思;
S5PV210的NAND支撐SLC和MLC兩種,SLC的穩固性由于MLC,劃一容量的SLC價錢高于MLC;
它還支撐16位硬件ECC。由于nan包養sdd flash的工藝題目,在數據讀取的經過歷程中能夠會呈現位過錯,這時就需求Ecc來檢討和改正了;
210 常用的芯片是LPDDR2和DDR2,這里的LP就是low power的意思,就是低功耗~
右上角部門就是210強盛的多媒體效能模塊了;
起首是攝像頭接口;
MFC多媒體魄式轉換模塊,重要的義務就是錄像文件的編解碼;具有30幀/s的處置才能,支撐H.263/H.264/MPEG4編碼息爭碼;
支撐2D/3D圖形引擎;
HDMI,高清數字多媒體接口;
JPEG重要用于圖片文件的硬件編碼,原始數據經由過程JPEG編碼天生jpg格局文件;
最后是LCD把持器;
中心的Multi layer AHB/AXI Bus是高速總線,CPU外部各個模塊與CPU就是經由過程這個高速總線來完成通信的。
—————————————————————————————————————————-第二部門———————————————————————————————————-
簡略的清楚了210處置器之后呢,就開端停止U-Boot的移植了。說到U-Boot,確定會有不少伴侶發生疑問包養站長,什么是U-Boot?U-Boot的效能是什么呢?實在啊,這個U-Boot它就是universal bootloader,也就是通用的bootloader。它存在于nandflash或許SD卡中,它是在開機上點之后,操縱體系起來之前包養網心得用來領導的一個法式。U-boot 的重要感化是停止內存的初始化、CPU的初始化、串口初始化等一系列的初始化任務,完成這些之后,再將操縱體系加載到內存中,從而運轉起來。
U-Boot 源碼文件下包含一些目次文件和文本文件,這些文件可分為”與平臺相干的文件”和”與平臺有關的文件”,此中common文件夾下的文件就是與平臺有關的文件;與平臺相干的文件又分為CPU級相干的文件和與板級相干的文件:arch目次下的文件就是與CPU級相干的文件,而bo包養意思ard、drivers、include等文件夾下的文件都是與板級相干的文件。我們在移植的經過歷程中,需求修正的文件也就是這些與平臺相干的文件。
U-Boot 的移植經過歷程重要包含以下四個步調:
1.下載U-Boot源碼
2.修正響應的文件代碼
3.編譯U-Boot
4.燒寫到開闢板上,運轉
上面是移植2011.06版本到210處置器上時修正(或添加)的文件:
以下文件均為與CPU級相干的文件
u包養站長boot2011.06/arch/arm/cpu/armv7/start.s
uboot2011.06/arch/arm/cpu/armv7/Makefile
uboot2011.06/arch/arm/include/asm/arch-s5pc1xx/hardware.h
uboot包養感情2011.06/arch/arm/lib/board.c
uboot2011.06/arch/arm/lib/Makefile
包養妹uboot2011.06/arch/arm/config.mk
以甜心花園下文件均為與板級相干的文件
uboot2011.06/board/samsung/OK210/tools/mkv210_image.c
uboot2011.06/board/samsung/OK210/lowlevel_init包養甜心.S
uboot2011.06/board/samsung/OK210/mem_setup.S
uboot2011.06/boa包養合約rd/samsung/OK210/OK210.c
uboot2011.06/board/samsung/OK210/OK210_val.h
uboot2011.06/board/samsung/OK210/mmc_boot.c
uboot2011.06/board/samsung/OK210/Makefile
uboot2011.06/drivers/mtd/nand/s5pc1xx_nand.c
uboot2011.06/drivers/mtd/nand/Makefile
uboot2011.06/include/configs/OK210.h
uboot2011.06/i包養俱樂部nclude/s5pc110.h
uboot2011.06/include/s5pc11x.h
uboot2011.06/spl/Makefile
uboot2011.06/boards.cfg
uboot2011.06/config.mk
uboot2011.06/Makefile
在這里簡略的闡明一下我選擇2011.06版本的uboot 停止移植的緣由,在本身日常平凡在各個論壇、貼吧中的清楚,發明大師對2011.06版本的會商絕對來說多一些,所以選擇的這個版本。在這里我想本身試一下U-Boot移植的經過歷程也盼望能給大師包養甜心網有一些輔助。
別的呢,附件供給的移植參考目次是在原始U-boot-2011.06版本基本長進行的修正,把修正的文件零丁拿出來,便利大師應用對照東西檢查我修正了哪些內在的事務,當然移植參考目次里面,并不是一切的文件都是從U-boot-2011.06拷貝出來的,有些文件是從U-boot-1.3.4拷貝的:目次board/samsung/OK210上面的包養網比較mmcboot.c 文件,從SD啟動U-Boot必需含有該文件,三星官方供給的U-boot-1.3.4源碼包括有該台灣包養網文件,我們直接拷貝過去就可以了。
上面的內在的事務是我在移植uboot的時辰徒弟給我甜心花園總結的移植思緒(貼出來和大師一路分送朋友一下~~):
移植經過包養行情歷程就是在新的U-Boot代碼中增添CPU級和Board級代碼,使之可以或許在開闢板下面運轉。
1.看一下源代碼里面能否有CPU級相干代碼,好比S5PV210是ARMV7架構,看一下CPU目次上面能否有ARMV7的目次,由於U-Boot曾經是嵌進式平臺里面利用很普遍的Bootloader了,所以基礎上都曾經有了CPU級相干代碼。
2.下一個步驟就是檢查板級相干代碼了。一款主流CPU發布的時辰,廠商普通城市供給官方開闢板,好比S5PV210發布的時辰三星公司供給了官方開闢板,應用的U-Boot是1.3.4版本,三星在U-Boot官方供給的1.3.4基本下面停止了改良,好比增添SD卡啟動和NandFlash啟動相干代碼 等等。在移植新版本的U-Bo台灣包養ot到開闢板的時辰,我們需求看一下U-Boot代碼里面能否曾經含有了板級代碼,假如曾經有了,就不需求本身修改了,編譯以后就可以應用,而有的時辰在較新的U-Boot代碼里面,是不含有這些板級支撐包的,這個時辰就需求增添本身的板她身上。門外的長凳欄杆上,他靜靜地看著他出拳,默默陪著他。級包了。
3.板級包的增添需求參考CPU官方供給的U-Boot代碼,由於我們移植的是最小效能的U-Boot,讓U-Boot可以或許運轉起來即可,所以只需求抓最要害的代碼,好比體系時鐘的設置裝備擺設,DDR2內存的初始化代碼,調試串口的初始化等,這些代碼是需求參考U-Boot1.3.4的,不需求我們本身往寫每一行,可是需求我們了解U-Boot 可以或許在S5PV210下面運轉起來,必需做的任務。
————————————————————————————————————————————–第三部門——————————————————————————————————–
上面開端切進主題:停止我們U-Boot的移植經過歷程吧~
起首停止第一個步驟,下載任務:輸出U-Boot下載的地址,找到本身要下載的U-Boot版本,點擊開端下載,下載完成之后開端解壓。
U-Boot下載之后緊縮包的緊縮方法是.tar.bz2的,所以解壓號令為tar jzvf **.tar.bz2
而我們日常平凡常常解壓的緊縮包為.tar.gz格局的,所以它的解壓號令為tar zxvf **.tar.gz。
長期包養 這兩個解壓號令只要一個參數的差異,不難搞混的友友們需求重點留意嘍~!
解壓之后進進文件夾,可以看到之前給大師先容的目次構造相似的文件夾和文本文件,然后就依照板子的設置裝備擺設停止響應文件的修正了~
在修正的經過歷程中,用到最多的一個宏界說就是CONFIG_SPL_BUILD,這個宏界說的重要感化就是天生BL1文件,提到BL1文件確定又會有伴侶發生疑問,在這里就這個BL1文件給大師簡略的先容一下:
BL1文件是一段內部代碼,寄存在SD卡或許nandflash上,鉅細為8K;
除了BL1文件,還有BL0和BL2文件。
BL0文件是寄存在CPU外部IROM中的一段固化代碼,CPU上點之后,起首往運轉BL0文件。
BL2文件是完全的U-Boot代碼。
這三個文件之間的關系就是:BL0運轉時會將BL1拷貝到CPU的IRAM中,然后履行BL1;BL文件履行起來之后會進步前輩行內存的初始化,之后將BL2文件拷貝到內部內存中,也就是我此刻手中這個210 板子的DDR2中。
SPL宏界說的起源:
移植經過歷程最重要的就是代碼的修正與文件的設置裝備擺設了,大師可以依據我所供給的這些內在的事務停止代碼的完美與修正。
修正完成之后開端編譯任務,兩個號令:
make OK210_config
make
編譯的經過歷程中會天生兩個主要的文件,一個是BL1文件,另一個就是uboot文件。編譯完成之后將這些內在的事務燒寫到SD卡中,燒寫的號令如下:
包養sd 1.dd bs=512 seek=1 if=/dev/zero of=/dev/sdb count=2048
2.dd bs=512 iflag=dsync oflag=dsync if=spl/OK210-spl.bin of=/dev/sdb seek=1
3.dd bs=512 iflag=dsync oflag=dsync if=u-boo包養條件t.bin of=/dev/sdb seek=49
在這里值得闡明幾點:
dd號令是linux下很是有效的一個號令,感化就是用指定鉅細的塊拷貝一個文件,并在拷貝的同時停止指定的轉換;
號令中的sdb是SD卡的裝備稱號,在分歧的電腦上能夠稱號是紛歧樣的,所以大師在燒寫的經過歷程中必定要留意這個裝備稱號;
燒寫到SD卡中,必定要清楚一下SD卡的分區,上面是我本身畫的一張有關SD卡分區的圖,大包養心得師可以簡略清楚一下它的分區情形:
Sdcard 分區先容:
在這里可以看到,SD卡一塊的鉅細為512B,第一塊為保存塊,緊接著的8K寄存BL1,所以BL1燒寫的肇端塊標號為1,這也就是第二條燒寫號令中seek=1的起源了;接上去寄存周遭的狀包養網VIP況變量,有的材料中將周遭的狀況變量與BL1文件總結為BL1文件,不外這是的BL1文件就不再是8K鉅細了,而是加上周遭的狀況變量的鉅細共24K了,也就是48塊;之后寄存BL2文件,也就是uboot.bin,肇端塊標號49。最后的部門是我們本身的拷貝空間了。
大要清楚了這個分區之后,這個燒寫號令想必大師也清楚的差未幾了。然后輸出這些燒寫號令停止文件燒寫,留意這里的號令是在源碼的目次文件下輸出的,否則的話找不到對應的文件。
燒寫完成,將SD卡插到開闢板上,設置板子為SD卡啟動,然后翻開超等終端,設置裝備擺設好之后將板子上電,假如板子正常啟動了,闡明我們的移植任務順遂完成了。假如沒有啟動起來,那么就要檢討一下哪一個步驟呈現了題目,然后持續開端歸去檢查響應的U-Boot源碼。
—————————————————-包養甜心——————————————————-第四部門———————————————————————————————————————
在這一部包養網VIP門,重要給大師先容一下210的啟動方法。
起首清楚一下s5pv210支撐的啟動方法:
此中我們用的最多的是nandflash啟動和SD卡啟動。
起首啟動的是第一啟動方法,啟動流程如下:
在上圖中可以看出,第一啟動方法中先任務的是IROM,他做了一些初始化任務,之后就是啟動方法的選擇,經由過程設置撥碼開關的狀況來斷定啟動方法。這里以SD卡啟動為例,選擇了SD卡啟動,進進下一個流程:校驗和,也就是查驗文件傳輸經過歷程中能否稀有據傳輸過錯,假如有的話第一啟動就掉敗了,進進第二啟動;假如傳輸無誤,那么第一啟動持續,BL1開端任務,初始化內存,加載BL2到內部內存等等,之后BL2運轉起來,初始化內存、CPU、串口等等,加載操縱體系,最后操縱體系運轉起來。第一啟動方法啟動勝利。
假如第一啟動方法啟動掉敗,那么進進第二啟動方法,來看一下第二啟動方法的啟動流程:
IROM的任務和第一啟動方法雷同,第一啟動在文件傳輸經過歷程中呈現過錯之后進進第二啟動方法,假如校驗和查驗無誤,那么接上去就是BL1,BL2和操縱體系順次運轉起來,終極板子啟動勝利;假如啟動第二啟動方法之后檢討校驗和有誤,那么第二啟動方法掉敗,進進串口啟動,串口啟動假如仍是白,就進進USB啟動,假如USB啟動還掉敗的話,那么啟動就掉敗了。
在這里我只是簡略的給大師描寫一下,要想詳細清楚的話,仍是要看手冊的,一會兒我會上傳附件給大師分送朋友這些手冊的內在的事務,有愛好的伴侶們可以細心研討一下的~
寫到這里,帖子的內在的事務也就差未幾了,這一次的文字很多多少啊,碼字碼的手都快僵了,能夠會有不太正確的處所,還請列位先輩多多指教。小男子在此先謝過啦*^__^*
• 在飛凌S5PV210(Cortex-A8)開闢板上移植U-Boot 的經過歷程
2877
• 【飛凌S5PV210開闢板常識分送朋友】S3C6410與s5pv210的對照
2308包養價格ptt
• 三星三款主流處置器s3c2440\s3c6410\s5pv210對照剖析
8336