diff options
author | Igor Stoppa <igor.stoppa@gmail.com> | 2016-10-25 19:31:40 +0000 |
---|---|---|
committer | Fabio Utzig <utzig@utzig.org> | 2016-10-25 19:31:40 +0000 |
commit | 6172fdfb71e9d65479f77dd6a01b6907293335de (patch) | |
tree | 4cd87a5298f41c684b5df6df6766895850687183 /os | |
parent | 56e090a5d0aa5140d6ba0de0edc08d9900fced12 (diff) | |
download | ChibiOS-6172fdfb71e9d65479f77dd6a01b6907293335de.tar.gz ChibiOS-6172fdfb71e9d65479f77dd6a01b6907293335de.tar.bz2 ChibiOS-6172fdfb71e9d65479f77dd6a01b6907293335de.zip |
Fix casting warnings that prevent using -Werror
The variables used to hold pointers are only 8 bit wide. even if
pointers on AVR are 16 bit wide.
The high byte can be discarded if empty, but this must be somehow
notified to the compiler, otherwise it will emit a warning that
prevents from using ssystem-wide -Werror build flag.
Signed-off-by: Igor Stoppa <igor.stoppa@gmail.com>
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9878 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os')
-rw-r--r-- | os/common/ports/AVR/chcore.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/os/common/ports/AVR/chcore.h b/os/common/ports/AVR/chcore.h index 8bbd89582..f749383b2 100644 --- a/os/common/ports/AVR/chcore.h +++ b/os/common/ports/AVR/chcore.h @@ -262,12 +262,12 @@ struct port_context { #define PORT_SETUP_CONTEXT(tp, wbase, wtop, pf, arg) { \
tp->ctx.sp = (struct port_intctx *)((uint8_t *)(wtop) - \
sizeof(struct port_intctx)); \
- tp->ctx.sp->r2 = (uint8_t)(pf); \
+ tp->ctx.sp->r2 = (uint8_t)(0xff & (uint16_t)pf); \
tp->ctx.sp->r3 = (uint8_t)((uint16_t)(pf) >> 8); \
- tp->ctx.sp->r4 = (uint8_t)(arg); \
+ tp->ctx.sp->r4 = (uint8_t)(0xff & (uint16_t)arg); \
tp->ctx.sp->r5 = (uint8_t)((uint16_t)(arg) >> 8); \
tp->ctx.sp->pcl = (uint16_t)_port_thread_start >> 8; \
- tp->ctx.sp->pch = (uint8_t)_port_thread_start; \
+ tp->ctx.sp->pch = (uint8_t)(0xff & (uint16_t)_port_thread_start); \
}
#endif /* !__AVR_3_BYTE_PC__ */
|