?? system.h
字號:
#ifndef DSP320VC5000_H //VC5400 的寄存器定義
#define DSP320VC5000_H
//這是芯片的寄存器定義,可以添加,也可以整體更換
//**** Map Interrupt Registers to Data Page Addresses
#define IMR 0x0000 // interrupt mask reg
#define IFR 0x0001 // interrupt flag reg
// 0x0002~0x0005 Reserved for testing
#define ST0 0x0006 // CPU status reg0
#define ST1 0x0007 // CPU status reg1
#define A 0x0008 // CPU Accumulator A low word (15–0)
#define AL 0x0008 // CPU Accumulator A low word (15–0)
#define AH 0x0009 // CPU Accumulator A high word (31–16)
#define AG 0x000A // CPU Accumulator A guard bits (39–32)
#define B 0x000B // CPU Accumulator B low word (15–0)
#define BL 0x000B // CPU Accumulator B low word (15–0)
#define BH 0x000C // CPU Accumulator B high word (31–16)
#define BG 0x000D // CPU Accumulator B guard bits (39–32
#define TREG 0x000E // CPU temporary reg
#define TRN 0x000F // CPU transition reg
#define AR0 0x0010 // CPU auxiliary reg0
#define AR1 0x0011 // CPU auxiliary reg1
#define AR2 0x0012 // CPU auxiliary reg2
#define AR3 0x0013 // CPU auxiliary reg3
#define AR4 0x0014 // CPU auxiliary reg4
#define AR5 0x0015 // CPU auxiliary reg5
#define AR6 0x0016 // CPU auxiliary reg6
#define AR7 0x0017 // CPU auxiliary reg7
#define SP 0x0018 // CPU stack pointer reg
#define BK 0x0019 // CPU circular buffer size reg
#define BRC 0x001A // CPU block repeat counter
#define RSA 0x001B // CPU block repeat start address
#define REA 0x001C // CPU block repeat end address
#define PMST 0x001D // processor mode status reg
#define XPC 0x001E // extended program page reg
//0x001Fh Reserved
//************************************************
//*****Peripheral Memory-Mapped Registers*******
//************************************************
//******** Map McBSP0 Registers to Data Page Addresses
#define McBSP0_DRR2 0x0020 // McBSP0 data Rx reg2
#define McBSP0_DRR1 0x0021 // McBSP0 data Rx reg1
#define McBSP0_DXR2 0x0022 // McBSP0 data Tx reg2
#define McBSP0_DXR1 0x0023 // McBSP0 data Tx reg1
//******** Map Timer0 Registers to Data Page Addresses
#define TIM 0x0024 // timer0 reg
#define PRD 0x0025 // timer0 period reg
#define TCR 0x0026 // timer0 control reg
//0x0027h Reserved
#define SWWSR 0x0028 // software wait state reg
#define BSCR 0x0029 // bank switching control reg
//0x002a Reserved
#define SWCR 0x002B // software wait state control reg
//******** Map HPI Registers to Data Page Addresses
#define HPIC 0x002C // HPI control reg
//0x002d~0x002f Reserved
//******** Map Timer1 Registers to Data Page Addresses
#define TIM1 0x0030 // timer1 reg
#define PRD1 0x0031 // timer1 period reg
#define TCR1 0x0032 // timer1 control reg
//0x0033~0x0037h Reserved
#define McBSP0_SPSA 0x0038 // McBSP0 sub bank addr reg
#define McBSP0_SPSD 0x0039 // McBSP0 sub bank data reg
//0x003a~0x003b Reserved
//******** Map General IO Port (Pins) Registers to Data Page Addresses
#define GPIOCR 0x003C // GP I/O Pins Control Reg
#define GPIOSR 0x003D // GP I/O Pins Status Reg
//0x003e~0x003f Reserved
//******** Map McBSP1 Registers to Data Page Addresses
#define McBSP1_DRR2 0x0040 // McBSP1 data Rx reg2
#define McBSP1_DRR1 0x0041 // McBSP1 data Rx reg1
#define McBSP1_DXR2 0x0042 // McBSP1 data Tx reg2
#define McBSP1_DXR1 0x0043 // McBSP1 data Tx reg1
//0x0044~0x0047h Reserved
#define McBSP1_SPSA 0x0048 // McBSP1 sub bank addr reg
#define McBSP1_SPSD 0x0049 // McBSP1 sub bank data reg
//0x004a~0x0053h Reserved
//******* Map DMA Registers to Data Page Addresses
#define DMPREC 0x0054 // DMA channel priority and ebanle control
#define DMSA 0x0055 // DMA subbank address reg
#define DMSDI 0x0056 // DMA subbank data reg with autoincrement
#define DMSDN 0x0057 // DMA subbank data reg without autoincrement
#define CLKMD 0x0058 // clock mode reg
//0x0059~0x005fh Reserved
//************************************************************************
//** Sub Bank Address Definations
//************************************************************************
//******** McBSP Sub Bank Register Addresses
#define SPCR1 0x0000 // McBSP Ser Port Ctrl Reg1
#define SPCR2 0x0001 // McBSP Ser Port Ctrl Reg2
#define RCR1 0x0002 // McBSP Rx Ctrl Reg1
#define RCR2 0x0003 // McBSP Rx Ctrl Reg2
#define XCR1 0x0004 // McBSP Tx Ctrl Reg1
#define XCR2 0x0005 // McBSP Tx Ctrl Reg2
#define SRGR1 0x0006 // McBSP Sample Rate Gen Reg1
#define SRGR2 0x0007 // McBSP Sample Rate Gen Reg2
#define MCR1 0x0008 // McBSP Multichannel Reg1
#define MCR2 0x0009 // McBSP Multichannel Reg2
#define RCERA 0x000A // McBSP Rx Chan Enable Reg PartA
#define RCERB 0x000B // McBSP Rx Chan Enable Reg PartB
#define XCERA 0x000C // McBSP Tx Chan Enable Reg PartA
#define XCERB 0x000D // McBSP Tx Chan Enable Reg PartB
#define PCR 0x000E // McBSP Pin Ctrl Reg
//******* DMA Sub Bank Register Addresses
#define DMSRC0 0x0000 // DMA channel0 source address reg
#define DMDST0 0x0001 // DMA channel0 destination address reg
#define DMCTR0 0x0002 // DMA channel0 element count reg
#define DMSFC0 0x0003 // DMA channel0 sync sel & frame count reg
#define DMMCR0 0x0004 // DMA channel0 transfer mode cntrl reg
#define DMSRC1 0x0005 // DMA channel1 source address reg
#define DMDST1 0x0006 // DMA channel1 destination address reg
#define DMCTR1 0x0007 // DMA channel1 element count reg
#define DMSFC1 0x0008 // DMA channel1 sync sel & frame count reg
#define DMMCR1 0x0009 // DMA channel1 transfer mode cntrl reg
#define DMSRC2 0x000A // DMA channel2 source address reg
#define DMDST2 0x000B // DMA channel2 destination address reg
#define DMCTR2 0x000C // DMA channel2 element count reg
#define DMSFC2 0x000D // DMA channel2 sync sel & frame count reg
#define DMMCR2 0x000E // DMA channel2 transfer mode cntrl reg
#define DMSRC3 0x000F // DMA channel3 source address reg
#define DMDST3 0x0010 // DMA channel3 destination address reg
#define DMCTR3 0x0011 // DMA channel3 element count reg
#define DMSFC3 0x0012 // DMA channel3 sync sel & frame count reg
#define DMMCR3 0x0013 // DMA channel3 transfer mode cntrl reg
#define DMARC4 0x0014 // DMA channel4 source address reg
#define DMDST4 0x0015 // DMA channel4 destination address reg
#define DMCTR4 0x0016 // DMA channel4 element count reg
#define DMSFC4 0x0017 // DMA channel4 sync sel & frame count reg
#define DMMCR4 0x0018 // DMA channel4 transfer mode cntrl reg
#define DMSRC5 0x0019 // DMA channel5 source address reg
#define DMDST5 0x001A // DMA channel5 destination address reg
#define DMCTR5 0x001B // DMA channel5 element count reg
#define DMSFC5 0x001C // DMA channel5 sync sel & frame count reg
#define DMMCR5 0x001D // DMA channel5 transfer mode cntrl reg
#define DMSRCP 0x001E // DMA source prog page address
#define DMDSTP 0x001F // DMA destination prog page address
#define DMIDX0 0x0020 // DMA element index address reg0
#define DMIDX1 0x0021 // DMA element index address reg1
#define DMFRI0 0x0022 // DMA frame index reg0
#define DMFRI1 0x0023 // DMA frame index reg1
#define DMGSA 0x0024 // DMA global source address reload reg
#define DMGDA 0x0025 // DMA global destination address reload reg
#define DMGCR 0x0026 // DMA global counter reload reg
#define DMGFR 0x0027 // DMA global frame count reload reg
#endif
/***************定義編譯環(huán)境的宏*****************/
#ifndef SYSTEM_H //定義編譯環(huán)境的宏
#define SYSTEM_H
#define UCHAR unsigned char
#define UINT16 unsigned int
#define UINT32 unsigned long
#define TRUE 1
#define FALSE 0
#define uchar unsigned char
#define uint16 unsigned int
#define uint32 unsigned long
#define true 1
#define false 0
//請在此處添加其它編譯環(huán)境定義
#endif
#ifndef IOAPP_H //定義實驗系統(tǒng)的宏,它們與掛箱上的地址譯碼器(CPLD)有關(guān)
#define IOAPP_H
ioport UINT16 port0800; //定義ECS0的空間范圍:0x0800--0x09ff
ioport UINT16 port0801;
ioport UINT16 port0802;
ioport UINT16 port0803;
ioport UINT16 port0804;
ioport UINT16 port0805;
ioport UINT16 port0806;
ioport UINT16 port0807;
ioport UINT16 port0600; //定義ECS1的空間范圍:0x0600--0x07ff
ioport UINT16 port0601;
ioport UINT16 port0602;
ioport UINT16 port0603;
ioport UINT16 port0604;
ioport UINT16 port0605;
ioport UINT16 port0606;
ioport UINT16 port0607;
ioport UINT16 port0400; //定義ECS2的空間范圍:0x0400--0x05ff
ioport UINT16 port0401;
ioport UINT16 port0402;
ioport UINT16 port0403;
ioport UINT16 port0404;
ioport UINT16 port0405;
ioport UINT16 port0406;
ioport UINT16 port0407;
ioport UINT16 port0200; //定義ECS3的空間范圍:0x0200--0x03ff
ioport UINT16 port0201;
ioport UINT16 port0202;
ioport UINT16 port0203;
ioport UINT16 port0204;
ioport UINT16 port0205;
ioport UINT16 port0206;
ioport UINT16 port0207;
#define CS0 port0800
#define CS1 port0600
#define CS2 port0400
#define CS3 port0300
//請在此處添加其它實驗系統(tǒng)的宏定義
#endif
#ifndef SYS_FUNTION_H
#define SYS_FUNTION_H
//--------------------------------------------------------------------
// 函數(shù)名稱 : void cpu_init(void)
// 函數(shù)說明 : 初始化CPU
// 輸入?yún)?shù) : 無
// 輸出參數(shù) : 無
//--------------------------------------------------------------------
/*
void cpu_init(void)
{
asm(" nop ");
asm(" nop ");
asm(" nop ");
//-------------------------------------------------------------------
//CLKMD DEFINITIONS:
// PLLMUL (bit 15-12) - 0000 PLL multiplier = 0 (mult by 1)
// PLLDIV (bit 11) - 0 PLL divider = 0 (div by 1)
// PLLCOUNT (bit 10-3)- 11111111 PLL counter set to max
// PLLONOFF (bit 2) - 1 PLL on
// PLLNDIV (bit 1) - 1 Select PLL mode
// PLLSTATUS (bit 1) - x PLL Status (read only)
// ------------------
// 0000011111111111 = 0x07ff CLKMD=1 X CLKIN
//--------------------------------------------------------------------
*(unsigned int*)CLKMD=0x0; //switch to DIV mode clkout= 1/2 clkin
while(((*(unsigned int*)CLKMD)&01)!=0);
*(unsigned int*)CLKMD=0x07ff; //switch to PLL X 1 mode
//--------------------------------------------------------------------
// ST0 DEFINITIONS:
// ARP (bit 15-13) - 000 Auxiliary register pointer
// TC (bit 12) - 1 Test/control flag
// C (bit 11) - 1 Carry is set to 1 if the result of an addition generates a carry; it is cleared to 0 if the
// result of a subtraction generates a borrow.
// OVA (bit 10) - 0 Overflow flag for accumulator A
// OVB (bit 9) - 0 Overflow flag for accumulator B
// DP (bit 8-0) - 00000000 Data-memory page pointer
// --------------------
// 0001 1000 0000 0000 =0x1800 Reset value
//--------------------------------------------------------------------
// *(unsigned int*)ST0=0x1800;
//--------------------------------------------------------------------
// ST1 DEFINITIONS:
// BRAF (bit 15) - 0 Block-repeat active flag
// CPL (bit 14) - 1 Compiler mode CPL=0 DP;CPL=1 SP
// XF (bit 13) - 1 XF status
// HM (bit 12) - 0 Hold mode
// INTM (bit 11) - 1 Interrupt mode INTM=0,All unmasked interrupts are enabled
// Reser (bit 10) - 0 Always read as 0
// OVM (bit 9) - 0 Overflow mode
// SXM (bit 8) - 1 Sign-extension mode
// C16 (bit 7) - 0 Dual 16-Bit/double-precision arithmetic mode
// FRCT (bit 6) - 0 Fractional mode
// CMPT (bit 5) - 0 Compatibility mode
// ASM (bit 4-0) - 00000 Accumulator shift mode
// --------------------
// 0110 1001 0000 0000 =0x2900 Reset value
//--------------------------------------------------------------------
// *(unsigned int*)ST1=0x6900;
//--------------------------------------------------------------------
//IPTR DEFINITIONS
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -