日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

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

移植環(huán)境

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

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

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

4,開(kāi)發(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

u-boot-2009.08版本已經(jīng)對(duì)CS8900、RTL8019和DM9000X等網(wǎng)卡有比較完善的代碼支持(代碼在drivers/net/目錄下),而且在S3C24XX系列中默認(rèn)對(duì)CS8900網(wǎng)卡進(jìn)行配置使用。而mini2440開(kāi)發(fā)板使用的則是DM9000網(wǎng)卡芯片,所以只需在開(kāi)發(fā)板上添加對(duì)DM9000的支持即可。還有一點(diǎn),以前的 U-boot 對(duì)于網(wǎng)絡(luò)延時(shí)部分有問(wèn)題,需要修改許多地方。但是現(xiàn)在的U-boot 網(wǎng)絡(luò)
部分已經(jīng)基本不需要怎么修改了,只有在DM9000 的驅(qū)動(dòng)和NFS 的TIMEOUT 參數(shù)上需要稍微修改一下。

4.1,DM9000驅(qū)動(dòng)代碼修改

【1】修改static int dm9000_init函數(shù)中部分代碼,如果不修改這一部分,在使用網(wǎng)卡的時(shí)候會(huì)報(bào)“could not establish link”的錯(cuò)誤。

打開(kāi)/drivers/net/dm9000x.c,定位到377行,修改如下:

/* Activate DM9000 */
/* RX enable */
DM9000_iow(DM9000_RCR, RCR_DIS_LONG | RCR_DIS_CRC | RCR_RXEN);
/* Enable TX/RX interrupt mask */
DM9000_iow(DM9000_IMR, IMR_PAR);

#if 0 //default to link MII interface
i = 0;
while (!(phy_read(1) & 0x20)) {/* autonegation complete bit */
udelay(1000);
i++;
if (i == 1650) {
//printf("could not establish linkn");
//return 0;
break;
}
}
#endif

【2】對(duì)于NFS,增加了延時(shí),否則會(huì)出現(xiàn)“*** ERROR: Cannot mount”的錯(cuò)誤。

打開(kāi)/net/nfs.c,定位到36行,修改如下:

#if defined(CONFIG_CMD_NET) && defined(CONFIG_CMD_NFS)

#define HASHES_PER_LINE 65/* Number of "loading" hashes per line*/
#define NFS_RETRY_COUNT 30
#define NFS_TIMEOUT (CONFIG_SYS_HZ/1000*2000UL) //2000UL

【3】添加網(wǎng)卡芯片(DM9000)的初始化函數(shù)

打開(kāi)board/samsung/mini2440/mini2440.c,定位到194行附近,文件末尾處,修改如下:

int dram_init (void)
{
gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;

return 0;
}

extern int dm9000_initialize(bd_t *bis);//implicit declaration of function 'dm9000_initialize'
#ifdef CONFIG_DRIVER_DM9000
int board_eth_init(bd_t *bis)
{
return dm9000_initialize(bis);
}
#endif

【4】添加串口 Xmodem 傳輸協(xié)議(可不修改)

對(duì)于使用串口傳輸數(shù)據(jù)到內(nèi)存的操作,有可能會(huì)用到Xmodem協(xié)議。但是原本的kermit協(xié)議傳輸就挺好用的,速度也比較快,所以可添加此功能。

打開(kāi)/common/cmd_load.c,定位到37行,修改如下:

#if defined(CONFIG_CMD_LOADB)
#if defined(ENABLE_CMD_LOADB_X)
static ulong load_serial_xmodem (ulong offset);
#endif
static ulong load_serial_ymodem (ulong offset);
#endif

然后再定位到480行附近,修改如下:

if (load_baudrate != current_baudrate) {
printf ("## Switch baudrate to %d bps and press ENTER ...n",
load_baudrate);
udelay(50000);
gd->baudrate = load_baudrate;
serial_setbrg ();
udelay(50000);
for (;;) {
if (getc() == 'r')
break;
}
}
#if defined(ENABLE_CMD_LOADB_X)
if (strcmp(argv[0],"loadx")==0) {
printf ("## Ready for binary (xmodem) download "
"to 0x%08lX at %d bps...n",
offset,
load_baudrate);

addr = load_serial_xmodem (offset);

} else if (strcmp(argv[0],"loady")==0) {
#else
if (strcmp(argv[0],"loady")==0) {
#endif
printf ("## Ready for binary (ymodem) download "
"to 0x%08lX at %d bps...n",
offset,
load_baudrate);

addr = load_serial_ymodem (offset);

再定位到998行附近,修改如下:

static int getcxmodem(void) {
if (tstc())
return (getc());
return -1;
}
#if defined(ENABLE_CMD_LOADB_X)
static ulong load_serial_xmodem (ulong offset)
{
int size;
char buf[32];
int err;
int res;
connection_info_t info;
char xmodemBuf[1024];
ulong store_addr = ~0;
ulong addr = 0;

size = 0;
info.mode = xyzModem_xmodem;
res = xyzModem_stream_open (&info, &err);
if (!res) {

while ((res =
xyzModem_stream_read (xmodemBuf, 1024, &err)) > 0) {
store_addr = addr + offset;
size += res;
addr += res;
#ifndef CFG_NO_FLASH
if (addr2info (store_addr)) {
int rc;

rc = flash_write ((char *) xmodemBuf,
store_addr, res);
if (rc != 0) {
flash_perror (rc);
return (~0);
}
} else
#endif
{
memcpy ((char *) (store_addr), xmodemBuf,
res);
}

}
} else {
printf ("%sn", xyzModem_error (err));
}

xyzModem_stream_close (&err);
xyzModem_stream_terminate (false, &getcxmodem);


flush_cache (offset, size);

printf ("## Total Size = 0x%08x = %d Bytesn", size, size);
sprintf (buf, "%X", size);
setenv ("filesize", buf);

return offset;
}
#endif
static ulong load_serial_ymodem (ulong offset)

再定位到1169行,修改如下:

#if defined(CONFIG_CMD_LOADB)
U_BOOT_CMD(
loadb, 3, 0,do_load_serial_bin,
"load binary file over serial line (kermit mode)",
"[ off ] [ baud ]n"
" - load binary file over serial line"
" with offset 'off' and baudrate 'baud'"
);
#if defined(ENABLE_CMD_LOADB_X)
U_BOOT_CMD(
loadx, 3, 0, do_load_serial_bin,
"load binary file over serial line (xmodem mode)",
"[ off ] [ baud ]n"
" - load binary file over serial line"
" with offset 'off' and baudrate 'baud'"
);
#endif

U_BOOT_CMD(
loady, 3, 0,do_load_serial_bin,
"load binary file over serial line (ymodem mode)",
"[ off ] [ baud ]n"
" - load binary file over serial line"
" with offset 'off' and baudrate 'baud'"
);

【5】修改配置文件,在mini2440.h中加入相關(guān)定義

打開(kāi)/include/configs/mini2440.h,定位到60行附近,修改如下:

/*
* Hardware drivers
*/
#if 0
#define CONFIG_DRIVER_CS89001/* we have a CS8900 on-board */
#define CS8900_BASE0x19000300
#define CS8900_BUS161 /* the Linux driver does accesses as shorts */
#endif
#define CONFIG_NET_MULTI1
#define CONFIG_DRIVER_DM9000 1
#define CONFIG_DM9000_BASE 0x20000300 //網(wǎng)卡片選地址
#define DM9000_IO CONFIG_DM9000_BASE
#define DM9000_DATA (CONFIG_DM9000_BASE+4) //網(wǎng)卡數(shù)據(jù)地址
#define CONFIG_DM9000_NO_SROM1
//#define CONFIG_DM9000_USE_16BIT
#undef CONFIG_DM9000_DEBUG

注意:
u-boot-2009.08 可以自動(dòng)檢測(cè)DM9000網(wǎng)卡的位數(shù),根據(jù)開(kāi)發(fā)板原理圖可知網(wǎng)卡的數(shù)據(jù)位為16位,并且網(wǎng)卡位
于CPU的BANK4上,所以只需在 board/samsung/mini2440/lowlevel_init.S中設(shè)置 #define B4_BWSCON (DW16) 即
可,不需要此處的 #define CONFIG_DM9000_USE_16BIT 1

給u-boot加上ping命令,用來(lái)測(cè)試網(wǎng)絡(luò)通不通

/*
* Command line configuration.
*/
#include

#define CONFIG_CMD_CACHE
#define CONFIG_CMD_DATE
#define CONFIG_CMD_ELF
#define CONFIG_CMD_NAND
#define CONFIG_CMD_JFFS2 /* JFFS2 Support*/
#define CONFIG_CMD_PING /*ping command support*/

恢復(fù)被注釋掉的網(wǎng)卡MAC地址和修改你合適的開(kāi)發(fā)板IP地址以及內(nèi)核啟動(dòng)參數(shù):

#define CONFIG_BOOTDELAY3
#define CONFIG_ETHADDR08:00:3e:26:0a:5b
#define CONFIG_NETMASK 255.255.255.0
#define CONFIG_IPADDR10.1.0.129
#define CONFIG_SERVERIP10.1.0.128
#define CONFIG_GATEWAYIP10.1.0.1
#define CONFIG_OVERWRITE_ETHADDR_ONCE
/*#define CONFIG_BOOTFILE"elinos-lart" */

定位到139行附近,加入使能串口傳輸數(shù)據(jù)到內(nèi)存的操作:

#define ENABLE_CMD_LOADB_X1 //使能串口傳輸數(shù)據(jù)到內(nèi)存的操作

#if defined(CONFIG_CMD_KGDB)
#define CONFIG_KGDB_BAUDRATE115200/* speed to run kgdb serial port */
/* what's this ? it's not used anywhere */
#define CONFIG_KGDB_SER_INDEX1/* which serial port to use */
#endif

【6】為u-boot增加命令自動(dòng)補(bǔ)全和歷史記錄功能

此功能如同shell里面自動(dòng)補(bǔ)全和歷史記錄功能,用起來(lái)非常方便。

打開(kāi)/include/configs/mini2440.h,定位到109附近,加入宏定義:

#define CONFIG_CMD_ASKENV
#define CONFIG_CMD_CACHE
#define CONFIG_CMD_DATE
#define CONFIG_CMD_ELF
#define CONFIG_AUTO_COMPLETE /*command auto complete*/
#define CONFIG_CMDLINE_EDITING /*command history record*/
#define CONFIG_CMD_NAND
#define CONFIG_CMD_JFFS2 /* JFFS2 Support*/
#define CONFIG_CMD_PING /*ping command support*/

4.2,重新編譯u-boot,下載到Nand中從Nand啟動(dòng),查看啟動(dòng)信息和環(huán)境變量并使用ping命令測(cè)試網(wǎng)卡,操作如下:

Enter your selection: a
USB host is connected. Waiting a download.

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

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

關(guān)鍵字: iOS 安卓系統(tǒng) 移植 移動(dòng)平臺(tái)

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

關(guān)鍵字: BSP 控制 移植 大眾

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

關(guān)鍵字: 移植 HD PID 血細(xì)胞

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

關(guān)鍵字: 中芯國(guó)際 移植

北京2022年11月14日 /美通社/ -- 2022年10月,高博醫(yī)學(xué)(血液?。┍本┭芯恐行谋本└卟┎┤梳t(yī)院造血干細(xì)胞移植科迎來(lái)了五周歲"生日"。在吳彤主任帶領(lǐng)下,移植科于2017年從無(wú)到有,歷經(jīng)五...

關(guān)鍵字: 移植 OS MT CD

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

關(guān)鍵字: 移植 BSP CD FDA

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

關(guān)鍵字: 移植 CD

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

關(guān)鍵字: VI NJU BSP 移植

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

關(guān)鍵字: 磁懸浮 移植 IC 靜脈

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

關(guān)鍵字: CD 移植 BSP ISP
關(guān)閉