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.

TMS320F28069M: GPIO Access

Part Number: TMS320F28069M
Other Parts Discussed in Thread: C2000WARE

Dear All,

I'm testing the output of GPIO06 ~ GPIO11 through register to reduce access time as following. 

// define the addresses

#define ADD_ACC_GPASET (volatile uint32_t *)(0x00006FC2)
#define ADD_ACC_GPACLEAR (volatile uint32_t *)(0x00006FC4)
#define ADD_ACC_GPATOGGLE (volatile uint32_t *)(0x00006FC6)

#define ADD_ACC_GPASET_GP00_GP15 (volatile uint16_t *)(0x00006FC2)
#define ADD_ACC_GPASET_GP16_GP31 (volatile uint16_t *)(0x00006FC3)
#define ADD_ACC_GPACLEAR_GP00_GP15 (volatile uint16_t *)(0x00006FC4)
#define ADD_ACC_GPACLEAR_GP16_GP31 (volatile uint16_t *)(0x00006FC5)
#define ADD_ACC_GPATOGGLE_GP00_GP15 (volatile uint16_t *)(0x00006FC6)
#define ADD_ACC_GPATOGGLE_GP16_GP31 (volatile uint16_t *)(0x00006FC7)

// testing code : case #1 start

EALLOW; // meaningless 

*ADD_ACC_GPASET = 0x00000040;
asm(" RPT #7 || NOP");

EDIS; // meaningless

// testing code : case #1 end => RESULT : GPADAT register value is correct and GIPO06 pin is high state.

// testing code : case #2 start

EALLOW; // meaningless 

*ADD_ACC_GPASET = 0x000000C0;
asm(" RPT #7 || NOP");

EDIS; // meaningless

// testing code : case #1 end => RESULT : GPADAT register value is correct but GIPO06 , GPIO07 pins are low state.

// testing code : case #3 start

EALLOW; // meaningless 

*ADD_ACC_GPASET = 0x000007C0;
asm(" RPT #7 || NOP");

EDIS; // meaningless

// testing code : case #3 end => RESULT : GPADAT register value is correct but GIPO06 , GPIO07, GIPO08 , GPIO09, pins are low state, and GPIO10 pin is high state.

Is there any way to handle the desired GPIOs at once?

I attached status of GPIO related registers as following.

Sincerely,

Eui-heon