mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-18 19:13:51 +01:00
drivers/dose: reduce struct padding
By moving all the single byte struct elements to the end, we can reduce padding inside `dose_t` and ensure that `recv_buf` is always aligned. This saves some RAM: master ------ text data bss dec hex filename 36384 136 12944 49464 c138 tests/driver_dose/bin/samr21-xpro/tests_driver_dose.e this patch ---------- text data bss dec hex filename 36484 136 12936 49556 c194 tests/driver_dose/bin/samr21-xpro/tests_driver_dose.elf
This commit is contained in:
parent
c18dc7157d
commit
b34b67feee
@ -152,17 +152,17 @@ typedef struct {
|
|||||||
uint8_t opts; /**< Driver options */
|
uint8_t opts; /**< Driver options */
|
||||||
dose_state_t state; /**< Current state of the driver's state machine */
|
dose_state_t state; /**< Current state of the driver's state machine */
|
||||||
mutex_t state_mtx; /**< Is unlocked every time a state is (re)entered */
|
mutex_t state_mtx; /**< Is unlocked every time a state is (re)entered */
|
||||||
uint8_t flags; /**< Several flags */
|
|
||||||
uint8_t recv_buf[DOSE_FRAME_LEN]; /**< Receive buffer for incoming frames */
|
uint8_t recv_buf[DOSE_FRAME_LEN]; /**< Receive buffer for incoming frames */
|
||||||
size_t recv_buf_ptr; /**< Index of the next empty octet of the recveive buffer */
|
size_t recv_buf_ptr; /**< Index of the next empty octet of the recveive buffer */
|
||||||
uart_t uart; /**< UART device to use */
|
|
||||||
uint8_t uart_octet; /**< Last received octet */
|
|
||||||
#if !defined(MODULE_PERIPH_UART_RXSTART_IRQ) || DOXYGEN
|
#if !defined(MODULE_PERIPH_UART_RXSTART_IRQ) || DOXYGEN
|
||||||
gpio_t sense_pin; /**< GPIO to sense for start bits on the UART's rx line */
|
gpio_t sense_pin; /**< GPIO to sense for start bits on the UART's rx line */
|
||||||
#endif
|
#endif
|
||||||
gpio_t standby_pin; /**< GPIO to put the CAN transceiver in standby mode */
|
gpio_t standby_pin; /**< GPIO to put the CAN transceiver in standby mode */
|
||||||
xtimer_t timeout; /**< Timeout timer ensuring always to get back to IDLE state */
|
xtimer_t timeout; /**< Timeout timer ensuring always to get back to IDLE state */
|
||||||
uint32_t timeout_base; /**< Base timeout in us */
|
uint32_t timeout_base; /**< Base timeout in us */
|
||||||
|
uart_t uart; /**< UART device to use */
|
||||||
|
uint8_t uart_octet; /**< Last received octet */
|
||||||
|
uint8_t flags; /**< Several flags */
|
||||||
} dose_t;
|
} dose_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user