From: Stephan Baerwolf Date: Tue, 31 Jul 2012 15:34:58 +0000 (+0200) Subject: optimize: found a great source of optimization - however "BOOTLOADER_ADDRESS" must... X-Git-Tag: 2010-07-27-stephan-201207312030~6 X-Git-Url: http://git.linex4red.de/pub/USBaspLoader.git/commitdiff_plain/8461b91c0c8782e2395be87ded3d629681fe12cc?ds=sidebyside optimize: found a great source of optimization - however "BOOTLOADER_ADDRESS" must be page-aligned Signed-off-by: Stephan Baerwolf --- diff --git a/firmware/main.c b/firmware/main.c index 9800ecf..94aa800 100644 --- a/firmware/main.c +++ b/firmware/main.c @@ -251,48 +251,36 @@ uchar isLast; uchar i; for(i = 0; i < len;){ #if HAVE_BLB11_SOFTW_LOCKBIT - uint8_t allowWrite = (CURRENT_ADDRESS < (addr_t)(BOOTLOADER_ADDRESS)); + if (CURRENT_ADDRESS >= (addr_t)(BOOTLOADER_ADDRESS)) { #if HAVE_BLB11_SOFTW_BACKDOOR - if ((stayinloader >= 0x10) && (bootLoaderCondition())) allowWrite=1; + if (!((stayinloader >= 0x10) && (bootLoaderCondition()))) return 1; +#else + return 1; #endif + } #endif #if !HAVE_CHIP_ERASE if((currentAddress.w[0] & (SPM_PAGESIZE - 1)) == 0){ /* if page start: erase */ DBG1(0x33, 0, 0); # ifndef NO_FLASH_WRITE -# if HAVE_BLB11_SOFTW_LOCKBIT - if (allowWrite) { -# endif cli(); boot_page_erase(CURRENT_ADDRESS); /* erase page */ sei(); boot_spm_busy_wait(); /* wait until page is erased */ -# if HAVE_BLB11_SOFTW_LOCKBIT - } -# endif # endif } #endif i += 2; DBG1(0x32, 0, 0); -# if HAVE_BLB11_SOFTW_LOCKBIT - if (allowWrite) { -# endif cli(); boot_page_fill(CURRENT_ADDRESS, *(short *)data); sei(); -# if HAVE_BLB11_SOFTW_LOCKBIT - } -# endif CURRENT_ADDRESS += 2; data += 2; /* write page when we cross page boundary or we have the last partial page */ if((currentAddress.w[0] & (SPM_PAGESIZE - 1)) == 0 || (isLast && i >= len && isLastPage)){ DBG1(0x34, 0, 0); #ifndef NO_FLASH_WRITE -# if HAVE_BLB11_SOFTW_LOCKBIT - if (allowWrite) { -# endif cli(); boot_page_write(CURRENT_ADDRESS - 2); sei(); @@ -300,9 +288,6 @@ uchar isLast; cli(); boot_rww_enable(); sei(); -# if HAVE_BLB11_SOFTW_LOCKBIT - } -# endif #endif } }