<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Redboot修改實(shí)例

Redboot修改實(shí)例

作者: 時(shí)間:2012-07-25 來(lái)源:網(wǎng)絡(luò ) 收藏

在通常情況下,嵌入式開(kāi)發(fā)中都需要對bootload部分的代碼進(jìn)行,以適應實(shí)際的需求。本文以redboot為例,說(shuō)明了如何redboot源碼以使其具備

本文引用地址:http://dyxdggzs.com/article/148720.htm

1. 啟動(dòng)時(shí)提供LOGO圖片顯示

2. 為實(shí)現量產(chǎn),在命令行下提供自動(dòng)配置網(wǎng)絡(luò )的命令autocONfig

3. 為實(shí)現量產(chǎn),在命令行下提供自動(dòng)更新文件的命令update

4. 為實(shí)現量產(chǎn),在命令行下提供自動(dòng)配置腳本的命令autoexec

適用的運行環(huán)境為基于A(yíng)RM架構的硬件環(huán)境,包括

運行環(huán)境如下表所示。

是Red Hat公司開(kāi)發(fā)的一個(gè)獨立運行在嵌入式系統上的BootLoad程序,是目前比較流行的一個(gè)功能強大、可移植性好的BootLoad。

是一個(gè)采用eCos開(kāi)發(fā)環(huán)境開(kāi)發(fā)的應用程序,并采用了eCos的硬件抽象層作為基礎,但它完全可以脫離eCos環(huán)境運行,并用來(lái)引導人和其他的嵌入式操作系統,如Linux、WinCE等。

eCos實(shí)現系統可配置機制的核心就在于它是由許多個(gè)組件構成,包括調度內核組件、硬件抽象層、文件系統組件、網(wǎng)絡(luò )協(xié)議棧等,用戶(hù)可以根據不同的需求選擇組件,并對一些特定的配置選項進(jìn)行設置,就可以構造出滿(mǎn)足特定應用需求的系統。

所有的組件都在組件庫中,組件庫其實(shí)是一個(gè)包含了eCos所有系統組件的文件夾,其路徑對應于“/eCos-2.0/packages”,該目錄的內容如下所示

☆ compat

包含支持與POSIX和uITRON3.0標準兼容的組件文件包

☆ cygmon

生成Cygmon調試監視器的配置文件包

☆ devs

eCos支持的所有外部設備驅動(dòng),如串口、以太網(wǎng)等

☆ error

包含各種常見(jiàn)的錯誤和狀態(tài)描述代碼,便于系統調試時(shí)報告錯誤和狀態(tài)

☆ fs

包含ROM和RAM文件系統包

☆ hal

包含所有硬件抽象層的目標硬件配置文件包

☆ infra

包含系統定義的基本結構,如數據類(lèi)型、宏定義、系統啟動(dòng)方式選擇

☆ io

I/O子系統文件包,建立在外部設備驅動(dòng)上層從而與特定硬件無(wú)關(guān)

☆ isoinfra

包含的文件包提供支持ISO標準C庫和兼容POSIX標準的接口

☆ kernel

提供eCos內核功能的配置文件包

☆ language

包含ISO的C庫和math庫

☆ net

提供TCP/IP協(xié)議棧支持的文件包

☆ redboot

包含生成Redboot調試監視器的配置文件包

☆ services

包含提供動(dòng)態(tài)內存分配和文件壓縮與解壓功能的庫文件

與硬件相關(guān)的文件按照如上所述,分別對應以下的子目錄:

“/eCos-2.0/packages/hal/arm”:Architectur HAL

“/eCos-2.0/packages/hal/arm/arm9”:Variant HAL

“/eCos-2.0/packages/hal/arm/arm9/ep93xx”:Platform. HAL

為了實(shí)現本文開(kāi)頭的四項特殊功能,需要eCos中的部分代碼。修改的文件為:

“/eCos-2.0/packages/hal/arm/arm9/ep93xx/v2_0/src/ep93xx_misc.c”

“/eCos-2.0/packages/redboot/v2_0/src/Flash.c”

“/eCos-2.0/packages/redboot/v2_0/src/io.c”

“/eCos-2.0/packages/redboot/v2_0/src/main.c”

ep93xx_misc的修改

在本例中,開(kāi)發(fā)平臺上添加了一塊FPGA芯片,通過(guò)該FPGA實(shí)現了對LCD的控制,因此對于raSTer的初始化過(guò)程有所不同。

該部分的修改,主要目的是提供“啟動(dòng)時(shí)提供logo圖片顯示”的功能。

增加__FPGA_LCD__宏定義

增加_RASTER_宏定義

_RASTER_ 完成Raster設置并且顯示開(kāi)機界面。

_ FPGA_LCD _ 完成FPGA設置并且顯示開(kāi)機界面。

Raster:

initRaster用來(lái)初始化LCD controller

LCD 界面定制在Nor Flash AddrESS 0x60DC0000

Copy Kernel 到指定Address, Copy zImage 到0x800000(SDRAM Address)

FPGA:

1. check chip 分區是否存在

2. 如果存在則Copy logo and chip 到指定地址。

3. 初始化FGPA。

4. 顯示開(kāi)機界面。

5. Copy Kernel 到指定地址。

初始化FPGA流程:

1. Config相關(guān)GPIO

a) GPIO 0-7===D0~D7為輸出

b) GPIO 9,11,12===PROG_B,CSI_B,CCLK為輸出 8,10===DONE,INIT_B為輸入

2. Clear相關(guān)SDRAM

a) set prog_b low to clear the config data

b) start the config process

c) ready to read the init_b status

3. 寫(xiě)Chip.bin

4. 顯示logo

SDRAM write流程如下圖所示:

1. 根據CPU_buffer的使用情況,將準備寫(xiě)入SDRAM的數據,先存入CPU_buffer中。

2. 然后需要依次配置ADDR1、ADDR0、CONTROL_REG。

3. cpu_sdram_cmdgen會(huì )根據以上寄存器的設置,將cpu_buffer中的數據發(fā)送至arbiter,后存入SDRAM.

4. 數據請求完成后,cpu_sdram_cmdgen會(huì )將CONTROL_REG.ACT自動(dòng)清除。

5. CPU可以通過(guò)查詢(xún)CONTROL_REG.ACT位,得知當前寫(xiě)入SDRAM數據的操作是否完成。

6. 寫(xiě)SDRAM步驟如下

a) write (16'h00F0, 16'haaaa);

b) write (16'h00F1, 16'hbbbb);

c) write (16'h00F2, 16'hcccc);

d) write (16'h00F3, 16'hdddd);

e) write (16'h00F4, 16'heeee);

f) write (16'h00F5, 16'hffff);

g) write (16'h00F6, 16'h5555);

h) write (16'h00F7, 16'h6666);

i) write (16'h00F8, 16'h9999);

j) write (16'h00F9, 16'h7777);

k) write (16'h00Fa, 16'h8888);


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 實(shí)例 修改 Redboot

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>