From: List <li...@sw...> - 2008-05-22 17:10:45
|
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 > Sdc...@li... > https://lists.sourceforge.net/lists/listinfo/sdcc-user > > |