dear all,

anybody using a silabs C8051F060 with sdcc in dma mode should be aware
that the following assembler sequence may lead to unpredictable results
as the second movx a,@dptr may not be executed properly if the execution
is parallel to the dma write cycle to the on-chip xram.

movx a,@dptr
inc dptr
movx a,@dptr

silabs was not able to confirm this problem to me, but the following
patch worked fine for me (thanks to Maarten Brock), which inserts a nop
before or after the inc dptr.
use the compile option "--peep-file peepfile" and create a peep file
with the following directives:
replace {
    movx    a,@dptr,a
    inc    dptr
    movx    a,@dptr,a
} by {
    movx    a,@dptr,a
    nop
    inc    dptr
    movx    a,@dptr,a
}

best regards

Dani



-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to