Further work:
having got the compilation under a size which fitted into the flash, I 
found that the code did not run. (This is the same source code that 
worked fine when compiled with the 'old' mspgcc compiler.)
Inspecting the assembly, I found that the interrupt was suspect.
The 'old' code pushed the registers that it needed, the 'new' TI 
compiler pushes (and, of course, later pulls) all of the registers from 
r4 - r15 inclusive. This puts a time overhead (a 5 cycles / push & 1MHz 
clock) of 90µseconds. My application is processing bits in the interrupt 
at 9600 Baud, which is 104.2µsec/bit. Clearly the interrupt overflows in 
time.
OK, I would be better off writing the interrupt in assembler, but it 
seems quite wasteful to push/pull ALL of the registers (R1, 2 & 3 are 
for other purposes).
It seems that the 'old' compiler was very well optimised.
Maybe this helps someone.

Cheers,

Bob
-- 
The Sun is out, the sky is blue, it's time to drive the MR2.

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Reply via email to