lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-asf4-dfu/+/42169?usp=email )
Change subject: dfu: make dfu_state/dfu_status volatile ......................................................................
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 *