TI中文支持网
TI专业的中文技术问题搜集分享网站

6655GPIO23中断事件连续触发多次并进入中断函数。再次触发GPIO中断,却进不去中断服务函数

在创龙的6655开发板上利用GPIO23中断来测试DPRAM(地址偏移:0x000-0x3FEF)的读写,GPIO23中断事件连续触发14347次,6655都可以进入中断服务函数读取数据,第14348次触发后边进不了中断服务函数了。请问原因可能是什么?利用GPIO0、GPIO17和GPIO19来测试的时候,6655都可以依次读完DPRAM的0x000-0x3FEF的地址空间。

说明:

(1)在DPRAM里设计0x3FF0-0x3FFF的地址作为中断触发地址,通过DSP6713往这些地址写数来拉低6655相应管脚的电平。其中地址0x3FF6作为触发6655GPIO23中断的地址。其中检测到第14348次,6713已经拉低了GPIO23管脚电平,表示中断已经产生,但6655并没有进入相应的GPIO23中断服务函数。

(2)将GPIO23中断事件映射到6655的可屏蔽中断7上。

(3)有没有可能是cmd文件的原因?如堆栈的设置。但是我自己写程序里都没有使用#pragma这个指令。

cmd代码如下:

-heap 0x800 
-stack 0x1000

MEMORY
{
/* Local L2, 1MB*/
VECTORS: o = 0x00800000 l = 0x00000200
LL2_RW_DATA: o = 0x00800200 l = 0x0003FE00

/* Shared L2 1MB for C6657*/
SL2: o = 0x0C000000 l = 0x00100000
/* External DDR3, upto 2GB per core */
DDR3_CODE: o = 0x80000000 l = 0x01000000 /*set memory protection attribitue as execution only*/
DDR3_R_DATA: o = 0x81000000 l = 0x01000000 /*set memory protection attribitue as read only*/
DDR3_RW_DATA: o = 0x82000000 l = 0x06000000 /*set memory protection attribitue as read/write*/
}

SECTIONS
{
vecs > VECTORS

.text > SL2
.cinit > SL2
.const > SL2
.switch > SL2

.stack > LL2_RW_DATA
GROUP
{
.neardata
.rodata
.bss
} > LL2_RW_DATA
.far > LL2_RW_DATA
.fardata > LL2_RW_DATA
.cio > LL2_RW_DATA
.sysmem > LL2_RW_DATA
}

gxushine:

附上相应的cmd文件。请多多指教。

Thomas Yang1:

回复 gxushine:

几个检查点:

1)在 新的GPIO event产生时,前面一次中断有没有响应处理完

2) GPIO 对应的COREPAC event有没有置位上

3)硬件时序上,出问题时 GPIO的管脚 拉高,拉低时 timing有没有满足spec的要求

赞(0)
未经允许不得转载:TI中文支持网 » 6655GPIO23中断事件连续触发多次并进入中断函数。再次触发GPIO中断,却进不去中断服务函数
分享到: 更多 (0)