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.

RM48L530PGET chip The HET relevant register can't assignment in IAR Embedded Workbench IDE, but can assignment in CCS .

hi all,

my chip is RM48L530PGET , i use it's HET PIN as GPIO,  But when I performing initialization, I found  can't  assignment a value to registers, etc,DIR,DIN,DOUT,DSET register.my code is programming and debug  with  IAR Embedded Workbench IDE.

but, when I use the same config, programming and debug with CCS, it can assignment values to these registers.

my code is generated with HAL Code Generator , 

The following code:

void hetInit(void)
{
/** @b initialize @b HET */

/** - Set HET pins default output value */
hetREG1->DOUT = (uint32)((uint32)0U << 31U)
| (uint32)((uint32)1U << 30U)
| (uint32)((uint32)0U << 29U)
| (uint32)((uint32)0U << 28U)
| (uint32)((uint32)0U << 27U)
| (uint32)((uint32)0U << 26U)
| (uint32)((uint32)0U << 25U)
| (uint32)((uint32)0U << 24U)
| (uint32)((uint32)0U << 23U)
| (uint32)((uint32)0U << 22U)
| (uint32)((uint32)0U << 21U)
| (uint32)((uint32)0U << 20U)
| (uint32)((uint32)0U << 19U)
| (uint32)((uint32)0U << 18U)
| (uint32)((uint32)0U << 17U)
| (uint32)((uint32)0U << 16U)
| (uint32)((uint32)0U << 15U)
| (uint32)((uint32)1U << 14U)
| (uint32)((uint32)0U << 13U)
| (uint32)((uint32)1U << 12U)
| (uint32)((uint32)0U << 11U)
| (uint32)((uint32)1U << 10U)
| (uint32)((uint32)0U << 9U)
| (uint32)((uint32)1U << 8U)
| (uint32)((uint32)0U << 7U)
| (uint32)((uint32)0U << 6U)
| (uint32)((uint32)0U << 5U)
| (uint32)((uint32)0U << 4U)
| (uint32)((uint32)0U << 3U)
| (uint32)((uint32)0U << 2U)
| (uint32)((uint32)0U << 1U)
| (uint32)((uint32)0U << 0U);

/** - Set HET pins direction */
hetREG1->DIR = (uint32) 0x00000000U
| (uint32) 0x40000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x01000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00100000U
| (uint32) 0x00000000U
| (uint32) 0x00040000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00004000U
| (uint32) 0x00000000U
| (uint32) 0x00001000U
| (uint32) 0x00000000U
| (uint32) 0x00000400U
| (uint32) 0x00000000U
| (uint32) 0x00000100U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U;

/** - Set HET pins open drain enable */
hetREG1->PDR = (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U;

/** - Set HET pins pullup/down enable */
hetREG1->PULDIS = (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U
| (uint32) 0x00000000U;

  • Hi user4767759,

    I can't tell what's going on just from the post.

    First, are you having a problem *building*?

    Or does the code build and download, but then when you execute these statements nothing happens on the writes to the HET registers?

    If the latter, what is the disassembly / register contents when you step over these statements in assembly.
    You should see some 'str' instruciton with a register as a base address and another register as the value to store.
    Would be good to know what those registers say.

    Also at the time of the write can you tell me what your CPSR is set to, and what your HET registers read
    (screen shot of HET register view would work).

    Last, would be good to see your MPU settings ..

    -anthony