mirror of
https://github.com/meshtastic/firmware.git
synced 2025-12-23 03:00:56 +00:00
Fix #4911 : Partially rework some code to remove warnings about potential non-aligned memory accesses (#4912)
* * Adding the -Wcast-align compilation flag for the rp2040. * * Some rework to use a struct to access radio data * Buffer will not be accessed by arithmetic pointer anymore * * Remplace arithmetic pointer to avoid Warning * * Avoid 2 little artitmetic pointer --------- Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
This commit is contained in:
@@ -45,6 +45,20 @@ typedef struct {
|
||||
uint8_t relay_node;
|
||||
} PacketHeader;
|
||||
|
||||
/**
|
||||
* This structure represent the structured buffer : a PacketHeader then the payload. The whole is
|
||||
* MAX_LORA_PAYLOAD_LEN + 1 length
|
||||
* It makes the use of its data easier, and avoids manipulating pointers (and potential non aligned accesses)
|
||||
*/
|
||||
typedef struct {
|
||||
/** The header, as defined just before */
|
||||
PacketHeader header;
|
||||
|
||||
/** The payload, of maximum length minus the header, aligned just to be sure */
|
||||
uint8_t payload[MAX_LORA_PAYLOAD_LEN + 1 - sizeof(PacketHeader)] __attribute__ ((__aligned__));
|
||||
|
||||
} RadioBuffer;
|
||||
|
||||
/**
|
||||
* Basic operations all radio chipsets must implement.
|
||||
*
|
||||
@@ -91,8 +105,7 @@ class RadioInterface
|
||||
/**
|
||||
* A temporary buffer used for sending/receiving packets, sized to hold the biggest buffer we might need
|
||||
* */
|
||||
uint8_t radiobuf[MAX_LORA_PAYLOAD_LEN + 1];
|
||||
|
||||
RadioBuffer radioBuffer __attribute__ ((__aligned__));
|
||||
/**
|
||||
* Enqueue a received packet for the registered receiver
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user