According to HalCodeGen, setting up a totem pole configuration for GIOA/B would mean leaving the box unchecked, as shown here.
Notice the tool-tip says "enable open drain." Checking the box makes the graphical image of the drain look like an open drain on the top.
/** - Port A open drain enable */ gioPORTA->PDR = (uint32)((uint32)0U << 0U) /* Bit 0 */ | (uint32)((uint32)0U << 1U) /* Bit 1 */ | (uint32)((uint32)0U << 2U) /* Bit 2 */ | (uint32)((uint32)0U << 3U) /* Bit 3 */ | (uint32)((uint32)0U << 4U) /* Bit 4 */ | (uint32)((uint32)0U << 5U) /* Bit 5 */ | (uint32)((uint32)0U << 6U) /* Bit 6 */ | (uint32)((uint32)0U << 7U); /* Bit 7 */
The code above shows the resulting code.
Here is my requirement:
Set the outputs as totem-pole, not open drain, by writing 0xFF to the GIO Open Drain Register[A](GIOPDR[A] at 0xFFF7BC48).
My requirement appears to contradict HAL Code Generator. Am I right? Is the requirement wrong on the value or am I just not understanding something.