From 83adad0aedc72980443cf2535b131352c9732da7 Mon Sep 17 00:00:00 2001 From: Jonathan Halmen Date: Sat, 1 Jul 2017 18:13:07 +0200 Subject: [PATCH] stm32: can: change filter match index to uint8_t The variable can only be 8bits, and converting pointers resulted in cases of overwriting nearby variables. --- include/libopencm3/stm32/can.h | 2 +- lib/stm32/can.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/libopencm3/stm32/can.h b/include/libopencm3/stm32/can.h index 0370a7ec..1aaa9681 100644 --- a/include/libopencm3/stm32/can.h +++ b/include/libopencm3/stm32/can.h @@ -669,7 +669,7 @@ void can_disable_irq(uint32_t canport, uint32_t irq); int can_transmit(uint32_t canport, uint32_t id, bool ext, bool rtr, uint8_t length, uint8_t *data); void can_receive(uint32_t canport, uint8_t fifo, bool release, uint32_t *id, - bool *ext, bool *rtr, uint32_t *fmi, uint8_t *length, + bool *ext, bool *rtr, uint8_t *fmi, uint8_t *length, uint8_t *data, uint16_t *timestamp); void can_fifo_release(uint32_t canport, uint8_t fifo); diff --git a/lib/stm32/can.c b/lib/stm32/can.c index c4d7f0c9..a1447d22 100644 --- a/lib/stm32/can.c +++ b/lib/stm32/can.c @@ -466,14 +466,14 @@ void can_fifo_release(uint32_t canport, uint8_t fifo) @param[out] id Unsigned int32 pointer. Message ID. @param[out] ext bool pointer. The message ID is extended? @param[out] rtr bool pointer. Request of transmission? -@param[out] fmi Unsigned int32 pointer. ID of the matched filter. +@param[out] fmi Unsigned int8 pointer. ID of the matched filter. @param[out] length Unsigned int8 pointer. Length of message payload. @param[out] data Unsigned int8[]. Message payload data. @param[out] timestamp. Pointer to store the message timestamp. Only valid on time triggered CAN. Use NULL to ignore. */ void can_receive(uint32_t canport, uint8_t fifo, bool release, uint32_t *id, - bool *ext, bool *rtr, uint32_t *fmi, uint8_t *length, + bool *ext, bool *rtr, uint8_t *fmi, uint8_t *length, uint8_t *data, uint16_t *timestamp) { uint32_t fifo_id = 0;