This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

ble_gatt_db_srv_t is not aligned

pm_peer_data_remote_db_store() stores an array of ble_gatt_db_srv_t.

pm_peer_data_remote_db_store() calls pm_peer_data_store(), which requires a buffer whose alignment and size are a multiple of 4 bytes.

ble_gatt_db_srv_t is not declared with alignment:

typedef struct
{
    ble_uuid_t               srv_uuid;                                  /**< UUID of the service. */
    uint8_t                  char_count;                                /**< Number of characteristics present in the service. */
    ble_gattc_handle_range_t handle_range;                              /**< Service Handle Range. */
    ble_gatt_db_char_t       charateristics[BLE_GATT_DB_MAX_CHARS];     /**< Array of information related to the characteristics present in the service. This list can extend further than one. */
} ble_gatt_db_srv_t;
Related