A local variable is not a good representation of the h / w register and that part of the reason you see the warning.
(), hw_write . , , . volatile uint, , , , - .
- :
volatile int hw_write2;
void gige_rx_prepare2(void) {
hw_write2 = 0x32;
}
void gige_rx_prepare3(void) {
volatile int *hw_write3 = (void*)0x1234;
*hw_write3 = 0x32;
}