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

    一種基于POWERPC+FPGA的無線系統(tǒng)設計與實現(xiàn)

    2014-04-29 00:00:00楊柏松
    計算機光盤軟件與應用 2014年1期

    摘 要:在軍事、搶險、應急通信等復雜環(huán)境中對無線系統(tǒng)需求日益增多以及多樣化,本文提出一種基于PowerPC+FPGA的無線系統(tǒng)來應對無線系統(tǒng)需求和多樣化的需求,闡述了硬件設計與現(xiàn)實,引導程序uboot、嵌入式操作系統(tǒng)linux、設備樹如何對新平臺支持與實現(xiàn),以及FPGA驅(qū)動的設計與實現(xiàn)。實驗結(jié)果顯示,本文設計的無線系統(tǒng)硬件設計合理,uboot和linux工作穩(wěn)定,F(xiàn)PGA驅(qū)動設計合理高效,實現(xiàn)無線系統(tǒng)之間點對點的通信,滿足設計要求。

    關(guān)鍵詞:PowerPC;FPGA;CompactPCI;嵌入式操作系統(tǒng);PCI;PCIe;eLBC;eTSEC

    中圖分類號:TP391.41

    在軍事、搶險、應急通信等復雜環(huán)境中對無線通信系統(tǒng)需求日益增多,同時現(xiàn)有的通信網(wǎng)絡結(jié)構(gòu)又無法滿足對這些復雜環(huán)境下的移動性、抗毀性、魯棒性、易構(gòu)性等要求[1]。隨著嵌入式處理器設計和工藝的發(fā)展,嵌入式處理器的性能越來越高,基于嵌入式的無線系統(tǒng)可以很好的滿足這種復雜環(huán)境下的應用,同時也能滿足體積和功耗限制的要求。本文選擇用PowerPC和FPGA來實現(xiàn)無線通信系統(tǒng)的設計;PowerPC實現(xiàn)對操作系統(tǒng)的支持,F(xiàn)PGA實現(xiàn)了無線通信的鏈路層和物理層,方便無線通信鏈路層和物理層的更新,應對通信系統(tǒng)多樣化的需求,PowerPC的CPU和FPGA都有工業(yè)級的芯片,能很好滿足復雜工作環(huán)境下的要求。

    本文介紹基于PowerPC+FPGA的無線系統(tǒng)的硬件設計與現(xiàn)實,描述引導程序、嵌入式操作系統(tǒng)、設備樹如何對新平臺的支持與實現(xiàn),以及FPGA驅(qū)動的設計與實現(xiàn)。

    1 設計硬件結(jié)構(gòu)

    基于FPGA+FPGA的無線系統(tǒng)可以支持一路無線信號收發(fā)也可以支持多路無線信號收發(fā),為了兼容性和互換性,以及項目整體設計和結(jié)構(gòu)要求,設計時把CPU+FPGA放在一個板卡:網(wǎng)絡基帶板,ADC、DAC和射頻部分放在一個板卡:射頻板,射頻板實現(xiàn)了一路無線信號的接收和發(fā)射;網(wǎng)絡基帶板和射頻板都做成6U CompactPCI標準,通過背板連接。網(wǎng)絡基帶板主要由CPU核心模塊、FPGA模塊、系統(tǒng)電源、復位及上電配置電路、系統(tǒng)時鐘電路組成如圖1。其中CPU核心模塊電路主要包括CPU處理器、FLASH存儲器、DDR2 SDRAM存儲器、RS232串口、JTAG接口、兩個千兆以太網(wǎng)接口、三個USB2.0接口、一個MiniPCIe接口、一個PCI接口等;FPGA部分主要包括DDR2 SDRAM、SPI FLASH、RS232、LVDS和CMOS信號接口。射頻板主要由ADC、DAC、正交調(diào)制/解調(diào)電路、混頻器、頻率綜合器、濾波器、功率放大器、LNA以及天線組成,目前實現(xiàn)了一路無線信號發(fā)射和一路無線信號接收功能。本文主要介紹網(wǎng)絡基帶板的設計。

    圖1 無線系統(tǒng)網(wǎng)絡基帶硬件系統(tǒng)結(jié)構(gòu)圖

    1.1 設計CPU模塊

    CPU選擇freescale的MPC8536E處理器,使用兩片16bit數(shù)據(jù)寬度NOR Flash(每片128MB),其中一片F(xiàn)lash存儲引導程序、操作系統(tǒng)和文件系統(tǒng),一片F(xiàn)lash存儲應用軟件和日志文件,保證系統(tǒng)軟件和應用軟件的隔離,防止系統(tǒng)軟件被迫壞;使用四片16bit DDR2 SDRAM組成64位的數(shù)據(jù)寬度實現(xiàn)512MB內(nèi)存;CPU的UART控制器連接RS232 Transceiver實現(xiàn)一個RS232接口,CPU的兩個eTSEC以太網(wǎng)控制器分別連接以太網(wǎng)PHY芯片實現(xiàn)兩個千兆以太網(wǎng)接口,CPU的PCI控制器直接連接到CompactPCI的J1連接器上實現(xiàn)32位PCI接口,PCI接口根據(jù)連接到背板的槽位來決定工作在host模式還是device模式,CPU的PCIe控制器直接連接miniPCIe連接器實現(xiàn)一個PCIe接口。CPU的三個USB控制器分別連接USB PHY芯片實現(xiàn)三個USB host接口。CPU模塊實現(xiàn)操作系統(tǒng)的支持和對無線信號的收發(fā)控制、無線網(wǎng)絡和以太網(wǎng)絡路由轉(zhuǎn)發(fā)或者網(wǎng)橋等功能

    1.2 設計FPGA模塊

    FPGA選擇xilinx 的XC5VLX50T,使用一片SPI flash(32Mb)提供FPGA配置文件的存儲、使用四片16bit DDR2 SDRAM組成64位數(shù)據(jù)寬度存儲器(512MB),提供CMOS和LVDS信號接口和一路RS232接口與射頻板進行通信。FPGA模塊實現(xiàn)鏈路層、發(fā)射機和接收機物理層。發(fā)射機物理層主要完成FEC編碼、交織、加擾、脈沖分組、同步插入、頻率分配、GMSK調(diào)制、脈沖成型等功能;接收機物理層主要完成同步檢測、時鐘頻率回復、多普勒估計與消除、GMSK解調(diào)、解擾、解交織、FEC解碼等功能[2]。

    1.3 設計電源、復位及上電配置電路

    系統(tǒng)電源取自CompactPCI接口提供的5V和3.3V,根據(jù)芯片電壓、功耗、上電順序要求,選擇TPS54910、TPS51116、TPS74401來進行電源變換,提供的網(wǎng)絡基帶板芯片所需電源,使用電源芯片的使能ENA信號、電源正確輸出指示信號PWRGD和邏輯電路來實現(xiàn)上電順序。

    根據(jù)CPU和FPGA以及外圍芯片的電源規(guī)格,CPU芯片上電順序要求比較嚴格,F(xiàn)PGA的上電順序沒有限制;因此電源設計以CPU上電順序為準。

    CPU工作電壓上電順序如下:

    (1)VDD_PLAT,AVDD,BVDD,LVDD,OVDD,SVDD,S2VDD,TVDD,XVDD and X2VDD;

    (2)等待POWER_EN使能,來控制VDD_CORE電壓輸出;

    (3)GVDD[3]。

    復位電路主要完成系統(tǒng)中芯片的復位功能,選擇復位芯片同時監(jiān)控電源,使用邏輯電路監(jiān)控各個電源的輸出指示信號,同時邏輯電路還監(jiān)控PCI總線的工作模式是host還是device來選擇PCI總線復位信號的輸出還是輸入,最后經(jīng)過邏輯電路給出系統(tǒng)復位信號,對CPU、FPGA以及外圍芯片進行復位。

    上電配置電路主要完成上電過程中的功能配置,CPU需要上電配置CCB平臺時鐘、e500 core時鐘、DDR工作時鐘、SYSCLK輸入時鐘、CPU啟動模式、以太網(wǎng)網(wǎng)絡接口工作模式、PCI接口及工作時鐘、PCIe接口工作模式等[4]。

    1.4 設計系統(tǒng)時鐘電路

    系統(tǒng)時鐘電路為系統(tǒng)中芯片提供時鐘,其中CPU時鐘信號有輸入時鐘SYSCLK、PCI控制器輸入時鐘PCI_CLK、RTC輸入時鐘RTC_CLK、DDR內(nèi)存控制器輸入時鐘DDRCLK、PCIe控制器輸入時鐘、eTSEC以太網(wǎng)控制器輸入時鐘。CPU輸入時鐘SYSCLK、PCI_CLK、RTC_CLK、DDRCLK可以工作在同步模式也可以工作在異步模式,本設計把SYSCLK、RTC_CLK、DDRCLK時鐘設置在同步模式,共用同一時鐘源SYSCLK,通過CPU內(nèi)部的鎖相環(huán)電路倍頻和分頻得到相應的工作頻率,而PCI控制器時鐘選擇異步模式,PCI接口工作在設備模式輸入時鐘來自CompactPCI接口,PCI接口工作在host模式輸入時鐘來自時鐘驅(qū)動器CDCVF2505。選擇9FG108EGILF來提供CPU的PCIe控制器的時鐘輸入和MiniPCIe接口的時鐘,CPU的以太網(wǎng)控制器時鐘輸入使用以太網(wǎng)PHY芯片產(chǎn)生125MHz的時鐘。

    對于PCIe控制器的正常工作,CPU要求內(nèi)部CCB平臺時鐘必須大于或等于[4],本設計選擇PCI Express link with為1。

    1.5 設計印制電路板

    印制電路的設計首先考慮疊層結(jié)構(gòu)和阻抗要求,其次是布局、設置布線規(guī)則,最后是PCB布線。完成PCB設計文件,還需完成制板和焊接,印制電路板布線圖和實物圖如圖2。

    圖2 無線系統(tǒng)網(wǎng)絡基帶板電路板圖

    2 引導程序uboot和操作系統(tǒng)linux

    引導程序選用uboot,uboot是由德國DENX開發(fā),目前支持多種嵌入式CPU,不僅能支持嵌入式linux的引導,還支持NetBSD、VxWorks、QNS等嵌入式操系統(tǒng)。操作系統(tǒng)選擇開源嵌入式操作系統(tǒng)linux,支持多種嵌入式CPU;uboot和linux使用設備樹來提供硬件相關(guān)信息的配置。

    2.1 引導程序

    uboot選擇u-boot-200908的版本,并添加補丁以對CPU MPC8536E的支持(補丁從freescale網(wǎng)站下載)。打完補丁之后添加對網(wǎng)絡基帶平臺MPC8536CPCI的支持;支持新的MPC8536E設計平臺需要如下步驟:

    (1)在uboot文件目錄下的Makefile文件添加如下信息

    MPC8536CPCI_config:unconfig

    @$(MKCONFIG)–t$(@:_config=) MPC8536CPCI ppc mpc85xx mpc8536cpci freescale

    (2)添加MPC8536CPCI.h文件

    在uboot文件目錄下include/configs/下添加MPC8536CPCI.h文件,文件給出CPU以及集成PCI、PCIe、DDR SDRAM、eLBC、eTSECs控制器相應寄存器的設置值和CCSRBAR寄存器的重映射地址、Flash的扇區(qū)大小、容量大??;根據(jù)選用的DDR2 SDRAM芯片給出DDR2 SDRAM控制器寄存器設置值;以太網(wǎng)PHY芯片地址和串口終端及其波特率等。

    (3)添加mpc8536cpci目錄

    在uboot文件目錄的board/freescale下添加mpc8536cpci目錄,然后在此目錄下添加mpc8536cpci.c、ddr.c、law.c、tlb.c、config.mk、Makefile等6個文件;實現(xiàn)對CPU和DDR SDRAM控制器、TLB進行相應的硬件初始化工作。

    (4)配置和編譯

    先設置好交叉編譯器Gcc路徑

    PATH=$PATH:/opt/freescale/usr/local/gcc-4.3.74-eglibc-2.8.74-dp-3/powerpc-none-linux-gnuspe/bin/

    #make distclean;

    #make MPC8536CPCI_config;

    #make

    最后得到u-boot.bin(512KB)文件,通過freescale仿真器USB TAP連接網(wǎng)絡基帶板的CPU Jtag接口,把u-boot.bin燒寫到0xfff80000地址(MPC8536E上電之后從0xfffffffc開始執(zhí)行[4])之后,從新上電網(wǎng)絡基帶板,調(diào)試uboot。

    2.2 設備樹

    設備樹是描述硬件配置的數(shù)據(jù)結(jié)構(gòu),包括CPU、內(nèi)存、Flash、PCI總線、PCIe總線、串口、PHY等設備信息,linux操作系統(tǒng)對于所有的PowerPC平臺支持在啟動時使用了Open Firmware風格的設備樹傳遞給內(nèi)核,操作系統(tǒng)能在啟動時候解析這個設備樹并決定如何配置內(nèi)核和加載哪些驅(qū)動程序[5]。設備樹被組織為樹形結(jié)構(gòu),有且僅有單一的根節(jié)點,每個節(jié)點都有一個名字和可能有任意數(shù)量的子節(jié)點。節(jié)點也可以具有一組可選的包含屬性和屬性值,屬性值可以是數(shù)字、字符、字符串或其他數(shù)據(jù)結(jié)構(gòu),設備樹中數(shù)據(jù)格式遵循IEEE 1275標準。設備樹編譯工具(Device Tree Compiler)dtc把設備樹源文件(Device Tree Source)dts格式編譯成被操作系統(tǒng)識別的二進制設備樹(Device Tree blob)dtb格式文件[5]。

    在linux目錄arch/powerpc/boot/dts/目錄下有設備樹參考文件,對支持網(wǎng)絡基帶板需要在此目錄下的添加mpc8536cpci.dts文件,其中根節(jié)點下model定義平臺名稱,平臺名稱要唯一性,compatible是指兼容的平臺,定義如下:

    model=\"dhc,mpc8536cpci\";

    compatible=\"fsl,mpc8536ds\";

    其次是flash布局信息、以太網(wǎng)芯片PHY地址、USRT、SPI、USB、PCI、PCIe控制器信息配置。

    flash@0,0{

    partition@0 {

    label = \" kernel\";

    reg = <0x00000000 0x00400000>;

    };

    partition@400000 {

    label = \" rootfs \";

    reg = <0x00400000 0x07b00000>;

    };

    partition@7F40000 {

    label = \" dts\";

    reg = <0x07F40000 0x00020000>;

    };

    partition@7F60000 {

    label = \" env\";

    reg = <0x07F60000 0x00020000>;

    };

    partition@7F80000 {

    label = \"uboot\";

    reg = <0x07F80000 0x00080000>;

    };

    };

    flash@1,0 {

    partition@0 {

    label = \"user1\";

    reg = <0x00000000 0x04000000>;

    };

    partition@4000000 {

    label = \"user2\";

    reg = <0x04000000 0x04000000>;

    };

    };

    最后完成mpc8536cpci.dts文件,使用dtc命令對mpc8536cpci.dts進行編譯,命令如下:

    #dtc–O dtb-o mpc8536cpci.dtb–b 0-I dts mpc8536cpci.dts

    2.3 操作系統(tǒng)

    linux選用2.6.32-rc5的版本,并添加補丁文件對CPU的支持(補丁從freescale官網(wǎng)下載),打完補丁之后,在此基礎上添加本系統(tǒng)MPC8536CPCI的支持。內(nèi)核對每個平臺都定義一個machdep_calls數(shù)據(jù)結(jié)構(gòu),內(nèi)核調(diào)用probe_machine函數(shù)遍歷machine_desc表,并調(diào)用machdep_calls對應的.probe()鉤子函數(shù),每個.probe()檢查設備樹并返回真,決定設備樹支持該平臺的代碼[5]。支持新的MPC8536E設計平臺需要如下步驟:

    (1)在linux目錄下arch/powerpc/platfroms/85xx目錄下添加mpc8536_cpci.c文件;此文件調(diào)用define_machine宏來定義硬件平臺相關(guān)的數(shù)據(jù)結(jié)構(gòu)machdep_calls,并完成其相應成員函數(shù)的定義。

    (2)arch/powerpc/platfroms/85xx/Kconfig文件中添加對MPC8536CPCI的支持,在if MPC85xx條件語句內(nèi)添加如下信息,支持MPC8536_CPCI配置。

    config MPC8536_CPCI

    bool “Freecale MPC8536E CompactPCI board”

    select DEFAULT_UIMAGE

    select SWIOTLB

    help

    This option enables support for MPC8536E CompactPCI board

    (3)在arch/powerpc/platfroms/85xx/Makefile中關(guān)聯(lián)配置變量和文件,在最后添加一行:

    obj-$(CONFIG_MPC8536_CPCI) += mpc8536_cpci.o

    (4)配置和編譯內(nèi)核

    #make distclean

    #make ARCH=powerpc menuconfig

    #make ARCH=powerpc CROSS_COMPILE=powerpc-none-linux-gnuspe- uImage

    最后得到內(nèi)核鏡像文件uImage,在網(wǎng)絡基帶板啟動之后,在uboot下把uImage和mpc8536cpci.dtb分別通過tftp下載到網(wǎng)絡基帶板卡指定的內(nèi)存空間,并通過bootm命令引導linux啟動,命令如下(文件系統(tǒng)使用ramdisk,使用freescale提供的版本進行調(diào)試):

    =>tftp 1000000 uImage;tftp 2000000 rootfs.ext2.gz.uboot

    =>tftp c00000 mpc8536cpci.dtb;bootm 1000000 2000000 c00000

    3 FPGA驅(qū)動設計與實現(xiàn)

    FPGA驅(qū)動程序?qū)崿F(xiàn)了無,實現(xiàn)一路無線信號的發(fā)射和接收。CPU通過SPI總線與FPGA進行通信,在驅(qū)動設計上把FPGA驅(qū)動程序按照網(wǎng)絡驅(qū)動來設計,方便實現(xiàn)以太網(wǎng)絡和到FPGA無線的路由轉(zhuǎn)發(fā)或者網(wǎng)橋功能。FPGA網(wǎng)絡驅(qū)動主要包括驅(qū)動模塊初始化,網(wǎng)絡設備數(shù)據(jù)結(jié)構(gòu)初始化,網(wǎng)絡設備訪問方法的實現(xiàn),F(xiàn)PGA寄存器訪問控制[7]。

    FPGA接口驅(qū)動模塊初始化:首先定義spi_driver類型數(shù)據(jù)結(jié)構(gòu)fpga_driver,然后在驅(qū)動模塊初始化函數(shù)中調(diào)用spi_register_driver()函數(shù)注冊fpga_driver[8]。

    static struct spi_driver fpga_driver ={

    .driver = {

    .name = “fpga_net”,

    .owner = THIS_MODULE,

    },

    .probe = fpga_probe,

    .remove = __devexit_p(fpga_remove),

    };

    網(wǎng)絡設備數(shù)據(jù)結(jié)構(gòu)初始化,首先要定義私有數(shù)據(jù)結(jié)構(gòu)類型fpga_net、然后在fpga_driver的鉤子函數(shù).probe()中使用alloc_etherdev分配net_device數(shù)據(jù)結(jié)構(gòu),調(diào)用netdev_priv分配fpga_net類型數(shù)據(jù)結(jié)構(gòu),關(guān)聯(lián)net_device和fpga_net類型的數(shù)據(jù)結(jié)構(gòu),關(guān)聯(lián)net_device與net_device_ops類型數(shù)據(jù)結(jié)構(gòu);關(guān)聯(lián)中斷信號、注冊中斷處理函數(shù)、關(guān)聯(lián)FPGA寄存器訪問函數(shù),最后調(diào)用register_netdev函數(shù)完成net_device類型數(shù)據(jù)結(jié)構(gòu)注冊。

    typedef struct fpga_net{

    sruct net_device *netdev;

    struct spi_device * spidev;

    ….

    };

    static int _devinit fpga_probe(struct spi_device *spi)

    {

    struct net_device *ndev;

    struct fpga_net *ks;

    ndev = alloc_etherdev(sizeof(struct fpga_net));

    ks = netdev_priv(ndev);

    ks->netdev = ndev;

    ks->spidev = spi;

    ……

    dev_set_drvdata(spi->dev, ks);

    ndev->if_port = IF_PORT_100BASET;

    ndev->netdev_ops = fpga_netdev_ops;

    ndev->irq = spi->irq;

    ret = request_irq(spi->irq, fpga_net_irq, IRQF_TRIGGER_LOW,

    ndev->name, ks);

    ret = register_netdev(ndev);

    ……

    }

    設備訪問方法的實現(xiàn),主要對關(guān)鍵數(shù)據(jù)結(jié)構(gòu)net_device_ops成員函數(shù)的實現(xiàn),包括打開網(wǎng)絡、關(guān)閉網(wǎng)絡、數(shù)據(jù)發(fā)送、數(shù)據(jù)接收、ioctl調(diào)用、mac地址設置等,還有FPGA寄存器訪問控制函數(shù)。中斷處理函數(shù)主要完成接收隊列的調(diào)度工作。

    static const struct net_device_ops fpga_netdev_ops ={

    .ndo_open = fpga_net_open,

    .ndo_stop = fpga_net_stop,

    .ndo_do_ioctl = fpga_net_ioctl,

    .ndo_start_xmit = fpga_net_start_xmit

    .ndo_set_mac_address = fpga_net_mac_address,

    .ndo_set_rx_mod = fpga_set_rx_mode,

    .ndo_change_mtu = eth_change_mtu

    .ndo_validate_addr = eth_validate_addr,

    };

    最后完成驅(qū)動設計,還需在mpc8536cpci.dts文件中添加對fpga驅(qū)動的支持;并編譯最新的mpc8536cpci.dts得到mpc8636cpci.dtb,然后編譯fpga驅(qū)動模塊得到fpga.ko,通過uboot更新mpc8636cpci.dtb,然后在linux系統(tǒng)啟動后加載fpga.ko測試FPGA驅(qū)動。

    4 實驗測試

    測試時把千兆網(wǎng)絡接口和無線網(wǎng)絡接口設置工作在網(wǎng)橋模式,兩臺無線系統(tǒng)平臺(網(wǎng)絡基帶板卡+射頻板)分別連接兩臺windows XP系統(tǒng)的筆記本電腦,兩個無線網(wǎng)絡平臺之間通過空口無線連接,在筆記本電腦上分別運行chariot4.3 和endpoint進行UPD協(xié)議下流量測試,chariot設置為雙向,每個方向設置三個數(shù)據(jù)流,共計六個數(shù)據(jù)流,測試時間一個小時,流量運行平穩(wěn),都在10Mbps以上,滿足設計要求≥10Mbps。

    5 結(jié)束語

    本文提出了的一種基于PowerPC+FPGA的無線系統(tǒng),該系統(tǒng)包括硬件平臺、嵌入式linux、uboot、設備樹以及FPGA驅(qū)動軟件的實現(xiàn),支持無線信號的一路發(fā)射和一路接收,實現(xiàn)了無線系統(tǒng)之間點對點無線通信。在后續(xù)的研究中,需要支持多路無線信號的發(fā)射與接收,F(xiàn)PGA驅(qū)動程序根據(jù)不同無線基帶調(diào)制/解調(diào)設定參數(shù),自動選擇FPGA的配置文件實現(xiàn)動態(tài)加載。

    參考文獻:

    [1]常關(guān)羽,許晴.Ad Hoc環(huán)境下基于穩(wěn)定鏈路的語音通信系統(tǒng)設計與實現(xiàn)[J].小型微型計算機系統(tǒng),2011(01):107-111.

    [2]Bernard Sklar.數(shù)字通信——基礎與應用(第二版)[M].北京:電子工業(yè)出版社,2010.

    [3]MPC8536E PowerQUICC III Integrated Processor Hardware Specifications[M].Rev.5 05/2011 Freescale.

    [4]MPC8536E PowerQUICC III?Integrated Processor Reference Manual[M].Rev.1 05/2009 Freescale.

    [5]Grant Likely,Josh Boyer.A Symphony of Flavours:Using the device tree to describe embedded hardware[R].Ottawa,Canada:Linux Symposium,2008.

    [6]IEEE Standard for Boot(Initialization Configuration)Firmware:Core Requirements and Practices,IEEE Std 1275-1994[M].IEEE Computer Society,345 East 47th St,NewYork NY 10017-2394,USA,1994.

    [7]魏永明,耿岳,譯.Corbet J,Rubini A.Linux設備驅(qū)動程序[M].北京:中國電力出版社,2006.

    [8]宋寶華,何韶然,史海濱,譯.Sreekrishnan Venkateswaran.精通Linux設備驅(qū)動程序開發(fā)[M].北京:人民郵電出版社,2010.

    作者簡介:楊柏松(1973-),男,天津人,本科,廣電事業(yè)部嵌入式技術(shù)總監(jiān),助理工程師,研究方向:嵌入式系統(tǒng)。

    作者單位:東華軟件股份公司,北京 100190

    龙陵县| 姚安县| 保靖县| 石城县| 遂川县| 瑞丽市| 鹤山市| 垫江县| 罗城| 岑巩县| 宁夏| 叙永县| 黔南| 呼和浩特市| 甘谷县| 手游| 定兴县| 如东县| 孟州市| 全椒县| 莱芜市| 永寿县| 宁强县| 刚察县| 同心县| 易门县| 临湘市| 永定县| 克东县| 南皮县| 连山| 威宁| 阜平县| 上杭县| 邵阳市| 神木县| 南雄市| 西城区| 旬邑县| 类乌齐县| 临湘市|