aboutsummaryrefslogtreecommitdiffstats
path: root/os/common/ports
diff options
context:
space:
mode:
authorIgor Stoppa <igor.stoppa@gmail.com>2016-10-25 19:31:40 +0000
committerFabio Utzig <utzig@utzig.org>2016-10-25 19:31:40 +0000
commit6172fdfb71e9d65479f77dd6a01b6907293335de (patch)
tree4cd87a5298f41c684b5df6df6766895850687183 /os/common/ports
parent56e090a5d0aa5140d6ba0de0edc08d9900fced12 (diff)
downloadChibiOS-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/common/ports')
-rw-r--r--os/common/ports/AVR/chcore.h6
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__ */