Global variables shared between an interrupt and the main code should be volatile

See: https://www.embedded.com/electronics-blogs/beginner-s-corner/4023801/Introduction-to-the-Volatile-Keyword
This commit is contained in:
Kristian Sloth Lauszus
2018-03-11 02:08:48 +01:00
parent 5093a0c0a6
commit 0b100feb32
14 changed files with 16 additions and 16 deletions

View File

@@ -6,7 +6,7 @@
#include "config_parser/config_globals.h"
#include "buffer.h"
bool IsEepromBusy;
volatile bool IsEepromBusy;
static eeprom_operation_t CurrentEepromOperation;
static config_buffer_id_t CurrentConfigBufferId;
status_t LastEepromTransferStatus;

View File

@@ -24,7 +24,7 @@
// Variables:
extern bool IsEepromBusy;
extern volatile bool IsEepromBusy;
extern status_t EepromTransferStatus;
// Functions:

View File

@@ -18,8 +18,8 @@
#include "bootloader/wormhole.h"
bool IsBusPalOn;
uint32_t I2cMainBusRequestedBaudRateBps = I2C_MAIN_BUS_NORMAL_BAUD_RATE;
uint32_t I2cMainBusActualBaudRateBps;
volatile uint32_t I2cMainBusRequestedBaudRateBps = I2C_MAIN_BUS_NORMAL_BAUD_RATE;
volatile uint32_t I2cMainBusActualBaudRateBps;
void initBusPalState(void) {
IsBusPalOn = Wormhole.magicNumber == WORMHOLE_MAGIC_NUMBER && Wormhole.enumerationMode == EnumerationMode_BusPal;

View File

@@ -8,8 +8,8 @@
// Variables:
extern bool IsBusPalOn;
extern uint32_t I2cMainBusRequestedBaudRateBps;
extern uint32_t I2cMainBusActualBaudRateBps;
extern volatile uint32_t I2cMainBusRequestedBaudRateBps;
extern volatile uint32_t I2cMainBusActualBaudRateBps;
// Functions:

View File

@@ -1,7 +1,7 @@
#include "fsl_pit.h"
#include "timer.h"
uint32_t CurrentTime;
volatile uint32_t CurrentTime;
void PIT_TIMER_HANDLER(void)
{

View File

@@ -11,7 +11,7 @@
// Variables:
extern uint32_t CurrentTime;
extern volatile uint32_t CurrentTime;
// Functions:

View File

@@ -4,7 +4,7 @@
static usb_basic_keyboard_report_t usbBasicKeyboardReports[2];
uint32_t UsbBasicKeyboardActionCounter;
usb_basic_keyboard_report_t* ActiveUsbBasicKeyboardReport = usbBasicKeyboardReports;
bool IsUsbBasicKeyboardReportSent = false;
volatile bool IsUsbBasicKeyboardReportSent = false;
static uint8_t usbBasicKeyboardInBuffer[USB_BASIC_KEYBOARD_REPORT_LENGTH];
usb_basic_keyboard_report_t* getInactiveUsbBasicKeyboardReport(void)

View File

@@ -31,7 +31,7 @@
// Variables:
extern bool IsUsbBasicKeyboardReportSent;
extern volatile bool IsUsbBasicKeyboardReportSent;
extern uint32_t UsbBasicKeyboardActionCounter;
extern usb_basic_keyboard_report_t* ActiveUsbBasicKeyboardReport;

View File

@@ -3,7 +3,7 @@
uint32_t UsbMediaKeyboardActionCounter;
static usb_media_keyboard_report_t usbMediaKeyboardReports[2];
usb_media_keyboard_report_t* ActiveUsbMediaKeyboardReport = usbMediaKeyboardReports;
bool IsUsbMediaKeyboardReportSent = false;
volatile bool IsUsbMediaKeyboardReportSent = false;
usb_media_keyboard_report_t* getInactiveUsbMediaKeyboardReport(void)
{

View File

@@ -28,7 +28,7 @@
// Variables:
extern bool IsUsbMediaKeyboardReportSent;
extern volatile bool IsUsbMediaKeyboardReportSent;
extern uint32_t UsbMediaKeyboardActionCounter;
extern usb_media_keyboard_report_t* ActiveUsbMediaKeyboardReport;

View File

@@ -3,7 +3,7 @@
uint32_t UsbMouseActionCounter;
static usb_mouse_report_t usbMouseReports[2];
usb_mouse_report_t* ActiveUsbMouseReport = usbMouseReports;
bool IsUsbMouseReportSent = false;
volatile bool IsUsbMouseReportSent = false;
usb_mouse_report_t* getInactiveUsbMouseReport(void)
{

View File

@@ -31,7 +31,7 @@
// Variables:
extern bool IsUsbMouseReportSent;
extern volatile bool IsUsbMouseReportSent;
extern uint32_t UsbMouseActionCounter;
extern usb_mouse_report_t* ActiveUsbMouseReport;

View File

@@ -3,7 +3,7 @@
uint32_t UsbSystemKeyboardActionCounter;
static usb_system_keyboard_report_t usbSystemKeyboardReports[2];
usb_system_keyboard_report_t* ActiveUsbSystemKeyboardReport = usbSystemKeyboardReports;
bool IsUsbSystemKeyboardReportSent = false;
volatile bool IsUsbSystemKeyboardReportSent = false;
usb_system_keyboard_report_t* getInactiveUsbSystemKeyboardReport()
{

View File

@@ -29,7 +29,7 @@
// Variables:
extern bool IsUsbSystemKeyboardReportSent;
extern volatile bool IsUsbSystemKeyboardReportSent;
extern uint32_t UsbSystemKeyboardActionCounter;
extern usb_system_keyboard_report_t* ActiveUsbSystemKeyboardReport;