mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-08-30 14:52:51 +08:00
port: fix REG_SET() compiler warning.
Compiler rtl837x_port.c:466: warning 116: right shifting more than size of object changed to zero provided value is a uint16. So shifting it more then 16 cause this error. Solution: cast the value to uint32_t.
This commit is contained in:
+6
-6
@@ -158,9 +158,9 @@
|
||||
|
||||
#ifdef REGDBG
|
||||
|
||||
#define REG_SET(r, v) SFR_DATA_24 = ((v) >> 24) & 0xff; \
|
||||
SFR_DATA_16 = ((v) >> 16) & 0xff; \
|
||||
SFR_DATA_8 = ((v) >> 8 & 0xff); \
|
||||
#define REG_SET(r, v) SFR_DATA_24 = (((uint32_t)v) >> 24) & 0xff; \
|
||||
SFR_DATA_16 = (((uint32_t)v) >> 16) & 0xff; \
|
||||
SFR_DATA_8 = (((uint16_t)v) >> 8 & 0xff); \
|
||||
SFR_DATA_0 = (v) & 0xff; \
|
||||
reg_write(r); \
|
||||
write_char('R'); print_byte(r >> 8); print_byte(r); write_char('-'); \
|
||||
@@ -173,9 +173,9 @@
|
||||
reg_write(r); \
|
||||
write_char('R'); print_byte(r>>8); print_byte(r); write_char('-'); print_byte(v24); print_byte(v16); print_byte(v8); print_byte(v0); write_char(' ');
|
||||
#else
|
||||
#define REG_SET(r, v) SFR_DATA_24 = ((v) >> 24) & 0xff; \
|
||||
SFR_DATA_16 = ((v) >> 16) & 0xff; \
|
||||
SFR_DATA_8 = ((v) >> 8 & 0xff); \
|
||||
#define REG_SET(r, v) SFR_DATA_24 = (((uint32_t)v) >> 24) & 0xff; \
|
||||
SFR_DATA_16 = (((uint32_t)v) >> 16) & 0xff; \
|
||||
SFR_DATA_8 = (((uint16_t)v) >> 8 & 0xff); \
|
||||
SFR_DATA_0 = (v) & 0xff; \
|
||||
reg_write(r);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user