[gps_ubx] fixes for -O1

main-solar-only
Richard Meadows 2016-08-04 12:26:21 +01:00
rodzic ef3df16126
commit 9f1c5ecc56
2 zmienionych plików z 17 dodań i 15 usunięć

Wyświetl plik

@ -41,7 +41,7 @@ enum ubx_packet_state {
/** Generic UBX Message Type. Each message type extended is from this */ /** Generic UBX Message Type. Each message type extended is from this */
typedef struct { typedef struct {
ubx_message_id_t id; ubx_message_id_t id;
enum ubx_packet_state state; volatile enum ubx_packet_state state;
} ubx_message_t; } ubx_message_t;
/** UBX Class Types */ /** UBX Class Types */
@ -68,7 +68,7 @@ enum {
*/ */
__PACKED__ struct ubx_cfg_ant { __PACKED__ struct ubx_cfg_ant {
ubx_message_id_t id; ubx_message_id_t id;
enum ubx_packet_state state; volatile enum ubx_packet_state state;
struct { struct {
uint16_t flags; uint16_t flags;
uint16_t pins; uint16_t pins;
@ -79,7 +79,7 @@ __PACKED__ struct ubx_cfg_ant {
*/ */
__PACKED__ struct ubx_cfg_gnss { __PACKED__ struct ubx_cfg_gnss {
ubx_message_id_t id; ubx_message_id_t id;
enum ubx_packet_state state; volatile enum ubx_packet_state state;
struct { struct {
uint8_t msgVer; uint8_t msgVer;
uint8_t numTrkChHw; uint8_t numTrkChHw;
@ -99,7 +99,7 @@ __PACKED__ struct ubx_cfg_gnss {
*/ */
__PACKED__ struct ubx_cfg_nav5 { __PACKED__ struct ubx_cfg_nav5 {
ubx_message_id_t id; ubx_message_id_t id;
enum ubx_packet_state state; volatile enum ubx_packet_state state;
struct { struct {
uint16_t mask; uint16_t mask;
uint8_t dynModel; uint8_t dynModel;
@ -124,7 +124,7 @@ __PACKED__ struct ubx_cfg_nav5 {
*/ */
__PACKED__ struct ubx_cfg_tp5 { __PACKED__ struct ubx_cfg_tp5 {
ubx_message_id_t id; ubx_message_id_t id;
enum ubx_packet_state state; volatile enum ubx_packet_state state;
struct { struct {
uint8_t tpIdx; uint8_t tpIdx;
uint8_t res0; uint8_t res0;
@ -144,7 +144,7 @@ __PACKED__ struct ubx_cfg_tp5 {
*/ */
__PACKED__ struct ubx_cfg_prt { __PACKED__ struct ubx_cfg_prt {
ubx_message_id_t id; ubx_message_id_t id;
enum ubx_packet_state state; volatile enum ubx_packet_state state;
struct { struct {
uint8_t portID; uint8_t portID;
uint8_t res0; uint8_t res0;
@ -162,7 +162,7 @@ __PACKED__ struct ubx_cfg_prt {
*/ */
__PACKED__ struct ubx_cfg_pwr { __PACKED__ struct ubx_cfg_pwr {
ubx_message_id_t id; ubx_message_id_t id;
enum ubx_packet_state state; volatile enum ubx_packet_state state;
struct { struct {
uint8_t messageVersion; uint8_t messageVersion;
uint8_t res0; uint8_t res0;
@ -175,7 +175,7 @@ __PACKED__ struct ubx_cfg_pwr {
*/ */
__PACKED__ struct ubx_cfg_rst { __PACKED__ struct ubx_cfg_rst {
ubx_message_id_t id; ubx_message_id_t id;
enum ubx_packet_state state; volatile enum ubx_packet_state state;
struct { struct {
uint16_t navBbrMask; uint16_t navBbrMask;
uint8_t resetMode; uint8_t resetMode;
@ -187,7 +187,7 @@ __PACKED__ struct ubx_cfg_rst {
*/ */
__PACKED__ struct ubx_cfg_rxm { __PACKED__ struct ubx_cfg_rxm {
ubx_message_id_t id; ubx_message_id_t id;
enum ubx_packet_state state; volatile enum ubx_packet_state state;
struct { struct {
uint8_t reserved1; uint8_t reserved1;
uint8_t lpMode; uint8_t lpMode;
@ -260,7 +260,7 @@ enum {
*/ */
__PACKED__ struct ubx_nav_posllh { __PACKED__ struct ubx_nav_posllh {
ubx_message_id_t id; ubx_message_id_t id;
enum ubx_packet_state state; volatile enum ubx_packet_state state;
struct { struct {
uint32_t iTOW; uint32_t iTOW;
int32_t lon; int32_t lon;
@ -276,7 +276,7 @@ __PACKED__ struct ubx_nav_posllh {
*/ */
__PACKED__ struct ubx_nav_timeutc { __PACKED__ struct ubx_nav_timeutc {
ubx_message_id_t id; ubx_message_id_t id;
enum ubx_packet_state state; volatile enum ubx_packet_state state;
struct { struct {
uint32_t iTOW; uint32_t iTOW;
uint32_t tAcc; uint32_t tAcc;
@ -295,7 +295,7 @@ __PACKED__ struct ubx_nav_timeutc {
*/ */
__PACKED__ struct ubx_nav_sol { __PACKED__ struct ubx_nav_sol {
ubx_message_id_t id; ubx_message_id_t id;
enum ubx_packet_state state; volatile enum ubx_packet_state state;
struct { struct {
uint32_t iTOW; uint32_t iTOW;
int32_t fTOW; int32_t fTOW;
@ -321,7 +321,7 @@ __PACKED__ struct ubx_nav_sol {
*/ */
__PACKED__ struct ubx_nav_status { __PACKED__ struct ubx_nav_status {
ubx_message_id_t id; ubx_message_id_t id;
enum ubx_packet_state state; volatile enum ubx_packet_state state;
struct { struct {
uint32_t iTOW; uint32_t iTOW;
uint8_t gpsFix; uint8_t gpsFix;

Wyświetl plik

@ -283,11 +283,13 @@ enum gps_error _ubx_poll(ubx_message_t* message) {
/** /**
* Implements a microsecond delay * Implements a microsecond delay
*/ */
static inline void delay_us(uint32_t microseconds) void delay_us(uint32_t microseconds)
{ {
volatile int32_t i = microseconds * 8; volatile int32_t i = microseconds * 8;
while(i--); while(i--) {
__asm__("nop");
}
} }
/** /**