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 "config_parser/config_globals.h"
#include "buffer.h" #include "buffer.h"
bool IsEepromBusy; volatile bool IsEepromBusy;
static eeprom_operation_t CurrentEepromOperation; static eeprom_operation_t CurrentEepromOperation;
static config_buffer_id_t CurrentConfigBufferId; static config_buffer_id_t CurrentConfigBufferId;
status_t LastEepromTransferStatus; status_t LastEepromTransferStatus;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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