www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 單片機 > 單片機
[導讀]移植環(huán)境1,主機環(huán)境:VMare下CentOS 5.5 ,1G內存。2,集成開發(fā)環(huán)境:Elipse IDE3,編譯編譯環(huán)境:arm-linux-gcc v4.4.3,arm-none-eabi-gcc v4.5.1。4,開發(fā)板:mini2440,2M nor flash,128M nand flash。5,u-bo

移植環(huán)境

1,主機環(huán)境:VMare下CentOS 5.5 ,1G內存。

2,集成開發(fā)環(huán)境:Elipse IDE

3,編譯編譯環(huán)境:arm-linux-gcc v4.4.3,arm-none-eabi-gcc v4.5.1。

4,開發(fā)板:mini2440,2M nor flash,128M nand flash。

5,u-boot版本:u-boot-2009.08

6,參考文章:

http://blogold.chinaunix.net/u3/101649/showart.php?id=2105215

http://blog.chinaunix.net/space.php?uid=23787856&do=blog&id=115382

http://blogimg.chinaunix.net/blog/upfile2/100811115954.pdf

下載并解壓源文件

1,下載u-boot-2009.08,可以從官方網(wǎng)站下載u-boot-2009.08

2,#tar -jxvf u-boot-2009.08.tar.bz2 //解壓源碼

移植步驟

1.1,了解u-boot目錄結構和啟動流程,請參考U-Boot啟動過程分析

【1】目錄結構

【2】啟動流程

1.2,建立mini2440開發(fā)板文件并編譯測試

在項目根目錄u-boot-2009.08上單擊右鍵->瀏覽文件夾

【1】定位到board/samsung,將目錄smdk2410復制并粘貼到當前目錄下,將其重命名為mini2440。

【2】打開mini2440目錄,將smdk2410.c重命名為mini2440.c,

【3】用gedit打開當前目錄下的Makefile(在Makefile上單擊右鍵->使用“文本編輯器”打開),定位到28行,修改后代碼如下所示(修改部分用灰色背景顏色標出):

include $(TOPDIR)/config.mk
LIB = $(obj)lib$(BOARD).a
COBJS :=mini2440.oflash.o
SOBJS := lowlevel_init.o
然后保存。

【4】在根目錄下定位到include/configs,將smdk2410.h復制并粘貼到當前目錄下,將其重命名成mini2440.h。

【5】用gedit打開根目錄下的Makefile文件,然后搜索smdk2410,定位到2997行,找到下列語句

smdk2410_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 samsung s3c24x0

然后將其復制并粘貼到其下面,并修改成如下語句

mini2440_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t mini2440 samsung s3c24x0

然后保存。
*說明:

arm :CPU的架構(ARCH)
arm920t:CPU的類型
mini2440 :對應在board目錄下建立新的開發(fā)板項目的目錄
samsung:新開發(fā)板項目目錄的上級目錄,如直接在board下建立新的開發(fā)板項目的目錄,則這里就為NULL
s3c24x0:CPU型號
*注意:編譯選項格式的第二行要用Tab鍵開始,否則編譯會出錯。

【6】編譯測試

打開終端,進入到u-boot-2009.08根目錄下執(zhí)行

[root@localhost u-boot-2009.08]# make distclean
[root@localhost u-boot-2009.08]# make mini2440_config
Configuring for mini2440 board...
[root@localhost u-boot-2009.08]# make
... .... .... ....

board.c:127: error: inline function 'coloured_LED_init' cannot be declared weak
board.c:129: error: inline function 'red_LED_on' cannot be declared weak
board.c:131: error: inline function 'red_LED_off' cannot be declared weak
board.c:133: error: inline function 'green_LED_on' cannot be declared weak
board.c:135: error: inline function 'green_LED_off' cannot be declared weak
board.c:137: error: inline function 'yellow_LED_on' cannot be declared weak
board.c:139: error: inline function 'yellow_LED_off' cannot be declared weak
board.c:141: error: inline function 'blue_LED_on' cannot be declared weak
board.c:143: error: inline function 'blue_LED_off' cannot be declared weak
make[1]: *** [board.o] 錯誤 1
make[1]: Leaving directory `/root/workspace/u-boot-2009.08/lib_arm'
make: *** [lib_arm/libarm.a] 錯誤 2
[root@localhost u-boot-2009.08]#

出現(xiàn)錯誤,內嵌函數(shù)不能被聲明為weak屬性,打開lib_arm/board.c,定位到127行開始,將其注釋掉,修改后結果如下:

void inline __coloured_LED_init (void) {}
//void inline coloured_LED_init (void) __attribute__((weak, alias("__coloured_LED_init")));
void inline __red_LED_on (void) {}
//void inline red_LED_on (void) __attribute__((weak, alias("__red_LED_on")));
void inline __red_LED_off(void) {}
//void inline red_LED_off(void) __attribute__((weak, alias("__red_LED_off")));
void inline __green_LED_on(void) {}
//void inline green_LED_on(void) __attribute__((weak, alias("__green_LED_on")));
void inline __green_LED_off(void) {}
//void inline green_LED_off(void)__attribute__((weak, alias("__green_LED_off")));
void inline __yellow_LED_on(void) {}
//void inline yellow_LED_on(void)__attribute__((weak, alias("__yellow_LED_on")));
void inline __yellow_LED_off(void) {}
//void inline yellow_LED_off(void)__attribute__((weak, alias("__yellow_LED_off")));
void inline __blue_LED_on(void) {}
//void inline blue_LED_on(void)__attribute__((weak, alias("__blue_LED_on")));
void inline __blue_LED_off(void) {}
//void inline blue_LED_off(void)__attribute__((weak, alias("__blue_LED_off")));

[root@localhost u-boot-2009.08]# make clean

[root@localhost u-boot-2009.08]# make

... ...

cpu/arm920t/start.o: In function `start_code':
/root/workspace/u-boot-2009.08/cpu/arm920t/start.S:117: undefined reference to `coloured_LED_init'

/root/workspace/u-boot-2009.08/cpu/arm920t/start.S:118: undefined reference to `red_LED_on'
make: *** [u-boot] 錯誤 1
出現(xiàn)錯誤coloured_LED_init'未定義。打開cpu/arm920t/start.S,搜索“coloured_LED_init”定位到117行,找到如下代碼:

bl coloured_LED_init
bl red_LED_on

將其注釋掉

//這兩行是AT91RM9200DK開發(fā)板的LED初始化,注釋掉

//bl coloured_LED_init
//bl red_LED_on


然后執(zhí)行清除、編譯命令

[root@localhost u-boot-2009.08]# make clean

[root@localhost u-boot-2009.08]# make

... ...

arm-linux-objcopy -O srec u-boot u-boot.srec
arm-linux-objcopy --gap-fill=0xff -O binary u-boot u-boot.bin
[root@localhost u-boot-2009.08]#
編譯通過。

【7】加入調試選項,啟用DEBUG宏,有兩種辦法辦法

<1>參考文章Makefile,如何傳遞宏定義DEBUG和Debug版和Release版的程序

在編譯時,直接在make 后面?zhèn)魅雲(yún)?shù) -d ,表示Debug模式,輸出有關文件和檢測時間的詳細信息,如

make -d

可以輸出源程序中定義的DEBUG宏定義的調試信息

<2>用gedit打開根目錄下的config.mk文件,然后搜索“DDEBUG”,找到如下語句

DBGFLAGS= -g # -DDEBUG

將注釋掉的DDEBUG選項打開,修改后下面語句

DBGFLAGS= -g -DDEBUG

但是此種辦法需要在調試完成時需要在將其注釋掉。

1.3,根據(jù)啟動流程修改或添加基本的u-boot源碼,使其能夠在內存中啟動

【1】增加對S3C2440一些寄存器的支持,添加中斷禁止部分和時鐘設置部分

用gedit打開cpu/arm920t/start.S,定位到134行附近,如下代碼

#if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410)
/* turn off the watchdog */

由于2410和2440的寄存器及地址大部分是一致的,所以這里就直接在2410的基礎上再加上對2440的支持即可,修改后代碼如下:

#if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410)|| defined(CONFIG_S3C2440)
/* turn off the watchdog */

... ...

# if defined(CONFIG_S3C2410)
ldr r1, =0x3ff
ldr r0, =INTSUBMSK
str r1, [r0]
# endif

# if defined(CONFIG_S3C2440)//添加s3c2440的中斷禁止部分
ldr r1, =0x7fff //根據(jù)2440芯片手冊,INTSUBMSK寄存器有15位可用
ldr r0, =INTSUBMSK
str r1, [r0]
# endif

# if defined(CONFIG_S3C2440) //添加s3c2440的時鐘部分
#define MPLLCON 0x4C000004 //系統(tǒng)主頻配置寄存器基地址
#define UPLLCON 0x4C000008 //USB時鐘頻率配置寄存器基地址
ldr r0, =CLKDIVN //設置分頻系數(shù)FCLK:HCLK:PCLK = 1:4:8
mov r1, #5
str r1, [r0]
ldr r0, =MPLLCON //設置系統(tǒng)主頻為405MHz
ldr r1, =0x7F021 //這個值參考芯片手冊“PLL VALUE SELECTION TABLE”部分
str r1, [r0]
ldr r0, =UPLLCON //設置USB時鐘頻率為48MHz
ldr r1, =0x38022 //這個值參考芯片手冊“PLL VALUE SELECTION TABLE”部分
str r1, [r0]
# else //其他開發(fā)板的時鐘部分
/* FCLK:HCLK:PCLK = 1:2:4 */
/* default FCLK is 202.8 MHz ! */
ldr r0, =CLKDIVN
mov r1, #3
str r1, [r0]

ldr r0, =MPLLCON //設置系統(tǒng)主頻為202.8MHz
ldr r1, =0xa1031 //這個值參考芯片手冊“PLL VALUE SELECTION TABLE”部分
str r1, [r0]

#endif /* CONFIG_S3C2400 || CONFIG_S3C2410|| CONFIG_S3C2440*/

【2】S3C2440的時鐘部分除了在start.S中添加外,還要分別在board/samsung/mini2440/mini2440.c和cpu/arm920t/s3c24x0/speed.c中修改或添加部分代碼。

(1)用gedit打開board/samsung/mini2440/mini2440.c,定位到33行,修改或添加如下內容:

//設置主頻和USB時鐘頻率參數(shù)與start.S中的一致

#define FCLK_SPEED2 //設置默認等于2

#if FCLK_SPEED==0 /* Fout = 203MHz, Fin = 12MHz for Audio */
#define M_MDIV 0xC3
#define M_PDIV 0x4
#define M_SDIV 0x1
#elif FCLK_SPEED==1 /* Fout = 202.8MHz */
#define M_MDIV 0xA1
#define M_PDIV 0x3
#define M_SDIV 0x1
#elif FCLK_SPEED==2 /* Fout = 405MHz */
#define M_MDIV 0x7F //這三個值根據(jù)S3C2440芯片手冊“PLL VALUE SELECTION TABLE”部分進行設置
#define M_PDIV 0x2
#define M_SDIV 0x1
#endif

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

加利福尼亞庫爾弗城2024年7月16日 /美通社/ --?Snail, Inc. (納斯達克股票代碼: SNAL) (以下簡稱"蝸牛游戲"或"公司")是一家領先的全球獨立開發(fā)商和發(fā)行商,專注于互動數(shù)字娛樂,今日宣布方舟:...

關鍵字: iOS 安卓系統(tǒng) 移植 移動平臺

上海2023年2月16日 /美通社/ -- 近日,諾華中國宣布與中國紅十字基金會正式啟動"中國地中海貧血救助項目"廣西地區(qū)專項援助,將在當?shù)囟ㄏ蛸Y助困難家庭地中海貧血患兒,同時通過相關醫(yī)生培...

關鍵字: BSP 控制 移植 大眾

北京2022年12月7日 /美通社/ -- 2022年12月3日,由高博醫(yī)學(血液?。V東研究中心南方春富(兒童)血液病研究院、南方醫(yī)科大學南方醫(yī)院共同主辦的高博醫(yī)學論壇·華南造血干細胞移植論壇通過線下線上...

關鍵字: 移植 HD PID 血細胞

捐款近4000萬 上海2022年12月7日 /美通社/ -- 2022年12月7日下午,中芯國際"芯肝寶貝計劃"十年紀念暨2022年度捐贈儀式在上海仁濟醫(yī)院舉行。十年來,該項目捐贈善款總額近4000...

關鍵字: 中芯國際 移植

北京2022年11月14日 /美通社/ -- 2022年10月,高博醫(yī)學(血液病)北京研究中心北京高博博仁醫(yī)院造血干細胞移植科迎來了五周歲"生日"。在吳彤主任帶領下,移植科于2017年從無到有,歷經(jīng)五...

關鍵字: 移植 OS MT CD

上海2022年11月6日 /美通社/ -- 在第五屆中國國際進口博覽會期間,武田制藥攜5款創(chuàng)新產品亮相武田罕見遺傳與血液疾病領域專場發(fā)布會。用于移植后抗巨細胞病毒(CMV)感染或疾病治療[1]的馬立巴韋[2]迎來&quo...

關鍵字: 移植 BSP CD FDA

亙喜生物科技集團宣布正在中國開展的、旨在全面評估GC007g治療復發(fā)/難治性急性B淋巴細胞白血病效果的1/2期注冊性臨床試驗順利進入2期研究階段,首例入組患者已給藥。GC007g是亙喜生物旗下的一款靶向CD19的供者來源...

關鍵字: 移植 CD

北京2022年9月9日 /美通社/ -- 諾誠健華(香港聯(lián)交所代碼:09969)今天宣布,tafasitamab (Minjuvi®)聯(lián)合來那度胺治療不適合自體干細胞移植 (ASCT) 條件的復發(fā)/難治彌漫性大B...

關鍵字: VI NJU BSP 移植

蘇州2022年8月19日 /美通社/ -- 近日,華中科技大學同濟醫(yī)學院附屬協(xié)和醫(yī)院心外科董念國教授團隊運用與心擎醫(yī)療聯(lián)合研發(fā)的短中期體外全磁懸浮心室輔助裝置MoyoAssist®,成功救治三例危重的終...

關鍵字: 磁懸浮 移植 IC 靜脈

上海2022年8月17日 /美通社/ -- 2022年8月16日,聚焦于基因和細胞治療的上海邦耀生物科技有限公司(以下簡稱"邦耀生物")宣布,其...

關鍵字: CD 移植 BSP ISP
關閉