lynxis lazus has uploaded this change for review.

View Change

dfu: make dfu_state/dfu_status volatile

Both variable might be changed from IRQ and from main loop.

Change-Id: I7ad5255064917c203cebe5ab54a5d457baa2f5ed
---
M usb/class/dfu/device/dfudf.c
M usb/class/dfu/device/dfudf.h
2 files changed, 4 insertions(+), 4 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/osmo-asf4-dfu refs/changes/69/42169/1
diff --git a/usb/class/dfu/device/dfudf.c b/usb/class/dfu/device/dfudf.c
index 223999a..5bdb64a 100644
--- a/usb/class/dfu/device/dfudf.c
+++ b/usb/class/dfu/device/dfudf.c
@@ -39,8 +39,8 @@
static const uint8_t usb_dfu_func_desc_bytes[] = {DFUD_IFACE_DESCB};
static const usb_dfu_func_desc_t* usb_dfu_func_desc = (usb_dfu_func_desc_t*)&usb_dfu_func_desc_bytes;

-enum usb_dfu_state dfu_state = USB_DFU_STATE_DFU_IDLE;
-enum usb_dfu_status dfu_status = USB_DFU_STATUS_OK;
+volatile enum usb_dfu_state dfu_state = USB_DFU_STATE_DFU_IDLE;
+volatile enum usb_dfu_status dfu_status = USB_DFU_STATUS_OK;

uint8_t dfu_download_data[512];
uint16_t dfu_download_length = 0;
diff --git a/usb/class/dfu/device/dfudf.h b/usb/class/dfu/device/dfudf.h
index cee5845..818252d 100644
--- a/usb/class/dfu/device/dfudf.h
+++ b/usb/class/dfu/device/dfudf.h
@@ -38,9 +38,9 @@
#include "usb_protocol_dfu.h"

/** Current DFU state */
-extern enum usb_dfu_state dfu_state;
+extern volatile enum usb_dfu_state dfu_state;
/**< Current DFU status */
-extern enum usb_dfu_status dfu_status;
+extern volatile enum usb_dfu_status dfu_status;

/** Downloaded data to be programmed in flash
*

To view, visit change 42169. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: osmo-asf4-dfu
Gerrit-Branch: master
Gerrit-Change-Id: I7ad5255064917c203cebe5ab54a5d457baa2f5ed
Gerrit-Change-Number: 42169
Gerrit-PatchSet: 1
Gerrit-Owner: lynxis lazus <lynxis@fe80.eu>