Ignore:
Timestamp:
11/25/08 00:14:46 (4 years ago)
Author:
EWAVR
Message:

+ added initial DNG support
+ added rear curtain flash sync for a570 & sx100is

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/platform/generic/wrappers.c

    r547 r590  
    720720 return 0; 
    721721} 
     722 
     723void reverse_bytes_order(char* start, int count){ 
     724// note, we will go to count rounded up to the nearest 32 
     725asm volatile( 
     726        "ldr    r2, =0xFF00FF\n"        // r2 = mask 
     727        "add    r1, r0, r1\n"           // r1 = start + count 
     728"LOOP:\n" 
     729        "ldm    r0, {R4-R11}\n"         // load 8 words 
     730         
     731        // out = ((in>>8) & 0xFF00FF) | ((in&0xFF00FF) << 8); 
     732        "mov    r3, r4, lsr #8\n"       // r3 = in >> 8 
     733        "and    r3, r3, r2\n"           // r3 &= 0xFF00FF 
     734        "and    r4, r4, r2\n"           // r4 = in & 0xFF00FF 
     735        "orr    r4, r3, r4, asl #8\n" // out = r3 | (r4 << 8) 
     736 
     737        "mov    r3, r5, lsr #8\n" 
     738        "and    r3, r3, r2\n" 
     739        "and    r5, r5, r2\n" 
     740        "orr    r5, r3, r5, asl #8\n" 
     741 
     742        "mov    r3, r6, lsr #8\n" 
     743        "and    r3, r3, r2\n" 
     744        "and    r6, r6, r2\n" 
     745        "orr    r6, r3, r6, asl #8\n" 
     746 
     747        "mov    r3, r7, lsr #8\n" 
     748        "and    r3, r3, r2\n" 
     749        "and    r7, r7, r2\n" 
     750        "orr    r7, r3, r7, asl #8\n" 
     751 
     752        "mov    r3, r8, lsr #8\n" 
     753        "and    r3, r3, r2\n" 
     754        "and    r8, r8, r2\n" 
     755        "orr    r8, r3, r8, asl #8\n" 
     756 
     757        "mov    r3, r9, lsr #8\n" 
     758        "and    r3, r3, r2\n" 
     759        "and    r9, r9, r2\n" 
     760        "orr    r9, r3, r9, asl #8\n" 
     761 
     762        "mov    r3, r10, lsr #8\n" 
     763        "and    r3, r3, r2\n" 
     764        "and    r10, r10, r2\n" 
     765        "orr    r10, r3, r10, asl #8\n" 
     766 
     767        "mov    r3, r11, lsr #8\n" 
     768        "and    r3, r3, r2\n" 
     769        "and    r11, r11, r2\n" 
     770        "orr    r11, r3, r11, asl #8\n" 
     771 
     772        "stmia  r0!, {r4-r11}\n"        // store and increment 
     773 
     774        "cmp    r0, r1\n" 
     775        "bcc    LOOP\n" 
     776        :::"r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","r10","r11" 
     777 ); 
     778} 
     779 
Note: See TracChangeset for help on using the changeset viewer.