Freddie Chopin wrote: > W dniu 2012-01-24 16:01, Jonathan Dumaresq pisze: >> HI all, >> >> I try my best to get the asm file work with the M0. I have modified >> the stm32f2x.S becaus eit look simpler than the on from the >> stm32f1x.S >> >> Here how it's look. >> >> // Build : arm-eabi-gcc -c stm32f2xxx.S >> .text >> .syntax unified >> .cpu cortex-m0 >> .thumb >> .thumb_func >> .global write >> >> /* >> r0 - source address >> r1 - target address >> r2 - count (halfword-16bit) >> r3 - result out >> r4 - flash base >> */ >> >> #define STM32_FLASH_CR_OFFSET 0x10 /* offset of CR >> register in FLASH struct */ >> #define STM32_FLASH_SR_OFFSET 0x0c /* offset of CR >> register in FLASH struct */ >> >> write: >> >> write_half_word: >> ldr r3, STM32_PG >> str r3, [r4, #STM32_FLASH_CR_OFFSET] >> ldrh r3, [r0] >> /* read one half-word from src */ >> strh r3, [r1] >> /* write one half-word from src*/ >> adds r0, r0, #2 >> /* increment ptr */ >> adds r1, r1, #2 >> /* increment ptr */ >> busy: >> ldrb r3, [r4, #STM32_FLASH_SR_OFFSET] >> cmp r3, #0x1 >> /* BSY (bit0) == 1 => operation in progress */ >> beq busy >> /* wait more... */ >> cmp r3, #0x24 >> /* PGPERR | WRPERR */ >> beq exit >> /* fail... */ >> subs r2, r2, #0x01 /* >> decrement counter */ >> bne write_half_word >> /* write next half-word if anything left */ >> exit: >> bkpt #0x00 >> >> > /* >> PG */ >> >> Is it possible to have a small review on this. I'm really poor in >> assembly language ! > > First of all - does it work?
I don't think it's work . I don't have been able to test it easily. > > > ldr r3, STM32_PG > > STM32_PG: .word 0x001 > > You can do that in an easier way: > > movs r3, #0x001 > > > cmp r3, #0x24 > > /* PGPERR | WRPERR */ > > So only having BOTH those errors will cause the code to exit? If BUSY > is also lit up you'll get 0x25... You should probably mask that to > obtain BUSY and the errors if you consider that possible to have only > PGPERR or WRPERR only. I'll look into this. > > One final thing - I'd prefer to have comments either in-line or in > the line before code - having them in next line doesn't seem a common > practice... Ok. I just copy and paste the code that it's in the contrib/loader folderand Modify it. Is there an easy way to test this code ? Regards Jonathan > > 4\/3!! > > ---------------------------------------------------------------------------- -- > Keep Your Developer Skills Current with LearnDevNow! > The most comprehensive online learning library for Microsoft > developers is just $99.99! Visual Studio, SharePoint, SQL - plus > HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when > you subscribe now! http://p.sf.net/sfu/learndevnow-d2d > _______________________________________________ > OpenOCD-devel mailing list > OpenOCD-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/openocd-devel ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d _______________________________________________ OpenOCD-devel mailing list OpenOCD-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openocd-devel