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

对pdk_C6678_1_0_0_15中timer程序的一些疑问

1.

intc 初始化程序

static Int32 intc_init (void)
{
CSL_IntcGlobalEnableState state;

/* INTC module initialization */
context.eventhandlerRecord = EventHandler;
context.numEvtEntries = 10;
if (CSL_intcInit(&context) != CSL_SOK) return -1;

/* Enable NMIs */
if (CSL_intcGlobalNmiEnable() != CSL_SOK) return -1;
/* Enable global interrupts */
if (CSL_intcGlobalEnable(&state) != CSL_SOK) return -1;

/* INTC has been initialized successfully. */
return 0;
}

CSL_IntcEventHandlerRecord EventHandler[30];
我想问的是为什么上边的值是30,这有什么要求吗?
还有就是context.numEvtEntries = 10;这个值又是怎么确定的?看好多地方都赋值10.

2.

我怎么能看懂下边的代码,需要去看那些东西呢?
CSL_Status CSL_intcInit (
CSL_IntcContext *pContext
)
{
Uint16 i;
asm(" dint");
if (pContext != NULL) {
_CSL_intcEventOffsetMap = pContext->offsetResv;
_CSL_intcAllocMask = pContext->eventAllocMask;
_CSL_intcNumEvents = pContext->numEvtEntries;
for (i = 0; i < ((CSL_INTC_EVENTID_CNT + 31) / 32); i++)
_CSL_intcAllocMask[i] = 0;
for (i = 0; i < CSL_INTC_EVENTID_CNT ; i++)
_CSL_intcEventOffsetMap[i] = CSL_INTC_MAPPED_NONE;
if (pContext->eventhandlerRecord != NULL) {
_CSL_intcEventHandlerRecord = pContext->eventhandlerRecord; for (i = 0; i < _CSL_intcNumEvents; i++) _CSL_intcEventHandlerRecord[i].handler = CSL_INTC_EVTHANDLER_NONE;
} } _CSL_intcIvpSet();
_CSL_intcCpuIntrTable.nmiIsr = _CSL_intcNmiDummy;
_CSL_intcCpuIntrTable.isr4 = _CSL_intcDispatcher;
_CSL_intcCpuIntrTable.isr5 = _CSL_intcDispatcher;
_CSL_intcCpuIntrTable.isr6 = _CSL_intcDispatcher;
_CSL_intcCpuIntrTable.isr7 = _CSL_intcDispatcher;
_CSL_intcCpuIntrTable.isr8 = _CSL_intcDispatcher;
_CSL_intcCpuIntrTable.isr9 = _CSL_intcDispatcher;
_CSL_intcCpuIntrTable.isr10 = _CSL_intcDispatcher;
_CSL_intcCpuIntrTable.isr11 = _CSL_intcDispatcher;
_CSL_intcCpuIntrTable.isr12 = _CSL_intcDispatcher;
_CSL_intcCpuIntrTable.isr13 = _CSL_intcDispatcher;
_CSL_intcCpuIntrTable.isr14 = _CSL_intcDispatcher;
_CSL_intcCpuIntrTable.isr15 = _CSL_intcDispatcher;
asm(" rint");
return CSL_SOK;
}

3.

感觉这段代码没有什么实际意义,自己在编程的时候可以不写吗?
#pragma CODE_SECTION(CSL_tmrInit, ".text:csl_section:tmr");
CSL_Status CSL_tmrInit (CSL_TmrContext *pContext)
{
return CSL_SOK;
}

Andy Yin1:

如你上面贴上的代码,CSL_intcInit是对intc相关的全局变量初始化,不会影响硬件的配置,上面提到的30是定义当前应用需要可能的handler数量,没有什么物理意义,10是对当前handler中初始的个数,这都是根据intc代码得到,

上面贴出的CSL_tmrInit对硬件的初始化时没有什么意义。

赞(0)
未经允许不得转载:TI中文支持网 » 对pdk_C6678_1_0_0_15中timer程序的一些疑问
分享到: 更多 (0)