look at the actual code generated see what the difference in the actual code is
>From cPhone > On May 4, 2014, at 1:14 PM, Tomek Lorek <tlo...@gmail.com> wrote: > > 2014-05-04 22:04 GMT+02:00 Tomek Lorek <tlo...@gmail.com>: >> 1. Possibly the main reason my code did not work was using >> __asm__ __volatile__ ("movx #0, @%0"::"r"(flash)); >> instead of >> __asm__ __volatile__ ("movx.b %1, @%0":"=r"(flash):"m"(Byte)); >> >> But I don't understand why the latter works and the first doesn't (the >> 1st one causes "tilib: MSP430_State: Internal error (error = 68)" in >> mspdebug right after stopping the program execution. > > Just checked the flashdump diff right before and after executing the > program - "movx #0, @%0"::"r"(flash))" variant messed up the flash > bank A from where I was running the code and it erased 0xc400 instead > of 0x1c400. > Do you have any idea why? > > The code is: > unsigned long flash_addr = 0x1c400; > unsigned int flash; > unsigned int sr; > > FCTL3 = FWKEY; // Clear Lock bit > while (FCTL3 & BUSY) ; > FCTL1 = FWKEY + MERAS; // Set MERAS bit > > __asm__ __volatile__ ("mov r2,%0":"=r"(sr):); > _DINT(); > __asm__ __volatile__ ("movx.a %1,%0":"=r"(flash):"m"(flash_addr)); > __asm__ __volatile__ ("movx #0, @%0"::"r"(flash)); // <- > the line that is under discussion > > __asm__ __volatile__ ("mov r2,%0":"=r"(sr):); // save SR before disabling IRQ > __dint(); > > while (FCTL3 & BUSY) ; // test busy > FCTL1 = FWKEY; // Clear MERAS bit > FCTL3 = FWKEY + LOCK; // Set LOCK bit > > ------------------------------------------------------------------------------ > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE > Instantly run your Selenium tests across 300+ browser/OS combos. Get > unparalleled scalability from the best Selenium testing platform available. > Simple to use. Nothing to install. Get started now for free." > http://p.sf.net/sfu/SauceLabs > _______________________________________________ > Mspgcc-users mailing list > Mspgcc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mspgcc-users ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available. Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs _______________________________________________ Mspgcc-users mailing list Mspgcc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mspgcc-users