0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Linux操作系統(tǒng)和ARM處理器實(shí)現(xiàn)數(shù)據(jù)通信系統(tǒng)的設(shè)計(jì)

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì)工程 ? 作者:孫文康,段義隆, ? 2021-06-11 16:03 ? 次閱讀

作者:孫文康,段義隆,張媛媛

1 引言

基于ARM核心處理器嵌入式系統(tǒng)以其自身資源豐富、功耗低、價(jià)格低廉、支持廠商眾多的緣故,越來越多地應(yīng)用在各種需要復(fù)雜控制和通信功能的嵌入式系統(tǒng)中。

內(nèi)核源碼開放的Linux與ARM體系處理器相結(jié)合,可以發(fā)揮Linux系統(tǒng)支持各種協(xié)議及存在多進(jìn)程調(diào)度機(jī)制的優(yōu)點(diǎn),從而使開發(fā)周期縮短,擴(kuò)展性增強(qiáng)。作為數(shù)字處理專用電路,DSP數(shù)字信號(hào)處理能力十分強(qiáng)大,但對(duì)諸如任務(wù)管理、通信、人機(jī)交互等功能的實(shí)現(xiàn)較為困難。

如果將這三者結(jié)合起來,即由DSP結(jié)合采樣電路采集并處理信號(hào),由ARM處理器作為平臺(tái),運(yùn)行Linux操作系統(tǒng),將經(jīng)過DSP運(yùn)算的結(jié)果發(fā)送給用戶程序進(jìn)行進(jìn)一步處理,然后提供給圖形化友好的人機(jī)交互環(huán)境完成數(shù)據(jù)分析和網(wǎng)絡(luò)傳輸?shù)裙δ?,就?huì)最大限度的發(fā)揮三者所長。

2 系統(tǒng)結(jié)構(gòu)

該系統(tǒng)硬件由二部分組成,其中一部分為若干塊DSP板,各自獨(dú)立承接數(shù)據(jù)采集和信號(hào)處理。另一部分為以ARM為核心處理器的CPU板。系統(tǒng)硬件框圖如圖1所示(僅接口部分)。

3 接口硬件部分設(shè)計(jì)

3.1 HPI接口簡介

HPI接口是TI公司新一代、高性能DSP上用以完成與主機(jī)或其他DSP之間數(shù)據(jù)交換的接口,這里主要介紹實(shí)際電路中使用的控制引腳和時(shí)序。

HCNTL0和HCNTL1為訪問控制選擇。用來確定主機(jī)(ARM)究竟對(duì)TMS320C6711中的哪一個(gè)HPI寄存器進(jìn)行處理。具體功能如表1所列。

HR/W:讀寫選擇控制。為“1”表示是從DSP中讀,反之則為寫。

HHWIL:半字節(jié)定義選擇,與HPIC寄存器中的HWOB位進(jìn)行配合可以選擇當(dāng)前傳輸?shù)氖歉甙胱诌€是低半字。低電平是第一個(gè)半字,高電平是第二個(gè)半字。

HCS:選通脈沖(Strobe),與HDS1、HDS2相互配合完成內(nèi)部信號(hào)HSTROBE的生成。邏輯關(guān)系如圖2所示。

將HDS1、HDS2分別固定為高電平和低電平,這樣HCS就和HSTROBE完全一致。

HSTROBE讀時(shí)序如圖3所示。

3.2 接口電路

ARM處理器通過DSP的HPI接口與DSP進(jìn)行連接的硬件原理如圖4所示(以單板DSP為例)。其中SN74LVTH16245為16位(二個(gè)8位)雙向三態(tài)總線收發(fā)器,主要起總線驅(qū)動(dòng)和方向控制的作用同時(shí)也保證在不對(duì)HPI口進(jìn)行操作時(shí)數(shù)據(jù)總線鎖閉。AT91RM9200為Atmel公司生產(chǎn)的ARM9為核心的處理器,其中引腳D0-D15為數(shù)據(jù)總線,A2-A8為地址總線的一部分,CS3為片選信號(hào)線,當(dāng)ARM對(duì)總線地址范圍為0x40000 0000~0x4FFF FFFF的外部設(shè)備進(jìn)行操作時(shí),會(huì)在該引腳產(chǎn)生一個(gè)片選信號(hào)。同時(shí)該信號(hào)控制SN74LVTH16245的使能端,避免在讀寫其他地址時(shí)對(duì)HPI端口造成影響。TMS320C6711D是TI公司生產(chǎn)的DSP,每秒可以完成15億次浮點(diǎn)運(yùn)算,數(shù)據(jù)處理功能十分強(qiáng)大。引腳D0-D15為數(shù)據(jù)總線。其余端口是HPI接口的控制引腳。

4 驅(qū)動(dòng)程序設(shè)計(jì)

4.1 Linux驅(qū)動(dòng)程序簡介

在Linux操作系統(tǒng)下有二種方式將驅(qū)動(dòng)程序裝入操作系統(tǒng)內(nèi)核:一種是直接將驅(qū)動(dòng)程序編譯進(jìn)內(nèi)核,另外一種是將驅(qū)動(dòng)程序構(gòu)建為驅(qū)動(dòng)程序模塊后采用insmod/rmmod命令將模塊加載內(nèi)核中。由于是在嵌入式系統(tǒng)中進(jìn)行程序開,所以筆者選用了模塊加載方式。這樣,在整個(gè)程序的調(diào)試過程中不必因?yàn)樾薷哪程幎磸?fù)編譯整個(gè)內(nèi)核,只需編譯驅(qū)動(dòng)程序模塊并重新加載。

本例中Linux下的驅(qū)動(dòng)程序主要用來完成文件(Linux把外部設(shè)備也認(rèn)為是文件)的打開、關(guān)閉、讀、寫等操作。也就是對(duì)如下結(jié)合的填充。

Static struct file_operations fops=

{open:hpi_open,

release:hpi_release,

mmap:hpi_mmap,

};

其中,open和release完成設(shè)備的打開和關(guān)閉。mmap為內(nèi)存地址映射操作。因?yàn)椴捎玫氖悄K加載方式,所以還應(yīng)該加上int init_module(void)和void cleanup_module(void)函數(shù),以完成模塊的注冊和卸載。

4.2 驅(qū)動(dòng)程序中映射的實(shí)現(xiàn)

由于驅(qū)動(dòng)程序的內(nèi)存空間是在內(nèi)核空間中,因此首先應(yīng)解決內(nèi)核空間與用戶空間的交互問題。這里采用最直接的方式將內(nèi)核空間和用戶空間聯(lián)系起來實(shí)現(xiàn)映射,即利用remap_page_range內(nèi)核函數(shù)(通過mmap系統(tǒng)調(diào)用實(shí)現(xiàn))。

函數(shù)原形如下:

int remap_page_range(unsigned long virt_add,unsigned long phys_add,unsigned long size,pgprot_tprot);

函數(shù)的功能是構(gòu)造用于映射一段物理地址的新頁表。函數(shù)返回的值通常是0或者一個(gè)負(fù)的錯(cuò)誤碼。函數(shù)參數(shù)的確切含義如下:

virt_add:重映射起始處的用戶虛擬地址。phys_add:虛擬地址所映射的物理地址。Size:被重映射的區(qū)域的大小。Prot:新VMA(virtual memory area)的“保證(protection)”標(biāo)志。具體定義在源泉文件/include/linux/mm.h中。系統(tǒng)調(diào)用MMAP的程序代碼如下:

static int hpi_mmap(struct file *f,struct vm_area_struct *vma)

vma->vm_flags|=VM_WRITE;

if(remap_page_range(vma->vm_start,((0x40000000)),

vma->vm_end-vma->vm_start,(_pgprot (pgprot_val(pgprot_noncached(vma->vm_page_prot))|

(L_PTE_WRITE|L_PTE_DIRTY))))) //進(jìn)行映射

{return -1;} //映射失敗

return 0;

}

結(jié)合硬件結(jié)構(gòu)可對(duì)函數(shù)remap_page_range()分別填充如下參數(shù)

remap_page_range(vma->vm_start,((0x40000000)),vma->vm_end-vma->vm_start,(__pgprot(pgprot_val(pgprot_noncached(vma->vm_page_prot)) |(L_PTE_WRITE|L_PTE_DIRTY)))))

其中vma為結(jié)合vm_area_struct,在中定義。

應(yīng)用中需要注意以下字段:unsigned long vm_flags應(yīng)該使用標(biāo)志VM_RESERVED,以避免內(nèi)存管理系統(tǒng)將該VMA交換出去。因?yàn)橐獙?duì)DSP寫入數(shù)據(jù),所以必須使用標(biāo)志VM_WRITE說明對(duì)這一段VMA是允許寫入的。pgport_t vm_page_prot指明了對(duì)VMA的保護(hù)權(quán)限。由于利用CS3對(duì)DSP的HPI接口進(jìn)行控制,所以應(yīng)用pgprot_noncached禁止高速緩沖。 通過mmap的構(gòu)建就能夠?qū)?nèi)核空間的數(shù)據(jù)映射到用戶空間去,也就是說可以在用戶空間內(nèi)直接對(duì)地址為0x4000_0000的內(nèi)存空間進(jìn)行操作,而該段空間正是DSP的HPI接口所對(duì)應(yīng)的地址。

在實(shí)際應(yīng)用中,應(yīng)對(duì)CS3的低電平脈寬加以控制,方法是在初始化模塊時(shí)對(duì)ARM的控制寄存器CSR進(jìn)行調(diào)節(jié)。該寄存器的D0-D6確定了ARM外部總線的時(shí)鐘延時(shí)周期,D7為等待周期的使能,D12-D14為數(shù)據(jù)寬度。具體定義如下:AT91_SYS->EBI_SMC2_CSR=0x00003083,即使用16bit數(shù)據(jù)寬度,等待周期為3個(gè)。當(dāng)ARM主頻為180MHz時(shí),CS3低電平脈寬約為150ns。

4.3 驅(qū)動(dòng)程序的系統(tǒng)調(diào)用接口

為對(duì)處于總線地址0x4000_0000的DSP板進(jìn)行操作,首先應(yīng)用open打開設(shè)備,該設(shè)備可以通過mknod建立(本例建立的是/dev/hpi)。然后mmap完成映射。

Int dev_hpi_open(str_HPI *ss)

{size_t length=“1024”;

int i;

if((*ss).hpi_number==0)

{

(*ss).hpi_fd=open(“/dev/hpi”,O_RDWR);

}

if((*ss).hpi_fd==-1)return -1;

(*ss).hpi_mmap_start =mmap(NULL,length,PROT_READ|PROT_WRITE,MAP_SHARED,((*ss).hpi_fd),0); //獲得映射區(qū)內(nèi)存的起始地址

return 0;

} //dev_hpi_open

mmap的作用是將文件內(nèi)容映射到內(nèi)存中。函數(shù)的原形及各參數(shù)定義如下:

*mmap(void *start,size_length

,int prot,int flags,intfd,off_t offset)

start指向欲對(duì)應(yīng)的內(nèi)存地址,size-length的含義是要映射的量;prot代表映射區(qū)域的保護(hù)方式;flag會(huì)影響映射區(qū)域的各種特性;fd為文件描述符;offtoffset代表文件的偏移量,通常設(shè)置為零。

示例程序中的結(jié)構(gòu)體變量ss用來總知各種變量。通過mmap可以獲得映射后的內(nèi)存地址,用(*ss).hpi_mmap_start表示。

一旦獲得了這個(gè)起始地址,就能對(duì)0x4000_0000起始的總線地址進(jìn)行操作,因?yàn)橛成湟呀?jīng)完成,對(duì)(*ss).hpi_mmap_start的操作就是對(duì)0x4000_0000起始的總線地址進(jìn)行操作,而DSP板HPI接口的控制線正是在這個(gè)位置。這樣就實(shí)現(xiàn)了物理地址和用戶空間的轉(zhuǎn)換。

4.4 用戶程序接口部分

下面以HPI接口讀寫中最復(fù)雜的自增讀方式用戶程序?yàn)槔f明用戶接口程序的設(shè)計(jì)過程。要完成自增讀的操作,對(duì)于HPI一側(cè),假設(shè)采用軟件握手的方式。要完成的工作如下:

首先讀HPIC以查詢其中的HRDY位是否為1,如果為1則表示DSP中數(shù)據(jù)已經(jīng)備妥。然后寫HPIA以告訴DSP從什么位置開始進(jìn)行自增讀。接著將HPIC的FETCH位置1以刷新寫入。再讀HPIC以查詢其中的HRDY位是否為1,如果為1則表示DSP中數(shù)據(jù)已經(jīng)備妥。最后從HPID中讀取數(shù)據(jù)。

對(duì)于ARM一側(cè),要對(duì)HPIC、HPID、HPIA寄存器進(jìn)行讀寫必須滿足HPI接口的定義,具體如下(以自增讀為例):

讀前半字節(jié)(高16位)時(shí),HCNTL0=0、HCNTL1=1、HR/W=1、HHWRL=0。

讀后半字節(jié)(低16位)時(shí),HCNTL0=0、HCNTL1=1、HR/W=1、HHWRL=0。

從硬件的原理圖可知,這些HPI的控制口線分別與ARM的一部分地址總線連接。具體為HCNTL0----A2、HCNTL1----A3、HR/W------A4、HHWIL-----A5。

宏定義過程如下:

#define HPIC_R_F(HPI_VA_BASE)*((unsigned long*)((HPI_VA_BASE)+0x00000004+DSPNUMBER))

//讀HPIC第一半字

#define HPIC_R_S(HPI_VA_BASE)*((unsigned long*)((HPI_VA_BASE)+0x0000000C+DSPNUMBER))

//讀HPIC第二半字

等等,只要改變在HPI_BA_BASE基礎(chǔ)上增加的數(shù)字就可以獲取對(duì)控制口線的操作。 在這里HPI_VA_BASE將由映射得到的用戶空間虛擬地址代替,所以如果“自增模式讀HPID第一半字”那么就可求滿足前文提到的HCNTL0=0、HCNTL1=1、HR/W=1、HHWRL=0,也就是要滿足地址位A2=0、A3=1、A4=1、A5=0,所以只要在HPI_VA_BASE的基礎(chǔ)上加0x0000_0006就可以了。要注意的是ARM處理器的地址是32位。所以是加上0x0000_0006而不是0x0000_0018。

另外,還有二點(diǎn)需要說明:

通過改變宏定義中的DSPNUMBER常量可以控制地址總線A6、A7、A8。通過這3個(gè)總線組合并通過簡單地址譯碼電路就可以完成對(duì)多塊DSP板的讀寫。在硬件電路中可以定義為0。

A4(HR/W)同時(shí)還用做SN74LVTH16245的方向控制。讀的時(shí)候A4=1,此時(shí)SN74LVTH16245的數(shù)據(jù)從A-->B;反之,則從B-->A。

下面給出程序中的自增讀和注釋部分:

int dev_hpi_auto1(str_HPI *ss)

{volatile unsigned long DSP_addr_hign_read_auto;//定義各種中間變量

volatile unsigned long dsp_addr_low_read_auto;

volatile unsigned long dsp_data_hign_read_auto;

volatile unsigned long dsp_data_low_read_auto;

volatile unsigned long dsp_add_temp;

int i;

volatile unsigned long data_length;

//---read hpic----the host polls the HPIC for HRDY=“1”

vol

atile unsigned long polltest;

polltest=HPIC_R_F((*ss).hpi_mmap_start);

while((polltest&0x00000008)!=0x00000008)

{polltest=HPIC_R_F((*ss).hpi_mmap_start);

}

dsp_add_temp=((*ss).hpi_dsp_add);//從應(yīng)用程序傳過來的參數(shù),指明希望從DSP的哪一個(gè)地址讀起

dsp_addr_low_read_auto=((dsp_add_temp)&0x0000ffff)+((dsp_add_temp)<<16); //完成數(shù)據(jù)轉(zhuǎn)換

dsp_addr_hign_read_auto=((dsp_add_temp)&0xffff0000)+((dsp_add_temp)>>16);

//---write dsp s addr to HPIA

HPIA_W_F ((*ss).hpi_mmap_start)=(dsp_addr_hign_read_auto);

HPIA_W_S((*ss).hpi_mmap_start)=(dsp_addr_low_read_auto);

//--------write hpic----------to FETCH bit

HPIC_W_F((*ss).hpi_mmap_start)=0xfff8fff8;

HPIC_W_S((*ss).hpi_mmap_start)=0xfff8fff8;

//---read dsp s data from HPID,autoincrement mode

data_length=(*ss).hpi_dsp_data_length;//從應(yīng)用程序傳過來的參數(shù),指明期望讀取多少個(gè)字

for(i=0;i<=data_length;i++)

{//---read hpic----the host polls the HPIC for HRDY=“1” again

polltest=HPIC_R_F((*ss).hpi_mmap_start);

while((polltest&0x00000008)!=0x00000008)

{polltest=HPIC_R_F((*ss).hpi_mmap_start);

}

dsp_data_hign_read_auto =HPID_R_F_A((*ss).hpi_mmap_start); //讀第一個(gè)半字。

dsp_data_low_read_auto =HPID_R_S_A((*ss).hpi_mmap_start); //第二個(gè)個(gè)半字

{(*ss).buffer [(i)]=(dsp_data_hign_read_auto&oxffff0000)+(dsp_data_low_read_auto&0x0000ffff);

//數(shù)據(jù)拼接,放入結(jié)構(gòu)體,回傳給調(diào)用的用戶程序。

}

}

} //dev_hpi_read_auto(str_HPI *ss)

5 結(jié)束語

本文通過一個(gè)實(shí)例說明了如何實(shí)現(xiàn)在Linux操作系統(tǒng)下ARM體系結(jié)構(gòu)的處理器與DSP的數(shù)據(jù)通信。給出了接口部分的硬件處理和部分驅(qū)動(dòng)程序。

在某款智能儀表的研發(fā)過程中,給出一個(gè)簡單的地址譯碼電路對(duì)二塊(或更多)DSP板進(jìn)行交替讀寫,并以自增讀方式進(jìn)行操作,當(dāng)ARM主頻為180MHz,DSP主頻為125MHz時(shí),對(duì)DSP數(shù)據(jù)的讀寫速度可以達(dá)到每毫秒1k的32位字。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19103

    瀏覽量

    228824
  • dsp
    dsp
    +關(guān)注

    關(guān)注

    552

    文章

    7959

    瀏覽量

    347933
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11212

    瀏覽量

    208721
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    SEP3203處理器的FPGA數(shù)據(jù)通信接口設(shè)計(jì)

    多的性能(0.89MIPS/MHz),極大地縮短了軟件執(zhí)行時(shí)間,提高了系統(tǒng)性能。6 總結(jié)本文給出了SEP3203處理器的FPGA數(shù)據(jù)通信接口設(shè)計(jì),限于篇幅,具體的硬件電路和軟件源代碼未能詳細(xì)列出。目前,該
    發(fā)表于 12-05 10:13

    SEP3203處理器實(shí)現(xiàn)FPGA數(shù)據(jù)通信接口設(shè)計(jì)

    ARM7TDMI處理器內(nèi)核,為用戶提供了面向移動(dòng)終端應(yīng)用的豐富外設(shè)、低功耗管理和低成本的外存配置,整個(gè)芯片可以運(yùn)行在75 MHz。數(shù)據(jù)通信系統(tǒng)使用的主要功能模塊如下:20 KB片上零等
    發(fā)表于 04-26 07:00

    ARM與DSP的數(shù)據(jù)通信有什么方法?

    提供良好的人機(jī)交互、任務(wù)管理、網(wǎng)絡(luò)通信等方面功能。因此,發(fā)揮DSP和ARM處理器各自的優(yōu)勢,采用ARM+DSP結(jié)構(gòu)的設(shè)計(jì)方案已成為嵌入式系統(tǒng)
    發(fā)表于 10-31 06:17

    無線氣象數(shù)據(jù)通信系統(tǒng)的組成有什么?

    個(gè)值得研究的課題。文中基于ARM處理器Linux操作系統(tǒng)平臺(tái),借助前端無線傳感網(wǎng)絡(luò)的數(shù)據(jù)
    發(fā)表于 04-06 07:03

    VxWorks操作系統(tǒng)基于ARM處理器的中斷怎么處理?

    本文通過基于S3C44B0X處理器VxWorks嵌入式操作系統(tǒng)的BSP移植,詳細(xì)分析了VxWorks操作系統(tǒng)基于ARM處理器的中斷
    發(fā)表于 04-27 06:28

    如何實(shí)現(xiàn)ARM體系結(jié)構(gòu)的處理器與DSP的數(shù)據(jù)通信?

    如何實(shí)現(xiàn)Linux操作系統(tǒng)ARM體系結(jié)構(gòu)的處理器與DSP的數(shù)據(jù)通信
    發(fā)表于 05-28 06:11

    linux操作系統(tǒng)只能在以arm處理器的pc上運(yùn)行嗎

    linux操作系統(tǒng)只能在以arm處理器的pc上運(yùn)行嗎?可以在英特爾的各種處理器上運(yùn)行嗎?
    發(fā)表于 07-27 15:04

    數(shù)據(jù)通信基礎(chǔ)

    數(shù)據(jù)通信基礎(chǔ) 數(shù)據(jù)通信數(shù)據(jù)通信系統(tǒng) 物理信道的連接方式 數(shù)據(jù)傳輸原理 傳輸介質(zhì)  
    發(fā)表于 04-28 16:27 ?0次下載

    基于ARM的無線氣象數(shù)據(jù)通信系統(tǒng)設(shè)計(jì)

    為了實(shí)現(xiàn)自動(dòng)氣象站無線化、網(wǎng)絡(luò)化的需要,開發(fā)了一種基于ARM、嵌入式Linux和CC2530構(gòu)建的無線氣象數(shù)據(jù)通信系統(tǒng)。對(duì)
    發(fā)表于 06-04 15:35 ?81次下載
    基于<b class='flag-5'>ARM</b>的無線氣象<b class='flag-5'>數(shù)據(jù)通信系統(tǒng)</b>設(shè)計(jì)

    基于ARM-Linux和單片機(jī)的數(shù)據(jù)通信系統(tǒng)設(shè)計(jì)

    基于ARM-Linux和單片機(jī)的數(shù)據(jù)通信系統(tǒng)設(shè)計(jì)
    發(fā)表于 01-04 17:03 ?37次下載

    基于嵌入式Linux和FPGA的數(shù)據(jù)通信系統(tǒng)設(shè)計(jì)_陳鑫旺

    基于嵌入式Linux和FPGA的數(shù)據(jù)通信系統(tǒng)設(shè)計(jì)_陳鑫旺
    發(fā)表于 03-16 10:16 ?2次下載

    基于ARM-Linux的無線氣象數(shù)據(jù)通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    個(gè)值得研究的課題。 文中基于ARM處理器Linux操作系統(tǒng)平臺(tái),借助前端無線傳感網(wǎng)絡(luò)的數(shù)據(jù)
    發(fā)表于 11-30 08:19 ?339次閱讀
     基于<b class='flag-5'>ARM-Linux</b>的無線氣象<b class='flag-5'>數(shù)據(jù)通信</b><b class='flag-5'>系統(tǒng)</b>的設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>

    基于ARM處理器Linux的無線氣象數(shù)據(jù)通信系統(tǒng)

    文中基于 ARM處理器Linux 操作系統(tǒng)平臺(tái),借助前端無線傳感網(wǎng)絡(luò)的數(shù)據(jù)輸入,利用嵌
    發(fā)表于 03-27 10:46 ?1130次閱讀
    基于<b class='flag-5'>ARM</b>微<b class='flag-5'>處理器</b>和<b class='flag-5'>Linux</b>的無線氣象<b class='flag-5'>數(shù)據(jù)通信</b><b class='flag-5'>系統(tǒng)</b>

    Linux操作系統(tǒng)需要什么處理器

    單片機(jī)、Cortex-M、Linux它們和嵌入式有什么區(qū)別? 跑 Linux 操作系統(tǒng)需要什么處理器?ARM9、
    的頭像 發(fā)表于 09-23 11:10 ?6215次閱讀

    基于ARM的無線氣象數(shù)據(jù)通信系統(tǒng)設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于ARM的無線氣象數(shù)據(jù)通信系統(tǒng)設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 10-24 09:48 ?0次下載
    基于<b class='flag-5'>ARM</b>的無線氣象<b class='flag-5'>數(shù)據(jù)通信系統(tǒng)</b>設(shè)計(jì)