Hi Maarten,

I'm not sure yet what I want :-)

The problem is that during the dma the on-chip xram does not need any
special threatment, while the off-chip xram does.
I think multibyte variables must be supported. For performance reasons,
it might be better to cluster movx instructions (like __critical {}).
But this might lead to problems,
when the dma engine might not be able to write its data to the xram and
overflow.

best regards

Dani
Maarten Brock wrote:
> Dani,
>
> This totally depends on what you would want the compiler 
> to do. Should this appear around every MOVX instruction 
> or also around several when dealing with multibyte 
> variables? Or even around iCodes (elementary 
> instructions for the compiler)? Or bigger yet?
>
> In case the first is good enough this can easily be 
> solved with a peephole rule:
>
> replace {
>       movx    %1,%2
> } by {
>       jb      _DMA0XBY,.
>       setb    _DMA0HLT
>       movx    %1,%2
>       clr     _DMA0HLT
> }
>
> If necessary you can also insert code to select the 
> proper SFR page and return it to previous setting 
> afterwards.
>
> Greets,
> Maarten
>
>   
>> Dear list,
>>
>> the silabs C8051F060 incorporated a DMA controller. While the DMA
>> controller is running, a special procedure must be followed to access
>> the xram (wait DMA0XBY ==0, set DMA0HLT, access xram, clr DMA0HLT bit).
>> I wonder how much work it would be to teach this feature to SDCC?
>>
>> best regards
>>
>> Dani
>>     
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft 
> Defy all challenges. Microsoft(R) Visual Studio 2008. 
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Sdcc-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/sdcc-user
>
>   


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to