From d1415c6283fe44e859dcf553b9f78e448ada3ce0 Mon Sep 17 00:00:00 2001 From: optixx Date: Mon, 24 Aug 2009 21:30:57 +0200 Subject: [PATCH] fix typo and add helper to main loop --- avr/usbload/main.c | 6 ++++++ avr/usbload/shared_memory.c | 14 +++++++++----- avr/usbload/shared_memory.h | 2 +- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/avr/usbload/main.c b/avr/usbload/main.c index 26fdc60..e319c22 100644 --- a/avr/usbload/main.c +++ b/avr/usbload/main.c @@ -163,6 +163,12 @@ usbMsgLen_t usbFunctionSetup(uchar data[8]) } sram_bulk_write_start(req_addr); #endif + + if (!shared_memory_scratchpad_region_save_helper(req_addr)){ + sram_bulk_write_start(req_addr); + } + + if (req_addr && (req_addr % req_bank_size) == 0) { #ifdef FLT_DEBUG debug(DEBUG_USB, diff --git a/avr/usbload/shared_memory.c b/avr/usbload/shared_memory.c index fae03e7..7a90ec2 100644 --- a/avr/usbload/shared_memory.c +++ b/avr/usbload/shared_memory.c @@ -45,14 +45,18 @@ uint8_t scratchpad_locked_rx = 1; uint8_t scratchpad_locked_tx = 1; -void shared_memory_scratchpad_region_saye_helper(uint32_t addr){ +uint8_t shared_memory_scratchpad_region_save_helper(uint32_t addr){ - if(addr > (SHARED_MEM_TX_LOC_STATE + SHARED_MEM_TX_LOC_SIZE )) + if(addr > (SHARED_MEM_TX_LOC_STATE + SHARED_MEM_TX_LOC_SIZE )){ shared_memory_scratchpad_region_tx_save(); - - if(addr > (SHARED_MEM_RX_LOC_STATE + SHARED_MEM_RX_LOC_SIZE )) + return 0; + } + if(addr > (SHARED_MEM_RX_LOC_STATE + SHARED_MEM_RX_LOC_SIZE )){ shared_memory_scratchpad_region_rx_save(); - } + return 0; + } + return 1; +} void shared_memory_scratchpad_region_tx_save() diff --git a/avr/usbload/shared_memory.h b/avr/usbload/shared_memory.h index c0d76c0..fbe71eb 100644 --- a/avr/usbload/shared_memory.h +++ b/avr/usbload/shared_memory.h @@ -62,7 +62,7 @@ -void shared_memory_scratchpad_region_saye_helper(uint32_t addr); +uint8_t shared_memory_scratchpad_region_save_helper(uint32_t addr); void shared_memory_scratchpad_region_tx_save(); void shared_memory_scratchpad_region_tx_restore(); void shared_memory_scratchpad_region_rx_save();