This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM2632: How to achieve temporary unresponsive interrupt, interrupt save, and interrupt restore

Part Number: AM2632

Tool/software:

As the title suggests, how do I achieve in AM263X:

1. Save Interrupt 

2. CPU temporarily not responding to interrupts

3. Restore Interrupt

 

In DSP, I can completed the above operation using the following method:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
#define INT_STORE unsigned int uiSave_IER = IER; UINT32 ulDintTimeTmp;
#define INT_DISABLE {IER = 0;ulDintTimeTmp=ReadCpuTimer0Counter();}
#define INT_RESTORE {ulDintTimeTmp=ulDintTimeTmp-ReadCpuTimer0Counter(); \
if (ulDintTimeTmp GT hos_ulDintTimeMax) \
{ \
hos_ulDintTimeMax = ulDintTimeTmp; \
asm(" .global _hos_ulDintTimeAdr "); \
asm(" MOVL ACC, XAR5 "); \
asm(" MOV XAR5, PC "); \
asm(" MOVW DP, #_hos_ulDintTimeAdr "); \
asm(" MOVL @_hos_ulDintTimeAdr, XAR5 "); \
asm(" MOVL XAR5, ACC "); \
} IER = uiSave_IER; }
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

In arm, how do I configure it? Can you provide example code?

Besides, what code should I use to replace the following operations in DSP?

Fullscreen
1
2
3
4
5
6
7
#define EINT __asm(" clrc INTM")
#define DINT __asm(" setc INTM")
#define ERTM __asm(" clrc DBGM")
#define DRTM __asm(" setc DBGM")
#define EALLOW __asm(" EALLOW")
#define EDIS __asm(" EDIS")
#define ESTOP0 __asm(" ESTOP0")
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Thanks