21.01.2014 Views

3.22EjemploDRM007 Co..

3.22EjemploDRM007 Co..

3.22EjemploDRM007 Co..

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Source <strong>Co</strong>de<br />

Source <strong>Co</strong>de Files<br />

/* _startupData.to<strong>Co</strong>pyDownBeg ---> {nof(16) dstAddr(16) {bytes(8)}^nof} Zero(16)<br />

*/<br />

#if USE_C_IMPL /* (optimized) C implementation of COPY DOWN */<br />

p = (int*)_startupData.to<strong>Co</strong>pyDownBeg;<br />

for (;;) {<br />

i = *p; /* nof */<br />

if (i == 0) {<br />

break;<br />

}<br />

dst = (char*)p[1]; /* dstAddr */<br />

p+=2;<br />

do {<br />

/* p points now into 'bytes' */<br />

*dst = *((char*)p); /* copy byte-wise */<br />

((char*)p)++;<br />

dst++;<br />

i--;<br />

} while (i!= 0);<br />

}<br />

#elif defined(__OPTIMIZE_FOR_SIZE__)<br />

{<br />

asm {<br />

Loop0:<br />

notfinished:<br />

Loop3:<br />

Loop2:<br />

LDA<br />

PSHA<br />

LDA<br />

PSHA<br />

_startupData.to<strong>Co</strong>pyDownBeg:(1+to<strong>Co</strong>pyDownBegOffs)<br />

_startupData.to<strong>Co</strong>pyDownBeg:(0+to<strong>Co</strong>pyDownBegOffs)<br />

JSR loadByte ; load high byte counter<br />

TAX<br />

; save for compare<br />

INCA<br />

STA i<br />

JSR loadByte ; load low byte counter<br />

INCA<br />

STA i:1<br />

DECA<br />

BNE notfinished<br />

CBEQX #0, finished<br />

JSR<br />

PSHA<br />

PULH<br />

JSR<br />

TAX<br />

BRA<br />

loadByte ; load high byte ptr<br />

loadByte ; load high byte ptr<br />

; HX is now destination pointer<br />

Loop1<br />

JSR loadByte ; load data byte<br />

STA 0,X<br />

AIX #1<br />

BLDC Motor <strong>Co</strong>ntrol Board for Industrial and Appliance Applications<br />

DRM007<br />

MOTOROLA Source <strong>Co</strong>de 119

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!