當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀] 一. 準(zhǔn)備工作1. 軟硬件主 機:VMWare--ubuntu 10.10開發(fā)板:TQ2440--128MB Nand, Kernel:3.4.0編譯器:EABI-4.3.3_EmbedSky_20091210.tar.bz2u-boot:u-boot-2012.07.tar.bz22. 工具鏈,解壓EABI-4.3.3_

一. 準(zhǔn)備工作

1. 軟硬件

主 機:VMWare--ubuntu 10.10

開發(fā)板:TQ2440--128MB Nand, Kernel:3.4.0

編譯器:EABI-4.3.3_EmbedSky_20091210.tar.bz2

u-boot:u-boot-2012.07.tar.bz2

2. 工具鏈,解壓EABI-4.3.3_EmbedSky_20091210.tar.bz2到/opt目錄

root@ubuntu:~/uboot# ls /opt/EmbedSky/

4.3.3/ crosstools_3.4.5_softfloat/

3.這次移植是以smdk2410為模版,所以首先要刪除多余的目錄

//a.刪除arch下除arm以外的所有目錄

root@ubuntu:~/uboot/u-boot-2012.07/arch# find . -maxdepth 1 -type d | grep -v arm | xargs rm -rf

//b.arm/cpu下除arm920t以外的所有目錄

root@ubuntu:~/uboot/u-boot-2012.07/arch/arm/cpu# find . -maxdepth 1 -type d | grep -v arm920t |xargs rm -rf

//c.arch/arm/cpu/arm920t 錄下除s3c24x0以外的所有目錄

root@ubuntu:~/uboot/u-boot-2012.07/arch/arm/cpu/arm920t# find . -maxdepth 1 -type d | grep -v s3c24x0 | xargs rm -rf

//d.arch/arm/include/asm下除arch-s3c24x0以外的所有arch-xxxx,proc目錄不能刪

root@ubuntu:~/uboot/u-boot-2012.07/include/asm# find . -maxdepth 1 -type d | grep -v arch-s3c24x0 | grep -v proc | xargs rm -rf

//e.刪除include/configs目錄下除smdk2410.h文件以外的所有頭文件

root@ubuntu:~/uboot/u-boot-2012.07/include/configs# ls | grep -v smdk2410.h | xargs rm -rf

//f.去掉board下多余的目錄

root@ubuntu:~/uboot/u-boot-2012.07/board# find . -maxdepth 1 -type d | grep -v samsung | xargs rm -rf

root@ubuntu:~/uboot/u-boot-2012.07/board/samsung# find . -maxdepth 1 -type d | grep -v smdk2410 | xargs rm -rf

4. 生成內(nèi)存可運行的u-boot

a. 修改Makefile

  1. 156 ifeq($(HOSTARCH),$(ARCH))

  2. 157 CROSS_COMPILE?=

  3. 158 endif

  4. 159

  5. 160CROSS_COMPILE ?= /opt/EmbedSky/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/arm-linux-

b. 修改鏈接地址 board/samsung/smdk2410/config.mk

  1. #燒到板子上TEXT_BASE=0x33d80000

  2. 25 TEXT_BASE = 0x33d80000

  3. #仿真器調(diào)試TEXT_BASE=0x33000000

  4. 26 #TEXT_BASE = 0x33000000

  5. #為什么要選這個呢? 因其只要在內(nèi)存中就可以了,但是因為TQ2440有一個選項

  6. [7] Download Program (uCOS-II or TQ2440_Test) to SDRAM and Run it

  7. 寫到內(nèi)存的0x33000000并運行,這樣編出u-boot.bin后,直接寫到內(nèi)存就可以運行了,非常方便.

c.編譯,直接用smdk2410的,比較省事

  1. make smdk2410_config

  2. make

二. 可以從nand_flash啟動的u-boot

2.1 初始化內(nèi)存

修改board/samsung/smdk2410/lowlevel_init.S

L54 #define B1_BWSCON (DW32) > #define B1_BWSCON (DW16)

L58#define B5_BWSCON (DW16)> #define B5_BWSCON (DW8)

L126#define REFCNT 1113 > #define REFCNT 0x4F4

2.2 初始化clock_controler ,并將u-boot代碼復(fù)制到TEXT_BASE處

修改 arch/arm/cpu/arm920t/start.S

/*注掉這一段*/

#if 0

/* FCLK:HCLK:PCLK = 1:2:4 */

/* default FCLK is 120 MHz ! */

ldr r0, =CLKDIVN

mov r1, #3

str r1, [r0]

#endif

#endif /* CONFIG_S3C24X0 */

/*

* we do sys-critical inits only at reboot,

* not when booting from ram!

*/

#ifndef CONFIG_SKIP_LOWLEVEL_INIT

#if 1

bl cpu_init_crit

#endif

#endif

/*把棧初始化提前,因為下面要調(diào)用C函數(shù)*/

/* Set up the stack */

stack_setup:

ldr r0, _TEXT_BASE /* upper 128 KiB: relocated uboot */

sub r0, r0, #CONFIG_SYS_MALLOC_LEN /* malloc area */

sub r0, r0, #CONFIG_SYS_GBL_DATA_SIZE /* bdinfo */

#ifdef CONFIG_USE_IRQ

sub r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ)

#endif

sub sp, r0, #12 /* leave 3 words for abort-stack */

bl clock_init /*調(diào)用clock_init,初始化clock*/

bl my_nand_init /*調(diào)用my_nand_init,進行nand flash初始化*/

#ifndef CONFIG_SKIP_RELOCATE_UBOOT

relocate: /* relocate U-Boot to RAM */

adr r0, _start /* r0 <- current position of code */

ldr r1, _TEXT_BASE /* test if we run from flash or RAM */

cmp r0, r1 /* don't reloc during debug */

beq clear_bss

ldr r2, _armboot_start

ldr r3, _bss_start

sub r2, r3, r2 /* r2 <- size of armboot */

#if 1

bl my_nand_read_page /*調(diào)用my_nand_read_page,將u-boot從nand復(fù)制到TEXT_BASE處*/

#else

add r2, r0, r2 /* r2 <- source end address */

copy_loop:

ldmia r0!, {r3-r10} /* copy from source address [r0] */

stmia r1!, {r3-r10} /* copy to target address [r1] */

cmp r0, r2 /* until source end addreee [r2] */

ble copy_loop

#endif

#endif /* CONFIG_SKIP_RELOCATE_UBOOT */

2.3

a. 在board/samsung/smdk2410目錄下建文件boot_init.c,完成初始化clock_controler ,并將u-boot代碼復(fù)制到TEXT_BASE處的實際操作

b. 在arch/arm/include/asm/arch-s3c24x0/s3c24x0.h中

struct s3c24x0_clock_power {

u32 LOCKTIME;

u32 MPLLCON;

u32 UPLLCON;

u32 CLKCON;

u32 CLKSLOW;

u32 CLKDIVN;

u32 CAMDIVN; /*增加*/

};

b. 同時在board/samsung/smdk2410/Makefile中

COBJS := smdk2410.o flash.oboot_init.o

c.在arch/arm/cpu/arm920t/u-boot.lds中,將lowlevel_init.o和boot_init.o鏈接到前4K.

.text :

{ arch/arm/cpu/arm920t/start.o (.text) board/samsung/smdk2410/lowlevel_init.o (.text) board/samsung/smdk2410/boot_init.o (.text) *(.text)

} boot_init.c.txt (下載后改名為boot.c放在board/samsung/smdk2410/下)

2.4 為了使u-boot啟動后打印點東東,還需要修改arch/arm/cpu/arm920t/s3c24x0/speed.c

speed.c.txt(下載后改名為speed.c,替換以前的arch/arm/cpu/arm920t/s3c24x0/speed.c)

2.5. 最后寫到內(nèi)存0x33000000處還需要

a. 修改arch/arm/cpu/arm920t/start.S文件

161 #if 0

162 bl cpu_init_crit

163 #endif

b.修改 board/samsung/smdk2410/config.mk

25 #TEXT_BASE = 0x33d80000

26 TEXT_BASE = 0x33000000

2.6 make后寫到內(nèi)存中.


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉