mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
fix(ieee802154): fix linker error due to static function being inlined
When the compiler decides to inline a static function, linker script generator will complain about the missing function.
This commit is contained in:
parent
6c2824bdaa
commit
3d0b507346
@ -136,7 +136,7 @@ static IRAM_ATTR void receive_ack_timeout_timer_start(uint32_t duration)
|
||||
}
|
||||
#endif
|
||||
|
||||
static void ieee802154_rx_frame_info_update(void)
|
||||
static IEEE802154_NOINLINE void ieee802154_rx_frame_info_update(void)
|
||||
{
|
||||
uint8_t len = s_rx_frame[s_rx_index][0];
|
||||
int8_t rssi = s_rx_frame[s_rx_index][len - 1]; // crc is not written to rx buffer
|
||||
|
@ -49,7 +49,7 @@ IEEE802154_STATIC IEEE802154_INLINE bool is_suported_frame_type(uint8_t frame_ty
|
||||
frame_type == IEEE802154_FRAME_TYPE_ACK || frame_type == IEEE802154_FRAME_TYPE_COMMAND);
|
||||
}
|
||||
|
||||
IEEE802154_STATIC bool is_dst_panid_present(const uint8_t *frame)
|
||||
IEEE802154_STATIC IEEE802154_NOINLINE bool is_dst_panid_present(const uint8_t *frame)
|
||||
{
|
||||
uint8_t dst_mode = dst_addr_mode(frame);
|
||||
bool dst_panid_present = false;
|
||||
@ -79,7 +79,7 @@ IEEE802154_STATIC bool is_dst_panid_present(const uint8_t *frame)
|
||||
return dst_panid_present;
|
||||
}
|
||||
|
||||
IEEE802154_STATIC bool is_src_panid_present(const uint8_t *frame)
|
||||
IEEE802154_STATIC IEEE802154_NOINLINE bool is_src_panid_present(const uint8_t *frame)
|
||||
{
|
||||
uint8_t src_mode = src_addr_mode(frame);
|
||||
bool panid_compression = is_panid_compression(frame);
|
||||
@ -160,7 +160,7 @@ IEEE802154_STATIC IRAM_ATTR uint8_t ieee802154_frame_address_size(const uint8_t
|
||||
return address_size;
|
||||
}
|
||||
|
||||
IEEE802154_STATIC uint8_t ieee802154_frame_security_header_offset(const uint8_t *frame)
|
||||
IEEE802154_STATIC IEEE802154_NOINLINE uint8_t ieee802154_frame_security_header_offset(const uint8_t *frame)
|
||||
{
|
||||
ESP_RETURN_ON_FALSE_ISR(is_suported_frame_type(ieee802154_frame_get_type(frame)), IEEE802154_FRAME_INVALID_ADDR_MODE, IEEE802154_TAG, "invalid frame type");
|
||||
uint8_t offset = ieee802154_frame_address_offset(frame);
|
||||
@ -174,7 +174,7 @@ IEEE802154_STATIC uint8_t ieee802154_frame_security_header_offset(const uint8_t
|
||||
return offset;
|
||||
}
|
||||
|
||||
IEEE802154_STATIC uint8_t ieee802154_frame_get_security_field_len(const uint8_t *frame)
|
||||
IEEE802154_STATIC IEEE802154_NOINLINE uint8_t ieee802154_frame_get_security_field_len(const uint8_t *frame)
|
||||
{
|
||||
ESP_RETURN_ON_FALSE_ISR(is_suported_frame_type(ieee802154_frame_get_type(frame)), IEEE802154_FRAME_INVALID_OFFSET, IEEE802154_TAG, "invalid frame type");
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
archive: libieee802154.a
|
||||
entries:
|
||||
if IEEE802154_ENABLED = y:
|
||||
# When adding static functions here, add IEEE802154_NOINLINE attribute to them
|
||||
esp_ieee802154_ack: ieee802154_ack_config_pending_bit (noflash)
|
||||
esp_ieee802154_dev: ieee802154_rx_frame_info_update (noflash)
|
||||
esp_ieee802154_dev: ieee802154_isr (noflash)
|
||||
|
@ -245,6 +245,7 @@ extern void esp_ieee802154_timer1_done(void);
|
||||
#define IEEE802154_STATIC static
|
||||
#define IEEE802154_INLINE inline
|
||||
#endif // CONFIG_IEEE802154_TEST
|
||||
#define IEEE802154_NOINLINE __attribute__((noinline))
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user