• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Linux的USB集成下載工具的設(shè)計(jì)和實(shí)現(xiàn)

    2014-12-13 18:38:18聶濤
    現(xiàn)代電子技術(shù) 2014年23期

    聶濤

    摘 ?要: 針對(duì)嵌入式軟件開(kāi)發(fā)采用交叉開(kāi)發(fā)模型,需要頻繁把程序從宿主機(jī)下載到目標(biāo)機(jī)的要求,研究設(shè)計(jì)基于Linux的USB集成下載工具。根據(jù)USB協(xié)議,開(kāi)發(fā)Linux系統(tǒng)的USB驅(qū)動(dòng)模塊,基于USB驅(qū)動(dòng)模塊,設(shè)計(jì)出Linux文件下載程序。該工具運(yùn)行于Linux系統(tǒng),并利用TQ2440,OK6410,TQ210開(kāi)發(fā)板進(jìn)行測(cè)試。測(cè)試結(jié)果表明,該工具可以支持2440系列、6410系列、210系列的ARM開(kāi)發(fā)板,并具有很好的擴(kuò)展性和移植性。

    關(guān)鍵詞: USB驅(qū)動(dòng); 下載工具; Linux; ARM

    中圖分類(lèi)號(hào): TN915?34;TP311.1 ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A ? ? ? ? ? ? ? ? ? ?文章編號(hào): 1004?373X(2014)23?0087?04

    Design and implementation of USB download tool based on Linux

    NIE Tao

    (School of Physical Electronics, University of Electronic Science and Technology of China, Chengdu 610054, China )

    Abstract : The development of embedded system needs frequent software download and update, so the USB integrated download tool based on the Linux is designed. The USB driver module of Linux system was developed based on the USB protocol, and then the download process for Linux files was designed based on the USB driver module. The tool was tested on TQ2440, OK6410 and TQ210 embedded development platforms. The test results show that it can support the embedded development platforms of 2440 series, 6410 series and 210 series. It has perfect expansibility and portability.

    Keywords: USB driver; download tool; Linux; ARM

    0 ?引 ?言

    隨著數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)不斷的發(fā)展,嵌入式系統(tǒng)以體積小、功耗低、可靠性高、性能強(qiáng)以及基于面向具體行業(yè)應(yīng)用等突出特點(diǎn), 目前已經(jīng)廣泛地滲透到國(guó)防、農(nóng)業(yè)、消費(fèi)電子、教育、信息家電、工業(yè)控制、網(wǎng)絡(luò)通信等各個(gè)領(lǐng)域,對(duì)于各行各業(yè)的產(chǎn)品升級(jí)、技術(shù)提升、生產(chǎn)效率提高等方面都起到了非常重要的推動(dòng)作用[1]。目前,嵌入式處理器的類(lèi)型主要有ARM、MIPS、SC?400、PowerPC等系列產(chǎn)品。其中,采用ARM核的嵌入式處理器已廣泛應(yīng)用于消費(fèi)類(lèi)電子產(chǎn)品、工業(yè)控制、網(wǎng)絡(luò)通信系統(tǒng)以及無(wú)線系統(tǒng)的各個(gè)領(lǐng)域。ARM核嵌入式處理器約占嵌入式處理器75%以上的市場(chǎng)份額,對(duì)于ARM芯片的嵌入式系統(tǒng)開(kāi)發(fā)一般采取交叉開(kāi)發(fā)模型。所謂交叉開(kāi)發(fā)模型就是在嵌入式開(kāi)發(fā)過(guò)程中有宿主機(jī)和目標(biāo)機(jī)的角色之分,宿主機(jī)是編寫(xiě)、編譯、鏈接嵌入式軟件的計(jì)算機(jī),目標(biāo)機(jī)則是運(yùn)行嵌入式軟件的硬件平臺(tái)。嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程中,需要頻繁的從宿主機(jī)上下載程序來(lái)更新目標(biāo)機(jī)的程序,因此需要簡(jiǎn)單、高效、方便的下載方式。這樣不僅能提高嵌入式系統(tǒng)的開(kāi)發(fā)效率,而且還可以縮短嵌入式產(chǎn)品的上市時(shí)間。

    當(dāng)前嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程中下載程序的方式有很多不足和缺點(diǎn),尤其下載軟件不能同時(shí)支持幾個(gè)系列ARM處理器的開(kāi)發(fā)板,并且下載軟件十分不穩(wěn)定,非常依賴(lài)于下載軟件的特定運(yùn)行環(huán)境,嚴(yán)重影響了嵌入式系統(tǒng)的開(kāi)發(fā)效率,因此需要開(kāi)發(fā)一款新的下載軟件,來(lái)適應(yīng)嵌入式系統(tǒng)開(kāi)發(fā)的需要。本文在研究分析 USB 接口協(xié)議與 Linux系統(tǒng)驅(qū)動(dòng)的基礎(chǔ)上,開(kāi)發(fā)設(shè)計(jì)了一款基于USB接口的嵌入式集成下載工具。該工具可以穩(wěn)定運(yùn)行于Linux系統(tǒng)上,并且同時(shí)支持ARM9處理器2440系列開(kāi)發(fā)板、ARM11處理器6410系列開(kāi)發(fā)板、ARM Cortex?A8處理器210系列開(kāi)發(fā)板,能夠勝任不同階段的下載任務(wù),而且軟件具有很好的穩(wěn)定性、可移植性和擴(kuò)展性[2?5]。

    1 ?USB驅(qū)動(dòng)設(shè)計(jì)

    Linux操作系統(tǒng)把設(shè)備看作成文件來(lái)處理,這類(lèi)文件稱(chēng)作設(shè)備文件,存放在Linux的dev目錄下, Linux系統(tǒng)通過(guò)對(duì)這些設(shè)備文件的操作來(lái)控制硬件設(shè)備[6]。同樣,USB驅(qū)動(dòng)程序也會(huì)為USB設(shè)備創(chuàng)建設(shè)備文件。USB驅(qū)動(dòng)程序是USB芯片和Linux系統(tǒng)內(nèi)核之間的接口,為應(yīng)用程序屏蔽了USB硬件設(shè)備的細(xì)節(jié),應(yīng)用程序可以通過(guò)USB設(shè)備文件的操作來(lái)實(shí)現(xiàn)對(duì)USB設(shè)備的控制與數(shù)據(jù)的讀/寫(xiě)。USB驅(qū)動(dòng)程序設(shè)計(jì)主要分為兩個(gè)模塊,分別為USB設(shè)備注冊(cè)和USB設(shè)備注銷(xiāo)。USB設(shè)備驅(qū)動(dòng)程序在注冊(cè)和銷(xiāo)毀時(shí)侯需要用到一個(gè)結(jié)構(gòu)體struct usb_driver。這個(gè)結(jié)構(gòu)體需要在驅(qū)動(dòng)程序中完成編寫(xiě),包括許多變量和回調(diào)函數(shù),它向USB核心代碼描述了USB驅(qū)動(dòng)程序的功能。

    static struct usb_driver secbulk_driver= {

    .name= "secbulk", ?//驅(qū)動(dòng)程序的名字

    .probe= secbulk_probe, //探測(cè)函數(shù)

    .disconnect= secbulk_disconnect, ?//斷開(kāi)函數(shù)

    .id_table= secbulk_table, ?//驅(qū)動(dòng)程序所支持的設(shè)備列表

    .supports_autosuspend=0,

    };

    調(diào)用以struct usb_driver結(jié)構(gòu)體指針作為參數(shù)的usb_register_driver函數(shù),將struct usb_driver結(jié)構(gòu)體指針注冊(cè)到 USB核心。USB驅(qū)動(dòng)程序的注冊(cè)代碼如下:

    static int __init secbulk_init(void)

    {

    int result;

    printk(KERN_INFO "secbulk:secbulk loaded\n");

    /*把該驅(qū)動(dòng)程序注冊(cè)到USB子系統(tǒng)*/

    result = usb_register(&;secbulk_driver);

    if (result)

    printk(KERN_ERR "secbulk:usb_register failed: %d",result);

    return result;

    }

    USB驅(qū)動(dòng)程序卸載時(shí),調(diào)用usb_deregister_driver函數(shù)將struct usb_driver結(jié)構(gòu)體從內(nèi)核中注銷(xiāo)。執(zhí)行該函數(shù)時(shí),調(diào)用斷開(kāi)函數(shù)把當(dāng)前綁定到該USB驅(qū)動(dòng)程序上的所有USB接口都斷開(kāi)。USB驅(qū)動(dòng)程序的注銷(xiāo)代碼如下:

    static void __exit secbulk_exit(void)

    {

    /*把驅(qū)動(dòng)程序從USB子系統(tǒng)注銷(xiāo)*/

    usb_deregister(&;secbulk_driver);

    printk(KERN_INFO"secbulk:secbulk unloaded\n");

    }

    1.1 ?驅(qū)動(dòng)程序支持的設(shè)備列表

    struct usb_device_id *id_table是指向struct usb_device_id表的結(jié)構(gòu)體指針,該表包含了該USB設(shè)備驅(qū)動(dòng)支持的所有不同類(lèi)型的USB設(shè)備。增加對(duì)USB設(shè)備的支持,需要在該表中添加USB設(shè)備制造商ID和產(chǎn)品ID。因此在secbulk_table表中添加2440系列開(kāi)發(fā)板、6410系列開(kāi)發(fā)板、210系列開(kāi)發(fā)板的USB設(shè)備制造商和產(chǎn)品的ID:

    static struct usb_device_id secbulk_table[]=

    {

    { USB_DEVICE(0x5345, 0x1234)}, //2440系列

    { USB_DEVICE(0x04e8, 0x1234)}, //6410系列

    { USB_DEVICE(0x18d1, 0x1234)}, //210系列

    };

    1.2 ?探測(cè)函數(shù)

    int(*probe)(struct usb_interface * intf, const struct usb_device_id *id )是USB驅(qū)動(dòng)程序中的探測(cè)函數(shù)的指針。當(dāng)一個(gè)USB設(shè)備被安裝并且USB核心認(rèn)定該USB驅(qū)動(dòng)程序應(yīng)該處理時(shí),探測(cè)函數(shù)才會(huì)被調(diào)用。探測(cè)函數(shù)需要檢查傳遞給它的USB設(shè)備信息,然后確定驅(qū)動(dòng)程序是否適合該設(shè)備[7]。當(dāng)驅(qū)動(dòng)程序確定適合設(shè)備時(shí),探測(cè)函數(shù)會(huì)調(diào)用usb_register_dev函數(shù)來(lái)把USB設(shè)備注冊(cè)到USB核心。usb_register_dev函數(shù)有struct usb_interfac指針和struct usb_class_driver結(jié)構(gòu)的指針兩個(gè)參數(shù)。struct usb_class_driver結(jié)構(gòu)體包含描述設(shè)備的名稱(chēng)、指派次設(shè)備號(hào)的開(kāi)始值和設(shè)備相關(guān)操作的結(jié)構(gòu)體的指針等成員變量。以下是probe函數(shù)下的探測(cè)部分代碼:

    for(i=0; i <; iface_desc?>;desc.bNumEndpoints; i++)

    {

    endpoint=&;(iface_desc->;endpoint[i].desc);

    if(!dev->;bulk_out_endpointAddr&;&;usb_endpoint_is_bulk_out(endpoint))

    {

    /*該驅(qū)動(dòng)不支持此設(shè)備*/

    printk(KERN_INFO"secbulk:bulkout endpoint found?。躰");

    dev->;bulk_out_endpointAddr=endpoint->;bEndpointAddress;

    break;

    }

    }if(?。╠ev->;bulk_out_endpointAddr))

    {

    ret = -EBUSY; goto error;

    }

    /*注冊(cè)設(shè)備*/

    ret=usb_register_dev(interface,&;secbulk_class);

    if(ret)

    {

    /*某些情況造成我們不能注冊(cè)該驅(qū)動(dòng)程序*/

    printk(KERN_ERR"secbulk: usb_register_dev failed?。躰");

    return ret;

    }

    struct usb_class_driver結(jié)構(gòu)體的初始化代碼如下:

    static struct usb_class_driver secbulk_class = {

    .name = "secbulk%d", ?//設(shè)備名字

    .fops = &;secbulk_fops, ?//設(shè)備相關(guān)操作結(jié)構(gòu)體指針

    .minor_base= 100, ? //此設(shè)備號(hào)開(kāi)始值

    };

    static struct file_operations結(jié)構(gòu)體的初始化代碼如下:

    static struct file_operations secbulk_fops = {.owner = THIS_MODULE,

    .read = secbulk_read, ?//讀操作

    .write = secbulk_write, ?//寫(xiě)操作

    .open = secbulk_open, ?//打開(kāi)

    .release= secbulk_release, ?//釋放

    };

    1.3 ?斷開(kāi)函數(shù)

    void(*disconnect)(struct usb_interface *intf)是USB驅(qū)動(dòng)程序的斷開(kāi)函數(shù)的函數(shù)指針。當(dāng)struct usb_interface結(jié)構(gòu)體從Linux系統(tǒng)中移除或者USB驅(qū)動(dòng)程序從USB核心中卸載時(shí),USB核心將會(huì)調(diào)用該函數(shù)做相關(guān)的清理工作[8]。secbulk_disconnect斷開(kāi)函數(shù)代碼如下:

    static void secbulk_disconnect(struct usb_interface *interface)

    {

    struct secbulk_dev *dev = NULL;

    printk(KERN_INFO"secbulk:secbulk disconnected?。躰");

    /*防止競(jìng)爭(zhēng)*/

    dev = usb_get_intfdata(interface);

    if( NULL != dev )

    kfree(dev);

    /*返回次設(shè)備號(hào)*/

    usb_deregister_dev(interface, &;secbulk_class);

    }

    最后,將USB驅(qū)動(dòng)程序編譯成驅(qū)動(dòng)模塊,并加載到Linux系統(tǒng)中。

    2 ?Linux下載程序設(shè)計(jì)

    Linux系統(tǒng)成功加載USB驅(qū)動(dòng)模塊后,會(huì)在Linux系統(tǒng)的dev目錄下生成USB的設(shè)備文件,通過(guò)操作USB的設(shè)備文件可以操作USB設(shè)備[9?10]。所以Linux系統(tǒng)和目標(biāo)機(jī)ARM數(shù)據(jù)傳輸必須通過(guò)USB的設(shè)備文件進(jìn)行,數(shù)據(jù)傳輸過(guò)程如下:首先打開(kāi)USB設(shè)備文件,通過(guò)USB設(shè)備文件把數(shù)據(jù)寫(xiě)入目標(biāo)機(jī)ARM的內(nèi)存中;目標(biāo)機(jī)ARM接收數(shù)據(jù)后,會(huì)產(chǎn)生USB中斷,把數(shù)據(jù)從ARM的內(nèi)存中讀入ARM的NAND FLASH中。根據(jù)Linux系統(tǒng)和目標(biāo)機(jī)ARM數(shù)據(jù)傳輸過(guò)程設(shè)計(jì)Liunx下載程序。Linux下載程序流程圖如圖1所示。

    Linux下載程序核心代碼如下:

    printf("Start Sending data...\n");

    size_tremain_size= file_stat.st_size+10;

    size_t block_size = 512;

    size_t written = 0;

    /*從內(nèi)存中寫(xiě)入ARM內(nèi)存中*/

    while(remain_size >; 0) {

    size_t to_write = remain_size >; block_size ? block_size:remain_size;

    size_t real_write = write(fd_dev, file_buffer+written, to_write);

    if( to_write != real_write) {

    printf(" write ?/dev/secbulk0 failed! ?to_write = %u real_write = %u \n" , to_write ,real_write );

    return 1;

    }

    remain_size -= to_write;

    written += to_write;

    printf("\rSent %lu%% \t %u bytes !", written*100/(file_stat.st_size+10), ?written);

    fflush(stdout);

    }

    最后,利用GCC編譯器把Linux下載程序編譯成下載軟件。運(yùn)行Linux下載軟件,傳遞文件名并指定下載內(nèi)存地址的參數(shù)就可以把文件寫(xiě)入ARM目標(biāo)機(jī)的NAND FLASH中。

    <;E:\2014年23期\2014年23期\Image\19t1.tif>;

    圖1 Linux下載程序流程圖

    3 ?測(cè)試結(jié)果

    測(cè)試軟件的功能,需要利用硬件平臺(tái)。本文中Linux系統(tǒng)選用Redhat企業(yè)版6,嵌入式開(kāi)發(fā)平臺(tái)為2440系列的TQ2440、6410系列的OK6410、210系列的TQ210分別進(jìn)行測(cè)試。測(cè)試方法是將LED點(diǎn)燈程序通過(guò)Linux下載軟件下載到ARM開(kāi)發(fā)板的NAND FLASH中,下載完成后,將ARM開(kāi)發(fā)板撥到NAND FLASH啟動(dòng);如果ARM開(kāi)發(fā)板中的LED點(diǎn)亮,說(shuō)明USB驅(qū)動(dòng)程序和Linux下載程序是可行的。

    TQ2440測(cè)試結(jié)果如圖2所示;OK6410測(cè)試結(jié)果如圖3所示;TQ210測(cè)試結(jié)果如圖4所示。

    <;E:\2014年23期\2014年23期\Image\19t2.tif>;

    圖2 TQ2440測(cè)試結(jié)果

    <;E:\2014年23期\2014年23期\Image\19t3.tif>;

    圖3 OK6410測(cè)試結(jié)果

    <;E:\2014年23期\2014年23期\Image\19t4.tif>;

    圖4 TQ210測(cè)試結(jié)果

    4 ?結(jié) ?語(yǔ)

    本文針對(duì)嵌入式系統(tǒng)交叉開(kāi)發(fā)模型中,需要頻繁從linux宿主機(jī)中下載程序到目標(biāo)機(jī)ARM更新程序的問(wèn)題,開(kāi)發(fā)和設(shè)計(jì)了一款基于USB的Liunx下載軟件。軟件解決了每個(gè)系列ARM開(kāi)發(fā)板單獨(dú)需要一款下載軟件的問(wèn)題,成功地實(shí)現(xiàn)了一款支持不同系列ARM開(kāi)發(fā)板的USB的Linux下載軟件。軟件特點(diǎn)是穩(wěn)定運(yùn)行于各個(gè)版本Linux系統(tǒng)之上,并且支持ARM9處理器2440系列開(kāi)發(fā)板、ARM11處理器6410系列開(kāi)發(fā)板、ARM Cortex?A8處理器210系列開(kāi)發(fā)板,實(shí)現(xiàn)下載功能。

    參考文獻(xiàn)

    [1] 王曉惠.基于ARM?Linux的交叉編譯環(huán)境的創(chuàng)建[J].電腦知識(shí)與技術(shù),2007(15):55?58.

    [2] 姚振國(guó).基于嵌入式Linux的USB集成下載工具的設(shè)計(jì)與開(kāi)發(fā)[D].成都:電子科技大學(xué),2013.

    [3] 王瓊.基于嵌入式Linux數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2013.

    [4] 彭敏.基于ARM7的工業(yè)控制數(shù)據(jù)采集系統(tǒng)的研究[J].現(xiàn)代電子技術(shù),2011,34(2):12?14.

    [5] 李麗宏,郝志剛.嵌入式Linux的USB驅(qū)動(dòng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2011(10):56?59.

    [6] 寧玉玲,陳瓊,馬楊龍.Linux設(shè)備驅(qū)動(dòng)模型框架的分類(lèi)研究[J].現(xiàn)代電子技術(shù),2013,36(4):5?8.

    [7] 魏永明,耿岳,鐘書(shū)毅.Linux設(shè)備驅(qū)動(dòng)程序[M].3版.北京:中國(guó)電力出版社,2006.

    [8] 宋寶華.Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解[M].2版.北京:人民郵電出版社,2002.

    [9] 韋東山.嵌入式Linux應(yīng)用開(kāi)發(fā)完全手冊(cè)[M].北京:人民郵電大學(xué)出版社,2008.

    [10] 楊水清.ARM嵌入式Linux系統(tǒng)開(kāi)發(fā)技術(shù)詳解[M].北京:電子工業(yè)出版社,2008.

    TQ2440測(cè)試結(jié)果如圖2所示;OK6410測(cè)試結(jié)果如圖3所示;TQ210測(cè)試結(jié)果如圖4所示。

    <;E:\2014年23期\2014年23期\Image\19t2.tif>;

    圖2 TQ2440測(cè)試結(jié)果

    <;E:\2014年23期\2014年23期\Image\19t3.tif>;

    圖3 OK6410測(cè)試結(jié)果

    <;E:\2014年23期\2014年23期\Image\19t4.tif>;

    圖4 TQ210測(cè)試結(jié)果

    4 ?結(jié) ?語(yǔ)

    本文針對(duì)嵌入式系統(tǒng)交叉開(kāi)發(fā)模型中,需要頻繁從linux宿主機(jī)中下載程序到目標(biāo)機(jī)ARM更新程序的問(wèn)題,開(kāi)發(fā)和設(shè)計(jì)了一款基于USB的Liunx下載軟件。軟件解決了每個(gè)系列ARM開(kāi)發(fā)板單獨(dú)需要一款下載軟件的問(wèn)題,成功地實(shí)現(xiàn)了一款支持不同系列ARM開(kāi)發(fā)板的USB的Linux下載軟件。軟件特點(diǎn)是穩(wěn)定運(yùn)行于各個(gè)版本Linux系統(tǒng)之上,并且支持ARM9處理器2440系列開(kāi)發(fā)板、ARM11處理器6410系列開(kāi)發(fā)板、ARM Cortex?A8處理器210系列開(kāi)發(fā)板,實(shí)現(xiàn)下載功能。

    參考文獻(xiàn)

    [1] 王曉惠.基于ARM?Linux的交叉編譯環(huán)境的創(chuàng)建[J].電腦知識(shí)與技術(shù),2007(15):55?58.

    [2] 姚振國(guó).基于嵌入式Linux的USB集成下載工具的設(shè)計(jì)與開(kāi)發(fā)[D].成都:電子科技大學(xué),2013.

    [3] 王瓊.基于嵌入式Linux數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2013.

    [4] 彭敏.基于ARM7的工業(yè)控制數(shù)據(jù)采集系統(tǒng)的研究[J].現(xiàn)代電子技術(shù),2011,34(2):12?14.

    [5] 李麗宏,郝志剛.嵌入式Linux的USB驅(qū)動(dòng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2011(10):56?59.

    [6] 寧玉玲,陳瓊,馬楊龍.Linux設(shè)備驅(qū)動(dòng)模型框架的分類(lèi)研究[J].現(xiàn)代電子技術(shù),2013,36(4):5?8.

    [7] 魏永明,耿岳,鐘書(shū)毅.Linux設(shè)備驅(qū)動(dòng)程序[M].3版.北京:中國(guó)電力出版社,2006.

    [8] 宋寶華.Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解[M].2版.北京:人民郵電出版社,2002.

    [9] 韋東山.嵌入式Linux應(yīng)用開(kāi)發(fā)完全手冊(cè)[M].北京:人民郵電大學(xué)出版社,2008.

    [10] 楊水清.ARM嵌入式Linux系統(tǒng)開(kāi)發(fā)技術(shù)詳解[M].北京:電子工業(yè)出版社,2008.

    TQ2440測(cè)試結(jié)果如圖2所示;OK6410測(cè)試結(jié)果如圖3所示;TQ210測(cè)試結(jié)果如圖4所示。

    <;E:\2014年23期\2014年23期\Image\19t2.tif>;

    圖2 TQ2440測(cè)試結(jié)果

    <;E:\2014年23期\2014年23期\Image\19t3.tif>;

    圖3 OK6410測(cè)試結(jié)果

    <;E:\2014年23期\2014年23期\Image\19t4.tif>;

    圖4 TQ210測(cè)試結(jié)果

    4 ?結(jié) ?語(yǔ)

    本文針對(duì)嵌入式系統(tǒng)交叉開(kāi)發(fā)模型中,需要頻繁從linux宿主機(jī)中下載程序到目標(biāo)機(jī)ARM更新程序的問(wèn)題,開(kāi)發(fā)和設(shè)計(jì)了一款基于USB的Liunx下載軟件。軟件解決了每個(gè)系列ARM開(kāi)發(fā)板單獨(dú)需要一款下載軟件的問(wèn)題,成功地實(shí)現(xiàn)了一款支持不同系列ARM開(kāi)發(fā)板的USB的Linux下載軟件。軟件特點(diǎn)是穩(wěn)定運(yùn)行于各個(gè)版本Linux系統(tǒng)之上,并且支持ARM9處理器2440系列開(kāi)發(fā)板、ARM11處理器6410系列開(kāi)發(fā)板、ARM Cortex?A8處理器210系列開(kāi)發(fā)板,實(shí)現(xiàn)下載功能。

    參考文獻(xiàn)

    [1] 王曉惠.基于ARM?Linux的交叉編譯環(huán)境的創(chuàng)建[J].電腦知識(shí)與技術(shù),2007(15):55?58.

    [2] 姚振國(guó).基于嵌入式Linux的USB集成下載工具的設(shè)計(jì)與開(kāi)發(fā)[D].成都:電子科技大學(xué),2013.

    [3] 王瓊.基于嵌入式Linux數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2013.

    [4] 彭敏.基于ARM7的工業(yè)控制數(shù)據(jù)采集系統(tǒng)的研究[J].現(xiàn)代電子技術(shù),2011,34(2):12?14.

    [5] 李麗宏,郝志剛.嵌入式Linux的USB驅(qū)動(dòng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2011(10):56?59.

    [6] 寧玉玲,陳瓊,馬楊龍.Linux設(shè)備驅(qū)動(dòng)模型框架的分類(lèi)研究[J].現(xiàn)代電子技術(shù),2013,36(4):5?8.

    [7] 魏永明,耿岳,鐘書(shū)毅.Linux設(shè)備驅(qū)動(dòng)程序[M].3版.北京:中國(guó)電力出版社,2006.

    [8] 宋寶華.Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解[M].2版.北京:人民郵電出版社,2002.

    [9] 韋東山.嵌入式Linux應(yīng)用開(kāi)發(fā)完全手冊(cè)[M].北京:人民郵電大學(xué)出版社,2008.

    [10] 楊水清.ARM嵌入式Linux系統(tǒng)開(kāi)發(fā)技術(shù)詳解[M].北京:電子工業(yè)出版社,2008.

    哪个播放器可以免费观看大片| 少妇裸体淫交视频免费看高清| 一本久久中文字幕| 国产日本99.免费观看| 国产日韩欧美在线精品| 三级国产精品欧美在线观看| 美女国产视频在线观看| 亚洲欧美日韩卡通动漫| 亚洲欧美精品综合久久99| 午夜视频国产福利| 在线观看av片永久免费下载| 一边亲一边摸免费视频| 成人无遮挡网站| 老司机影院成人| 自拍偷自拍亚洲精品老妇| 1000部很黄的大片| 99久久精品一区二区三区| 亚洲精品成人久久久久久| 内射极品少妇av片p| 中国美白少妇内射xxxbb| 天堂影院成人在线观看| 亚洲不卡免费看| 如何舔出高潮| 晚上一个人看的免费电影| 啦啦啦啦在线视频资源| 嘟嘟电影网在线观看| 国产精品久久久久久久久免| 久久精品国产99精品国产亚洲性色| 成人二区视频| 简卡轻食公司| 成年免费大片在线观看| 国产午夜精品一二区理论片| 悠悠久久av| 国产成年人精品一区二区| 在线观看午夜福利视频| 久久精品国产亚洲av天美| 看免费成人av毛片| 欧美bdsm另类| 国产精品久久视频播放| 国产av一区在线观看免费| 网址你懂的国产日韩在线| 欧美日韩精品成人综合77777| 欧美一区二区亚洲| 国产精品久久久久久久久免| 人妻制服诱惑在线中文字幕| 国产真实伦视频高清在线观看| 九九热线精品视视频播放| 久久久精品94久久精品| 99久久精品一区二区三区| 亚洲丝袜综合中文字幕| 青春草视频在线免费观看| 免费看光身美女| av.在线天堂| 91aial.com中文字幕在线观看| 色吧在线观看| 久久久久久久午夜电影| 99久久无色码亚洲精品果冻| 国产成人aa在线观看| 亚洲人成网站高清观看| 亚洲,欧美,日韩| 我的老师免费观看完整版| 欧美一区二区精品小视频在线| 一级黄色大片毛片| 中国美白少妇内射xxxbb| 国产伦一二天堂av在线观看| av在线亚洲专区| 少妇熟女aⅴ在线视频| 色综合色国产| 日本-黄色视频高清免费观看| 12—13女人毛片做爰片一| 男女啪啪激烈高潮av片| 少妇被粗大猛烈的视频| 亚洲综合色惰| 听说在线观看完整版免费高清| 好男人视频免费观看在线| 99久久成人亚洲精品观看| 欧美日韩综合久久久久久| 丰满的人妻完整版| 老司机影院成人| av专区在线播放| 中文字幕av成人在线电影| 国国产精品蜜臀av免费| 女人被狂操c到高潮| 人妻制服诱惑在线中文字幕| 99久久精品热视频| 人妻少妇偷人精品九色| 亚洲无线观看免费| 色综合亚洲欧美另类图片| 亚洲欧美清纯卡通| 亚洲精华国产精华液的使用体验 | 青青草视频在线视频观看| 国产69精品久久久久777片| 欧美+日韩+精品| 欧美bdsm另类| 好男人在线观看高清免费视频| 亚洲三级黄色毛片| 欧美+亚洲+日韩+国产| 嫩草影院精品99| 美女高潮的动态| 看免费成人av毛片| 五月玫瑰六月丁香| 久久久国产成人精品二区| 伊人久久精品亚洲午夜| 免费av毛片视频| 亚洲精品国产av成人精品| 精品久久久久久久久久免费视频| 麻豆久久精品国产亚洲av| 一级毛片电影观看 | 女的被弄到高潮叫床怎么办| 国产黄片美女视频| 久久人人爽人人爽人人片va| 狂野欧美白嫩少妇大欣赏| 国产成人一区二区在线| 久久精品夜夜夜夜夜久久蜜豆| 18禁在线无遮挡免费观看视频| 丝袜喷水一区| 国产精品.久久久| 日本与韩国留学比较| 欧美区成人在线视频| 欧美在线一区亚洲| 亚洲av电影不卡..在线观看| 少妇熟女aⅴ在线视频| 美女大奶头视频| 丰满乱子伦码专区| 国产老妇伦熟女老妇高清| 成人亚洲精品av一区二区| 亚洲欧美成人精品一区二区| 成人毛片60女人毛片免费| 97超视频在线观看视频| 欧美色视频一区免费| 国产成人a区在线观看| 在线观看免费视频日本深夜| 99热只有精品国产| 男人的好看免费观看在线视频| 国产久久久一区二区三区| 夫妻性生交免费视频一级片| 亚洲无线观看免费| 免费观看a级毛片全部| 嫩草影院精品99| 在线免费观看不下载黄p国产| 国产精品麻豆人妻色哟哟久久 | 久久中文看片网| 18禁在线播放成人免费| 一本久久中文字幕| 一卡2卡三卡四卡精品乱码亚洲| 青春草视频在线免费观看| 久久久久久久久久久免费av| 久久久午夜欧美精品| 亚洲av.av天堂| а√天堂www在线а√下载| 在线免费观看不下载黄p国产| 乱码一卡2卡4卡精品| 成年版毛片免费区| 免费看a级黄色片| 夜夜爽天天搞| 久久人妻av系列| 九九在线视频观看精品| 久久久成人免费电影| 亚洲欧美日韩卡通动漫| 成熟少妇高潮喷水视频| 日日摸夜夜添夜夜添av毛片| 2022亚洲国产成人精品| 成年女人永久免费观看视频| 最近手机中文字幕大全| 久久久久久久久久久丰满| av福利片在线观看| 少妇被粗大猛烈的视频| 欧美一区二区亚洲| 国产亚洲欧美98| 亚洲国产日韩欧美精品在线观看| 大型黄色视频在线免费观看| eeuss影院久久| 久久久久久大精品| 亚洲四区av| 国产91av在线免费观看| 麻豆一二三区av精品| 你懂的网址亚洲精品在线观看 | 日本与韩国留学比较| 亚州av有码| 免费搜索国产男女视频| 青春草国产在线视频 | 蜜臀久久99精品久久宅男| 97在线视频观看| 99热6这里只有精品| 伦理电影大哥的女人| 国产一区亚洲一区在线观看| 色视频www国产| 亚洲人成网站在线播放欧美日韩| 一级毛片电影观看 | 成人一区二区视频在线观看| 免费观看a级毛片全部| 国产亚洲av嫩草精品影院| kizo精华| 亚洲av成人av| 亚洲国产精品久久男人天堂| 天天躁夜夜躁狠狠久久av| а√天堂www在线а√下载| 亚洲人成网站高清观看| 日韩精品有码人妻一区| 免费在线观看成人毛片| 两个人的视频大全免费| av卡一久久| 欧美变态另类bdsm刘玥| 久久中文看片网| 日本黄色片子视频| 我的老师免费观看完整版| а√天堂www在线а√下载| 国内精品久久久久精免费| 一区二区三区高清视频在线| 国产成人精品婷婷| 毛片一级片免费看久久久久| 九色成人免费人妻av| 色播亚洲综合网| 99热这里只有是精品在线观看| 欧美变态另类bdsm刘玥| 1000部很黄的大片| 波多野结衣高清作品| 亚洲欧美清纯卡通| 校园春色视频在线观看| 人妻制服诱惑在线中文字幕| 亚洲国产高清在线一区二区三| 村上凉子中文字幕在线| a级毛片a级免费在线| 一级av片app| 亚洲中文字幕日韩| 深夜精品福利| 一本久久中文字幕| 国产高清三级在线| 日本黄大片高清| 97在线视频观看| 麻豆精品久久久久久蜜桃| 成人永久免费在线观看视频| 亚洲精品成人久久久久久| 岛国在线免费视频观看| 在线播放国产精品三级| 国产亚洲精品久久久久久毛片| 色综合站精品国产| 嘟嘟电影网在线观看| 老熟妇乱子伦视频在线观看| 97超视频在线观看视频| 国产老妇伦熟女老妇高清| 在线播放无遮挡| 欧美日韩在线观看h| 亚洲高清免费不卡视频| 男女那种视频在线观看| 悠悠久久av| 成人漫画全彩无遮挡| 欧洲精品卡2卡3卡4卡5卡区| 免费无遮挡裸体视频| 中文精品一卡2卡3卡4更新| av女优亚洲男人天堂| 色尼玛亚洲综合影院| 成人高潮视频无遮挡免费网站| 亚洲精品自拍成人| 国产精品日韩av在线免费观看| 日韩一区二区三区影片| 日韩成人伦理影院| 亚洲欧美日韩无卡精品| av在线播放精品| 国产久久久一区二区三区| 你懂的网址亚洲精品在线观看 | 久久中文看片网| h日本视频在线播放| 看非洲黑人一级黄片| 好男人视频免费观看在线| 日本一本二区三区精品| 日韩av不卡免费在线播放| 激情 狠狠 欧美| 精品无人区乱码1区二区| 黄色配什么色好看| 嫩草影院精品99| 欧美一级a爱片免费观看看| 成人国产麻豆网| 亚洲成a人片在线一区二区| 亚洲中文字幕一区二区三区有码在线看| 免费人成视频x8x8入口观看| 中国美白少妇内射xxxbb| 国产成人精品婷婷| 国产精品麻豆人妻色哟哟久久 | 中文欧美无线码| 日韩亚洲欧美综合| 天堂中文最新版在线下载 | 国产伦在线观看视频一区| 国产成人精品婷婷| 天堂网av新在线| 久久婷婷人人爽人人干人人爱| 免费看av在线观看网站| 日韩一本色道免费dvd| 一级毛片我不卡| 天天一区二区日本电影三级| 综合色av麻豆| 国产色婷婷99| 亚洲一级一片aⅴ在线观看| 人妻久久中文字幕网| 亚洲精品亚洲一区二区| 国产美女午夜福利| 国内精品美女久久久久久| 美女内射精品一级片tv| 成人午夜精彩视频在线观看| 日韩精品有码人妻一区| 综合色丁香网| 啦啦啦啦在线视频资源| 三级经典国产精品| 久久精品国产清高在天天线| 久久九九热精品免费| 亚洲av中文字字幕乱码综合| av免费观看日本| 久久韩国三级中文字幕| 免费一级毛片在线播放高清视频| 男人舔女人下体高潮全视频| 免费搜索国产男女视频| 校园春色视频在线观看| 欧美日韩综合久久久久久| 欧美精品国产亚洲| 国产精品av视频在线免费观看| 一边摸一边抽搐一进一小说| 99热精品在线国产| 自拍偷自拍亚洲精品老妇| 欧美成人a在线观看| 国产探花在线观看一区二区| 国产一区二区三区av在线 | 伊人久久精品亚洲午夜| 日韩欧美一区二区三区在线观看| 麻豆精品久久久久久蜜桃| 天天躁夜夜躁狠狠久久av| 在现免费观看毛片| 亚洲中文字幕一区二区三区有码在线看| 亚洲精品久久国产高清桃花| 国产午夜精品论理片| 99在线人妻在线中文字幕| 国产精品麻豆人妻色哟哟久久 | 色哟哟·www| 中出人妻视频一区二区| 18禁黄网站禁片免费观看直播| 日本欧美国产在线视频| 午夜福利在线观看免费完整高清在 | 高清毛片免费观看视频网站| 婷婷精品国产亚洲av| 69av精品久久久久久| 国产成人一区二区在线| 日本av手机在线免费观看| 国产伦一二天堂av在线观看| 一级毛片久久久久久久久女| 中国美白少妇内射xxxbb| 综合色av麻豆| 欧美日韩国产亚洲二区| 国产视频首页在线观看| 中文字幕人妻熟人妻熟丝袜美| 日韩精品青青久久久久久| 亚洲va在线va天堂va国产| 亚洲无线观看免费| 日韩欧美三级三区| 女的被弄到高潮叫床怎么办| 国产精品综合久久久久久久免费| 日本爱情动作片www.在线观看| 最近最新中文字幕大全电影3| 最好的美女福利视频网| 日本欧美国产在线视频| 少妇熟女aⅴ在线视频| 综合色av麻豆| 亚洲人成网站高清观看| 日韩中字成人| 国产中年淑女户外野战色| av福利片在线观看| av在线天堂中文字幕| 观看免费一级毛片| 免费观看a级毛片全部| 国产精品美女特级片免费视频播放器| a级一级毛片免费在线观看| 国产精品不卡视频一区二区| 亚洲av.av天堂| 青春草国产在线视频 | 日韩,欧美,国产一区二区三区 | 国产黄色小视频在线观看| 一级黄片播放器| 亚洲国产高清在线一区二区三| 一区二区三区免费毛片| 亚洲最大成人中文| 欧美一区二区国产精品久久精品| 日本在线视频免费播放| 国产 一区精品| 日韩 亚洲 欧美在线| 黄色配什么色好看| 国产一区二区亚洲精品在线观看| 成人鲁丝片一二三区免费| 九九在线视频观看精品| 一个人免费在线观看电影| 国内精品久久久久精免费| 国产精品久久久久久精品电影| 精品99又大又爽又粗少妇毛片| 国产午夜精品久久久久久一区二区三区| 欧美xxxx性猛交bbbb| 久久精品91蜜桃| 国产精品野战在线观看| 国产精品久久久久久精品电影| 亚洲av不卡在线观看| 日本五十路高清| 亚洲成人久久爱视频| 国产一级毛片七仙女欲春2| 嫩草影院入口| 国产探花极品一区二区| 一级毛片电影观看 | 国产日本99.免费观看| 身体一侧抽搐| 美女内射精品一级片tv| 99久久九九国产精品国产免费| 偷拍熟女少妇极品色| 久久久欧美国产精品| 久久久精品94久久精品| 联通29元200g的流量卡| 美女黄网站色视频| 午夜福利成人在线免费观看| 免费看光身美女| 99在线人妻在线中文字幕| 直男gayav资源| 只有这里有精品99| 久久久色成人| 三级男女做爰猛烈吃奶摸视频| 99国产精品一区二区蜜桃av| 欧美人与善性xxx| 亚洲国产欧美人成| 国产乱人偷精品视频| 草草在线视频免费看| 欧美成人免费av一区二区三区| 亚洲成人精品中文字幕电影| 99热全是精品| 永久网站在线| 最近手机中文字幕大全| 亚洲av二区三区四区| 岛国在线免费视频观看| 亚洲性久久影院| 国产一区二区三区在线臀色熟女| 99精品在免费线老司机午夜| 高清日韩中文字幕在线| 亚洲av电影不卡..在线观看| 日本色播在线视频| 欧美丝袜亚洲另类| 欧美精品一区二区大全| 亚洲av免费高清在线观看| 亚洲第一区二区三区不卡| 一边摸一边抽搐一进一小说| 国产精品1区2区在线观看.| 卡戴珊不雅视频在线播放| 国产精品一区二区三区四区免费观看| 青青草视频在线视频观看| 中文资源天堂在线| or卡值多少钱| 看片在线看免费视频| 国产av不卡久久| 精品久久久久久久久久免费视频| 国产精品,欧美在线| 直男gayav资源| 菩萨蛮人人尽说江南好唐韦庄 | 能在线免费观看的黄片| 国产免费一级a男人的天堂| 亚洲精品日韩在线中文字幕 | 亚洲欧美精品综合久久99| 在线观看av片永久免费下载| 一区二区三区免费毛片| 丝袜喷水一区| 色哟哟哟哟哟哟| 中国国产av一级| 日韩一区二区三区影片| 一区二区三区高清视频在线| 国产亚洲av嫩草精品影院| 亚洲欧美精品自产自拍| 免费观看的影片在线观看| av天堂中文字幕网| 亚洲av第一区精品v没综合| 亚洲最大成人中文| 天美传媒精品一区二区| 久久精品国产亚洲av涩爱 | 久久久久久久亚洲中文字幕| 最新中文字幕久久久久| 99热这里只有是精品在线观看| 国产一级毛片七仙女欲春2| 国产黄片视频在线免费观看| 在线播放无遮挡| 欧美一区二区国产精品久久精品| 国内精品久久久久精免费| 久久久久久久久久黄片| 中文在线观看免费www的网站| 婷婷六月久久综合丁香| 国产亚洲欧美98| 国产三级中文精品| 午夜福利视频1000在线观看| 国产精品1区2区在线观看.| 亚洲国产精品成人综合色| 日韩国内少妇激情av| 乱人视频在线观看| 啦啦啦韩国在线观看视频| 黑人高潮一二区| 国产日韩欧美在线精品| 国产精品人妻久久久影院| 国产高清三级在线| 日韩欧美三级三区| 精品久久久久久久久久久久久| 国产不卡一卡二| 麻豆精品久久久久久蜜桃| 久久精品人妻少妇| 国产精华一区二区三区| 国内精品一区二区在线观看| 国产视频首页在线观看| 麻豆一二三区av精品| 男女边吃奶边做爰视频| 免费人成在线观看视频色| 一边亲一边摸免费视频| 大又大粗又爽又黄少妇毛片口| 丰满人妻一区二区三区视频av| 亚洲天堂国产精品一区在线| 久久精品国产亚洲av香蕉五月| 亚洲不卡免费看| 九九久久精品国产亚洲av麻豆| 亚洲美女搞黄在线观看| 精品国产三级普通话版| 成熟少妇高潮喷水视频| 男人舔女人下体高潮全视频| 欧美极品一区二区三区四区| 男女下面进入的视频免费午夜| 欧美极品一区二区三区四区| 男人舔女人下体高潮全视频| 蜜桃久久精品国产亚洲av| 九九久久精品国产亚洲av麻豆| 天堂影院成人在线观看| 亚洲无线在线观看| 亚洲成人av在线免费| 精品人妻熟女av久视频| 久久亚洲精品不卡| 小蜜桃在线观看免费完整版高清| 免费人成视频x8x8入口观看| 天天躁夜夜躁狠狠久久av| 亚洲久久久久久中文字幕| 精品久久国产蜜桃| 亚洲av二区三区四区| 最近的中文字幕免费完整| 草草在线视频免费看| 少妇的逼水好多| 18禁在线无遮挡免费观看视频| 日韩av不卡免费在线播放| 美女高潮的动态| eeuss影院久久| 尤物成人国产欧美一区二区三区| 26uuu在线亚洲综合色| 久久草成人影院| 黄片无遮挡物在线观看| 日韩一区二区三区影片| 又粗又爽又猛毛片免费看| 久久久久性生活片| 亚洲精品久久久久久婷婷小说 | 青春草亚洲视频在线观看| 天堂av国产一区二区熟女人妻| 波多野结衣高清作品| 少妇的逼水好多| 免费观看人在逋| 黄色日韩在线| 精品欧美国产一区二区三| 欧美+亚洲+日韩+国产| 一级av片app| 久久婷婷人人爽人人干人人爱| 欧美成人精品欧美一级黄| 日本色播在线视频| 久久久国产成人精品二区| 男女做爰动态图高潮gif福利片| 男女那种视频在线观看| 97在线视频观看| 不卡视频在线观看欧美| 欧美xxxx黑人xx丫x性爽| 一级黄色大片毛片| 男插女下体视频免费在线播放| 全区人妻精品视频| 男女视频在线观看网站免费| 国产老妇女一区| 国产老妇伦熟女老妇高清| 亚洲精品乱码久久久久久按摩| 欧美丝袜亚洲另类| 欧美日韩精品成人综合77777| 国产精品永久免费网站| 亚洲18禁久久av| 国产av麻豆久久久久久久| 亚洲婷婷狠狠爱综合网| 人人妻人人澡欧美一区二区| 成人美女网站在线观看视频| 欧美激情在线99| 国产三级中文精品| 国产色爽女视频免费观看| 日韩成人av中文字幕在线观看| 亚洲欧美精品自产自拍| 国产91av在线免费观看| 嫩草影院精品99| 成人特级黄色片久久久久久久| 晚上一个人看的免费电影| 国产精品日韩av在线免费观看| 国产精品一区二区三区四区免费观看| 国产成人影院久久av| 亚洲成人久久性| 国产精品美女特级片免费视频播放器| 寂寞人妻少妇视频99o| 亚洲欧美日韩高清专用| av在线观看视频网站免费| 成人二区视频| avwww免费| 国产在线精品亚洲第一网站| 亚洲欧洲日产国产| 欧美+日韩+精品| 中国美女看黄片| 精品人妻偷拍中文字幕| 又爽又黄无遮挡网站| 久久久久久久久大av| 免费一级毛片在线播放高清视频| 久久综合国产亚洲精品| 欧美最新免费一区二区三区| 国产淫片久久久久久久久| 丰满的人妻完整版| 伦精品一区二区三区| 可以在线观看的亚洲视频|