![的C語言程序設(shè)計_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/bd690ff4-a376-4966-b411-246880e1bbd6/bd690ff4-a376-4966-b411-246880e1bbd61.gif)
![的C語言程序設(shè)計_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/bd690ff4-a376-4966-b411-246880e1bbd6/bd690ff4-a376-4966-b411-246880e1bbd62.gif)
![的C語言程序設(shè)計_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/bd690ff4-a376-4966-b411-246880e1bbd6/bd690ff4-a376-4966-b411-246880e1bbd63.gif)
![的C語言程序設(shè)計_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/bd690ff4-a376-4966-b411-246880e1bbd6/bd690ff4-a376-4966-b411-246880e1bbd64.gif)
![的C語言程序設(shè)計_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/bd690ff4-a376-4966-b411-246880e1bbd6/bd690ff4-a376-4966-b411-246880e1bbd65.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、DSP的C語言程序設(shè)計一、 為什么要使用C語言對DSP編程?C語言是高級語言,易學(xué)易用。C語言的編程效率極高,易于調(diào)試。C語言的可移植性好。二、 C程序的結(jié)構(gòu)及組成完整的C程序是由一個主函數(shù)main()和其它的子函數(shù)組成的,每一個子函數(shù)完成特定的功能。DSP的C語言的入口地址固定為c_int00,在rts.lib中定義。C語言支持豐富的數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu),在ccs集成開發(fā)環(huán)境中,為C語言提供了完整的支持硬件的底層函數(shù)庫和支持算法的DSP函數(shù)庫。在使用C語言的庫函數(shù)時,在工程中必須包括相應(yīng)的函數(shù)庫和rts.lib運行時支持庫。下面是一般C語言程序的結(jié)構(gòu)和組成框架。一般C程序的結(jié)構(gòu)如下:/ #in
2、clude包含語句定義程序中使用的函數(shù)庫對應(yīng)的. h頭文件#include “函數(shù)庫1”#include <函數(shù)庫2>#include “函數(shù)庫3”/ #define 定義程序中所有的宏替換#define 宏替換名替換內(nèi)容/本程序的內(nèi)部函數(shù)聲明,這些函數(shù)一般放在main()函數(shù)的后面函數(shù)類型 函數(shù)名(函數(shù)參數(shù)列表);/中斷服務(wù)程序(函數(shù))的聲明interrupt void function_name (void);/全局變量聲明變量類型全局變量名;/主函數(shù)main()void main(void)/局部變量定義for(;)/調(diào)用子函數(shù)來處理數(shù)據(jù)/完成數(shù)據(jù)的輸入和輸出功能/本程序的內(nèi)
3、部函數(shù)函數(shù)類型 函數(shù)名(函數(shù)參數(shù)列表)/本函數(shù)的局部變量定義/本函數(shù)中的算法/程序結(jié)束三、 數(shù)據(jù)類型C語言支持的數(shù)據(jù)類型很豐富,包括字符型、短整型、整型、長整型、枚舉型、浮點型、雙精度浮點型、長雙精度浮點型、數(shù)據(jù)指針及程序指針,要注意的是由于54x DSP是16位的處理器,它的字符型數(shù)據(jù)的長度是16位的,另外注意比較各種數(shù)據(jù)類型的長度、內(nèi)容以及所表示的值的范圍大小,可以發(fā)現(xiàn)短整型和整型數(shù)據(jù)類型是一致的,浮點型、雙精度浮點型和長雙精度浮點型是一致的,這是因為54x DSP的C語言編譯器為了適應(yīng)不同的編程習(xí)慣而這樣定義的,所以實際使用中可以將常用的數(shù)據(jù)類型進(jìn)行適當(dāng)簡化,即將短整型、整型統(tǒng)一為整型(
4、int),將各種浮點類型統(tǒng)一為浮點型(float)。另外,為了簡化書寫,用戶可以自定義數(shù)據(jù)類型,例如在type.h中的定義:typedef float f32; /浮點型typedef long s32; /有符號的長整型typedef int s16; /有符號的整型typedef unsigned char u8; /無符號的字符型typedef unsigned int u16; /無符號的整型typedef unsigned long u32; /無符號的長整型詳細(xì)內(nèi)容請參考頭文件type.h。四、 頭文件中存儲器映射寄存器(MMR)的定義和訪問對于DSP的軟件設(shè)計,首先必須明了DSP
5、的可用片內(nèi)資源及其訪問方法,包括DSP的片上存儲器映射寄存器、程序存儲器、數(shù)據(jù)存儲器、I/O空間的尋址范圍、尋址方式,片上外設(shè)的寄存器定義、工作流程以及編程控制方法。54X DSP的片內(nèi)寄存器資源是通過兩個頭文件Regs.h 和Regs54x.h進(jìn)行定義的,這些頭文件位于 c:tic5400dsk5402include目錄下,在這兩個文件中定義了C54x DSP中涉及到的所有寄存器及其所包含的控制和狀態(tài)比特,這些定義是使用宏替換定義#define進(jìn)行的,例如:串口控制寄存器中接收移位寄存器滿標(biāo)志位的比特域定義:# define RSRFULL 13 /RSRFULL標(biāo)志比特位于寄存器的bit1
6、3位置#define RSRFULL_SZ 1 /此標(biāo)志的長度為1個比特我們只需要了解這些寄存器定義,在編程過程中直接使用而不需要自己來重新定義。Reg54xx.h是對Regs.h的擴(kuò)展和補(bǔ)充,并且Reg54xx.h頭文件包含Regs.h。注意#define的語句中“”是續(xù)行符。在Regs.h和Regs54xx.h中還定義了寄存器的訪問方式宏定義,如: REG_READ(addr); /寄存器讀 REG_WRITE(addr,val); /寄存器寫 RESET_BIT(addr,bit); /bit位清零 GET_BIT(addr,bit); /取得bit位的值 SET-BIT(addr,bi
7、t); /bit位置1詳細(xì)內(nèi)容請參考c:tic5400dsk5402include目錄下的頭文件Regs.h 和Regs54x.h。在頭文件中,采用了以下幾種方法對DSP內(nèi)部的存儲器映射寄存器(MMR)進(jìn)行定義和訪問: 使用#define宏定義語句定義MMR的地址,有兩種定義方法:統(tǒng)一定義法:如MCBSP串口接收寄存器的定義:#define DRR2_ADDR(port)(port? 0x40:0x20)#define DRR1_ADDR(Port)(port?0x41:0x21)它把MCBSP0和MCBSP1的串口接收寄存器合在一起進(jìn)行了定義,通過port參數(shù)進(jìn)行區(qū)分。單獨定義法:#defi
8、ne DRR20_ADDR 0x20#define DRR10_ADDR 0x21#define DRR21_ADDR 0x40#define DRR11_ADDR 0x41分別將MCBSP0和MCBSP1的串口接收寄存器進(jìn)行了定義。統(tǒng)一定義法定義的寄存器用于對二者同時進(jìn)行訪問時比較方便,單獨定義法定義的寄存器用于單獨訪問某個外設(shè)時比較方便。訪問時使用“指針前綴+地址”的方式,例如:* (volatile unsigned int *) DXR1_ADDR(Port)=value;/寫DXR1寄存器variable=* (volatile unsigned int *) DRR1_ADDR(P
9、ort);/讀DRR1寄存器使用宏定義函數(shù)進(jìn)行訪問。在regs.h和reg54xx.h頭文件中,定義了如下的宏函數(shù),可以使用它們對寄存器或存儲器進(jìn)行訪問。 REG_READ(addr);/寄存器讀,addr為寄存器地址 REG_WRITE(addr,value);/寄存器寫,addr為寄存器地址,value為要寫入的值例如:REG_READ(DDR1_ADDR (port));/讀DRR1寄存器REG_WRITE(DXR1_ADDR (port),value);/寫DXR1寄存器,value為要寫入的值 直接使用* (volatile unsigned int *) +地址的指針方式定義寄存器
10、,其中“volutile”關(guān)鍵字用來防止C編譯器對本條語句進(jìn)行優(yōu)化。 例如:#define DRR20 * (volatile unsigned int *)0x200x20是寄存器的地址,相當(dāng)于&p,(volatile unsigned int *)0x20相當(dāng)于一個地址變量p,* (volatile unsigned int *)0x20相當(dāng)于指針數(shù)據(jù)類型。訪問時直接使用即可,例如:DXR20=value;/寫寄存器DXR20Variable=DRR20;/讀寄存器DRR20在頭文件中,習(xí)慣上使用 “寄存器名+_+ ADDR”表示寄存器的地址宏定義,而是用寄存器名表示寄存器指針方式
11、的宏定義,請注意區(qū)分,并在實際編程時遵守這一習(xí)慣。由于54X DSP的存儲器映像寄存器在頭文件Regs.h 和Regs54x.h中已經(jīng)按方式進(jìn)行了定義,所以推薦使用方式訪問DSP的存儲器映像寄存器,不需要自己重新進(jìn)行宏替換定義。對于RAM存貯器可使用變量、數(shù)據(jù)指針、結(jié)構(gòu)、聯(lián)合、枚舉等方式進(jìn)行訪問。其它等效的定義和訪問方式除了的定義和訪問方法之外,還有一些等效的定義和訪問方法,這些方法不建議大家使用,只需要進(jìn)行了解。定義:#define BSPC0 (volatile unsigned int*)0x22使用: *BSPC0=value;/寫寄存器 reg_value=*BSPC0;/讀寄存器五
12、、 DSP I/O空間的訪問方式1:在C語言中訪問DSP的I/O空間借助于關(guān)鍵字ioport來進(jìn)行,注意,此關(guān)鍵字只為DSP 54xx的編譯器所識別和使用。在54xx中其定義格式為: ioport unsigned int porthex_num其中的import和port均為關(guān)鍵字,unsigned int 是I/O數(shù)據(jù)類型,在54xx中,I/O空間共有64K字,所以數(shù)據(jù)類型只能是char 、short、 int等16位的類型。一般使用格式如下:volatile ioport unsigned int portxx;/xx為16進(jìn)制(hex)格式地址portxx=value;/寫I/O端口v
13、ariable=portxx;/讀I/O端口例如:當(dāng)訪問I/O空間在200H地址時,可以采取以下定義形式:ioport unsigned int port200;unsigned int test;test=port200; /讀I/O端口,port200作為一個變量使用port200=test; /寫I/O端口,port200作為一個變量使用更進(jìn)一步地,可以使用ioport關(guān)鍵字和宏替換來定義I/O地址。例如:volatile ioport unsigned int portxx;/xx為16進(jìn)制(hex)格式地址#define portA portxx/使用宏替換對portxx端口進(jìn)行進(jìn)一
14、步定義portA=value;/寫I/O端口varich=portA;/讀I/O端口例如,在board.h中對cpld擴(kuò)展I/O寄存器的定義如下:/port declarations used to access CPLD registersvolatile ioport u16 port0;volatile ioport u16 port1;volatile ioport u16 port2;volatile ioport u16 port3;volatile ioport u16 port4;volatile ioport u16 port5;volatile ioport u16 por
15、t6;volatile ioport u16 port7;#define CPLD_CTRL1_REG port0#define CPLD_STAT_REG port1#define CPLD_DMCTRL_REG port2#define CPLD_DBIO_REG port3#define CPLD_CTRL2_REG port4#define CPLD_SEM0_REG port5#define CPLD_SEM1_REG port6#define CPLD_SLIC_REG port7方式2:借助于庫函數(shù)portRead(port)和portWrite(port)對一段連續(xù)I/O端口進(jìn)
16、行讀寫在portio.h頭中定義了portRead()、portWrite()函數(shù)。/*/* Copyright (c) Texas Instruments, Incorporated 2000 */*/*/*/* portio.h - Header file for portio_.asm */* */* */* FUNCTIONS: */* */* portRead() */* portWrite() */* */* */* STATIC FUNCTIONS: */* None */* */* */* GLOBAL VARIABLES DEFINED */* */* */ /*/#ifnd
17、ef _PORTIO_H#define _PORTIO_H#include <type.h>/*/* s16 portRead(u16 port) */* */ /* This routine reads a word from the specified port. */* */* Parameters: */* - port - port address (HEX) */* */* Return: */* - returns value read from port. */* */* Notes: */* */ /*/s16 portRead(u16 port);/*/* po
18、rtWrite(u16 port, s16 value) */* */ /* This routine writes a word to the specified port. */* */* Parameters: */* - port - port address (HEX) */* - value - 16 bit word to write. */* */* Return: */* - none */* */* Notes: */* */ /*/void portWrite(u16 port, s16 value);#endif /* end of #ifndef _PORTIO_H
19、*/使用時,先使用宏替換或枚舉定義I/O端口的地址,然后使用portRead()和portWrite()函數(shù)訪問I/O端口例如:#include portio.h /所需要的函數(shù)包含在portio.h中#define portA 0x00/使用宏替換定義I/O端口的地址#define portB 0x01或typedef enum/使用枚舉定義I/O端口的地址portA=0x00;portB=0x01; cpldReg, *pcpldReg. Variable=portRead(portA);/讀I/O端口 portwrite (portB)=Value;/寫I/O端口四、CCS中與C54xx
20、相關(guān)的頭文件CCS中與C54xx相關(guān)的所有頭文件位于C:tic5400dsk5402include目錄下,可以分為兩類:一類頭文件對DSP本身及外部接口電路所擁有的硬件資源進(jìn)行描述定義,如Regs.h 、Regs54xx.h。另一類頭文件對這些資源的設(shè)置和使用的接口函數(shù)庫進(jìn)行了描述,使用戶可以不關(guān)心底層的驅(qū)動程序,直接調(diào)用庫函數(shù)即可實現(xiàn)對硬件的控制,這些往往都是硬件開發(fā)人員所完成的,如CCS中的board.h 和mcbsp54.h.c5400cgtoolsinclude目錄與c5400dsk5402include目錄中的頭文件類型不同。c5400cgtoolsinclude目錄下是5000系列
21、DSP的通用頭文件,與硬件無關(guān)。c5400dsk5402include目錄下是硬件專用頭文件,包括DSP芯片和dsk板。頭文件和特定的庫文件相關(guān)聯(lián),c5400cgtoolsinclude目錄下的頭文件與運行時支持庫rts.lib相關(guān)聯(lián),c5400dsk5402include目錄中的部分頭文件與dsk板庫文件drv5402.lib和dsk5402.lib相關(guān)聯(lián)。drv5402.lib和dsk5402.lib函數(shù)庫在c5400dsk5402lib目錄下,dsk5402.lib是一個主要的庫函數(shù),內(nèi)部使用了drv5402.lib。五、關(guān)于DSP程序中段的定義一個程序中到底有哪些段定義?一般地,對于固
22、定的硬件應(yīng)用系統(tǒng),其存儲器的配置也較為固定,存儲器的配置需要設(shè)計者自己定義,但理解了基本的段如:.text 、.data、 .stack 、.bss之外,用C語言編程時,對程序中所使用的段并不十分清楚,可以在寫 .CMD文件時,只將MEMORY部分寫出,而暫時省略掉SECTIONS定義,CCS集成開發(fā)環(huán)境會自動生成 .map文件,其中詳細(xì)記錄了存儲器和段的配置和使用情況、各個段的絕對地址和重新分配后的全局符號,根據(jù)其中的段的描述,我們反過來再重新修改 .CMD文件,進(jìn)行合理地段到存儲器的分配。DSP C語言開發(fā)環(huán)境所必有的段定義: ·Cinit;C語言初始化段,包括初始化變量和常量表
23、·text;代碼段,包括可執(zhí)行代碼、字符串和常量·Vectors;中斷向量段·stack;堆棧段,為C的系統(tǒng)堆棧分配存儲空間,用于變量的傳遞·trap·const ;包括字符串常量和以const關(guān)鍵字定義的常量·data;數(shù)據(jù)段·bss;保留全局和靜態(tài)變量空間·cio·switch;為 .const語句建立的表格·system;為動態(tài)存儲器函數(shù)malloc、calloc、realloc分配存儲空間DSP的C語言程序設(shè)計實驗一、 分析工程blink.pjt中的程序blink.c,了解C語言程序的一
24、般結(jié)構(gòu)以及頭文件和函數(shù)庫的關(guān)系,并解讀頭文件的內(nèi)容二、 修改程序blink.c,使三個發(fā)光二極管指示燈依次流水點亮熄滅例:編寫程序blink.c主要說明:DSP C程序編制的流程函數(shù)庫中函數(shù)的使用(例如Board.h)Project的建立、編譯、調(diào)試、執(zhí)行CMD文件的編寫試重新定義 .CMD文件,重新對project進(jìn)行編譯運行。自編寫CODEC程序,.h頭文件在c5400dsk5402include目錄下,頭文件對應(yīng)的函數(shù)在c5400dsk5402libdrv5402.lib和dsk5402.lib 中。 dsk5402是一個主要的庫函數(shù),內(nèi)部使用了drv5402.lib。5402上有兩個多
25、通道緩沖串行口(MCBSP0和MCBSP1),其寄存器定義位于頭文件Regs.h和Reg54xx.h當(dāng)中。 如果在File菜單中頭“l(fā)oad program”項說明目標(biāo)報未正常連接,注意觀察 條提示:VECS:0080h length=0080h /*internetPRAM:orgin=7600h,length=8000h program Ran */Scratch RAN5402 DSP 程序寄存儲藏256K 如同加載執(zhí)行 DSP 5402 64K(更多)程序存儲器空間 64K(更多)數(shù)據(jù)存儲器空間 64K I/O存儲器空間可以由:片上ROM,片上RAN,片外floah,片外RAN構(gòu)成取決
26、定于:MP/MC OVLY FLASHENB,當(dāng)map在外部存儲器時,由于FLASHE決定訪問FLAH=1還是外部RAN=0,OVLY FLASH 可以由片上RAM、RAN,片外flash RAM構(gòu)成取決于DROM DMSEL,當(dāng)map外部存儲器空間時,由DMSEL決定是訪問FLASH/RAM(DMSEL=0)還是子報存儲器,F(xiàn)LASH14個等待周期;RAM1個等待周期。 C5402 Device Simulater; Mp/mc=1 Ovly=1 DRAM=05402 DSK load program 后:mp/mc=1 OVLY=1 DROM=0運行程序后:mp/mc=0 OVLY=1 D
27、ROM=0與管腳一致,suwsr等待狀態(tài)寄存器D844 1 1 0 1 1 0 0 0 01 00 0 100 I/O空間 高32K 低32K 高32K 低32K 5 4 1 0 4MCBSP串口以及AD50的初始化,AD50初始化包括以下步驟:1 打開CODEC 獲取句柄(指針)2 設(shè)置AD轉(zhuǎn)換的工作方式3 設(shè)置DA轉(zhuǎn)換的工作方式4 設(shè)置模擬輸入增益5 設(shè)置模輸出增益6 設(shè)置取樣率 board init Flagcade init Flag code_setup_serial_port 設(shè)置串口 code_reset codee復(fù)位 cline_reset code_disable_tx_i
28、sr code_disable_vx_isr code_write_regs code_setup_serical_port serial_reset D:DSPTEST、DTKfftdee5416.c 把Project中所用到的所有頭文件、庫文件、包含文件均方向在Project目錄下,解析此工程,了解庫函數(shù)的定義與源程序,Code 的操作 串口(MCBSP)的操作MCBSP:TMS320C5000系統(tǒng)DSP系統(tǒng)設(shè)計與開發(fā)實例,熟悉多通道緩沖串口的結(jié)構(gòu)組成以及各個寄存器的內(nèi)容工作方式,編程方法:MCBSP的初始化串口復(fù)位(發(fā)送復(fù)位、接收復(fù)位)設(shè)置所有寄存器的值SPCR1、SPCR2、RCR1、
29、RCR2、XCR1、XCR2、SPGR1、SPGR2、PCRCODE (AD50)的初始化 CODEC 復(fù)位 設(shè)置線路輸入通道增益 設(shè)置輸出增益 設(shè)置模擬工作方式輸入選擇LINE 設(shè)置數(shù)據(jù)部分的運行模式 設(shè)置電源模式 設(shè)置數(shù)據(jù)格式,CODEC工作于主方式 設(shè)置波樣率 啟動CODEC另外:MCBSP的初始化及使用參考Csl_Mcbsp.h頭文件的有關(guān)函數(shù)。MCBSP的初始化:接收器復(fù)位,SPCR1的D0=0發(fā)送器復(fù)位,SPCR2的D0=0設(shè)置SPCR1寄存器:(0X007)(D15禁止數(shù)字環(huán)回:DLB=0(D14D13)接收數(shù)據(jù)符號擴(kuò)展和調(diào)整方式:=00右對齊MCBS零填充(D12D11)時鐘停
30、止模式: =00時鐘停止模式營業(yè)(D10D08)保留 (D7)DX31腳延遲功能 =0 關(guān)閉DX3腳延時功能(D6)保留(D5D4)接收中斷模式 =00 當(dāng)RRDY有效時,產(chǎn)生接收中斷(D3)接收幀同步錯誤標(biāo)志 =0 不檢測同步錯誤(D2)接收移位寄存滿過速錯誤標(biāo)志 =1接收移位寄存器滿(D1)接收就緒標(biāo)志 =1接收器就緒(D0)接收器復(fù)位 =1串口接收使能(接收器停止復(fù)位)設(shè)置RCR1寄存器(接收控制寄存器官)=0x0040AD50 寄存器的初始化:(按ENTER功能)CODEC 復(fù)位:Control REG:ster1的設(shè)置ADC工作模式為15bit模式 control Register
31、2的 D4=0設(shè)置DAC的工作模式為15bit模式 control Register 1的 D0=0 設(shè)置DODEC的模擬輸入增益6db: control Register 4的 D3D2=01設(shè)置DODEC的模擬輸入增益-6db: control Register 4的 D1D0=01設(shè)置DODEC的取樣率為8000HZ: control Register 4的 D604=N=MCLK 128×8000AD50按寄存器初始化AD50按功能進(jìn)行初始化 在CODE.h頭文件中,定義了與CODEC(AD50)功能相關(guān)的枚舉變量,除了可以調(diào)用CODE.h中提供的函數(shù)之外,我們可以利用這些枚
32、舉變量重新編寫自己的函數(shù),用枚舉變量相或產(chǎn)生所需要的寄存器初始化值。片上外設(shè)寄存器的初始化方法:有兩種,一是按要求填表,然后將結(jié)果直接寫入寄存器;二是用寄存器各部分的宏定義相或,如MCBSP54.h各寄存器比特的宏定義。報卡初始化brdinit(100);初始化的內(nèi)容;#8806h29單元 OHXPC #0a0hPMSTC1KnD1=0 設(shè)置CPU的工作頻率C1K2=0 C1K3=1 設(shè)置等待周期SWR=D844H 設(shè)置報卡初始化標(biāo)志 SXM=1 INTM=1 *zch=*zch or ox2c 對I/O端口0、4、2、3、5、6進(jìn)行初始化DSP技術(shù)及其應(yīng)用常見問題.cmd文件的格式及編寫.c
33、md文件的編寫?硬件確定存貯器配置就基本確定了嗎?5402 DSP存儲器配置如何?是64K RAM 、256k Flash嗎?Boot loader 過程如何察看函數(shù)庫內(nèi)容,如board.h頭文件中的函數(shù)?在程序調(diào)試中,打開匯編窗口,使用斷點、單步方式進(jìn)行調(diào)試。DSP從復(fù)位到運行,MP/MC、 OVLY 、DROM位的變化?如何知道C程序中有哪些段定義?編譯時生成并察看.map文件。AD50的一次通信二次通信如何用軟件實現(xiàn)?AD50、AIC23兩種codec的操作是否一致?是否可調(diào)用一個庫函數(shù)?不一致。DSK板的初始化包含哪些內(nèi)容?CSL庫是否只能用于dsp_bios編程模式?否,可以在非dsp_bios環(huán)境下調(diào)用CSL庫。AD50的Primary、Second通信對應(yīng)于MCBSP串口,是如何實現(xiàn)的分兩次寫,使用了宏函數(shù)MCBSP_DXR12.write().嗎?5402DSK板上集成了一個并口仿真器,它仿真時裝載程序是使用的JTAG接口,還是HPI接口?使用DSK并口仿真器調(diào)試DSP時,各控制比特的設(shè)置以及memory的map如何?此時是否為HPI Boot loader方式?并口仿真與HPI引導(dǎo)是否為一回事?不是,通過JTAG下載調(diào)試程序,程序運行后暫停,此時MP/MC=0,OVLY=1,DROM=0。I/O空間cpld寄存器如何觀察?ram中數(shù)據(jù)可讀可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 懷化2024年湖南中坡國家森林公園管理處選調(diào)2人筆試歷年參考題庫附帶答案詳解
- 2025年模切燙印兩用機(jī)項目可行性研究報告
- 2025至2031年中國微調(diào)雙燈行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國安全控制芯片行業(yè)投資前景及策略咨詢研究報告
- 2025年塑料四輥壓延機(jī)項目可行性研究報告
- 2025至2031年中國乳膠漆調(diào)色機(jī)行業(yè)投資前景及策略咨詢研究報告
- 2025年人體工學(xué)型電腦臺項目可行性研究報告
- 2025至2030年鼓式制動器項目投資價值分析報告
- 2025至2030年鋼板清洗劑項目投資價值分析報告
- 2025至2030年中國金屬自攻螺釘數(shù)據(jù)監(jiān)測研究報告
- 2023年上海市秋考語文真題試卷含答案(整理版)
- 2023年心理咨詢師之心理咨詢師基礎(chǔ)知識考試題庫附完整答案【有一套】
- 路緣石安裝一級安全交底
- 一級建造師繼續(xù)教育最全題庫及答案(新)
- LS/T 1226-2022糧庫智能通風(fēng)控制系統(tǒng)
- 直線加速器專項施工方案
- 聯(lián)苯二氯芐生產(chǎn)工藝及產(chǎn)排污分析
- 儲能設(shè)備項目采購供應(yīng)質(zhì)量管理方案
- 美國房地產(chǎn)市場特征、框架與周期演變
- 光伏發(fā)電工程施工組織設(shè)計施工工程光伏發(fā)電工程光伏發(fā)電施工組織設(shè)計
- 民政局離婚協(xié)議書模板(4篇)
評論
0/150
提交評論