编译 没有报错,这是怎么回事?
Joey Mao:
从你的截图看不出什么问题,请问你说的仿真器只能连接一半是什么意思?详细说明下你的问题
编译 没有报错,这是怎么回事?
user1303469:
回复 Joey Mao:
上面是正常情况;
void InitECapture(){
ECap1Regs.ECEINT.all = 0x0000; // Disable all capture interrupts ECap1Regs.ECCLR.all = 0xFFFF; // Clear all CAP interrupt flags ECap1Regs.ECCTL1.bit.CAPLDEN = 0; // Disable CAP1-CAP4 register loads ECap1Regs.ECCTL2.bit.TSCTRSTOP = 0; // Make sure the counter is stopped
// Configure peripheral registers ECap1Regs.ECCTL2.bit.CONT_ONESHT = 1; // One-shot ECap1Regs.ECCTL2.bit.STOP_WRAP = 3; // Stop at 4 events ECap1Regs.ECCTL1.bit.CAP1POL = 1; // Falling edge ECap1Regs.ECCTL1.bit.CAP2POL = 0; // Rising edge ECap1Regs.ECCTL1.bit.CAP3POL = 1; // Falling edge ECap1Regs.ECCTL1.bit.CAP4POL = 0; // Rising edge ECap1Regs.ECCTL1.bit.CTRRST1 = 1; // Difference operation ECap1Regs.ECCTL1.bit.CTRRST2 = 1; // Difference operation ECap1Regs.ECCTL1.bit.CTRRST3 = 1; // Difference operation ECap1Regs.ECCTL1.bit.CTRRST4 = 1; // Difference operation ECap1Regs.ECCTL2.bit.SYNCI_EN = 1; // Enable sync in ECap1Regs.ECCTL2.bit.SYNCO_SEL = 0; // Pass through ECap1Regs.ECCTL1.bit.CAPLDEN = 1; // Enable capture units
// ECap1Regs.ECCTL2.bit.TSCTRSTOP = 1; // Start Counter // ECap1Regs.ECCTL2.bit.REARM = 1; // arm one-shot // ECap1Regs.ECCTL1.bit.CAPLDEN = 1; // Enable CAP1-CAP4 register loads // ECap1Regs.ECEINT.bit.CEVT4 = 1; // 4 events = interrupt
}
如果把 后4条加上去,就是连接一半的情况。
map 文件如下,堆栈已经设成0x100
****************************************************************************** TMS320C2000 Linker PC v6.1.0 ******************************************************************************>> Linked Thu Sep 11 14:26:37 2014
OUTPUT FILE NAME: <F28027.out>ENTRY POINT SYMBOL: "_c_int00" address: 00008813
MEMORY CONFIGURATION
name origin length used unused attr fill———————- ——– ——— ——– ——– —- ——–PAGE 0: BEGIN 00000000 00000002 00000002 00000000 RWIX RAMM0 00000050 000003b0 000000c3 000002ed RWIX PRAML0 00008000 00000fff 0000096e 00000691 RWIX IQTABLES 003fe000 00000b50 00000000 00000b50 RWIX IQTABLES2 003feb50 0000008c 00000000 0000008c RWIX IQTABLES3 003febdc 000000aa 00000000 000000aa RWIX BOOTROM 003ff27c 00000d44 00000000 00000d44 RWIX RESET 003fffc0 00000002 00000000 00000002 RWIX
PAGE 1: BOOT_RSVD 00000002 0000004e 00000000 0000004e RWIX RAMM1 00000400 00000400 00000100 00000300 RWIX DEV_EMU 00000880 00000105 00000004 00000101 RWIX SYS_PWR_CTL 00000985 00000003 00000003 00000000 RWIX FLASH_REGS 00000a80 00000060 00000008 00000058 RWIX CSM 00000ae0 00000010 00000010 00000000 RWIX ADC_RESULT 00000b00 00000020 00000020 00000000 RWIX CPU_TIMER0 00000c00 00000008 00000008 00000000 RWIX CPU_TIMER1 00000c08 00000008 00000008 00000000 RWIX CPU_TIMER2 00000c10 00000008 00000008 00000000 RWIX PIE_CTRL 00000ce0 00000020 0000001a 00000006 RWIX PIE_VECT 00000d00 00000100 00000100 00000000 RWIX COMP1 00006400 00000020 00000011 0000000f RWIX COMP2 00006420 00000020 00000011 0000000f RWIX EPWM1 00006800 00000040 00000040 00000000 RWIX EPWM2 00006840 00000040 00000040 00000000 RWIX EPWM3 00006880 00000040 00000040 00000000 RWIX EPWM4 000068c0 00000040 00000040 00000000 RWIX ECAP1 00006a00 00000020 00000020 00000000 RWIX GPIOCTRL 00006f80 00000040 00000040 00000000 RWIX GPIODAT 00006fc0 00000020 00000020 00000000 RWIX GPIOINT 00006fe0 00000020 0000000a 00000016 RWIX SYSTEM 00007010 00000020 0000001f 00000001 RWIX SPIA 00007040 00000010 00000010 00000000 RWIX SCIA 00007050 00000010 00000010 00000000 RWIX NMIINTRUPT 00007060 00000010 00000010 00000000 RWIX XINTRUPT 00007070 00000010 00000010 00000000 RWIX ADC 00007100 00000080 00000051 0000002f RWIX I2CA 00007900 00000040 00000022 0000001e RWIX DRAML0 00008900 00000700 00000148 000005b8 RWIX PARTID 003d7fff 00000001 00000001 00000000 RWIX CSM_PWL 003f7ff8 00000008 00000008 00000000 RWIX
编译 没有报错,这是怎么回事?
user1303469:
回复 user1303469:
把程序删掉一点就可以仿真了,但是ram空间是够的呀,不知道为什么?
编译 没有报错,这是怎么回事?
user1303469:
回复 user1303469:
void main(void){Uint16 temp;
InitSysCtrl(); Init_Gpio();
DINT; InitPieCtrl(); IER = 0x0000; IFR = 0x0000; InitPieVectTable();
EALLOW; PieVectTable.ADCINT1 = &adc_isr; PieVectTable.EPWM3_INT = &epwm3_isr; PieVectTable.ECAP1_INT = &ecap1_isr; EDIS;
为什么 程序到了InitPieVectTable(); 就飞了 ?
编译 没有报错,这是怎么回事?
mallo:
回复 Joey Mao:
你好,大神,我能否问你一个问题,就是我用FPGA控制DSP,编写HPI程序时HDRY信号一直是低电平?纠结了一个礼拜了!以下是时序图