daily pastebin goal
14%
SHARE
TWEET

Untitled

a guest Jul 11th, 2018 62 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. diff --git a/firmware/target/arm/as3525/lcd-as-e200v2-fuze.S b/firmware/target/arm/as3525/lcd-as-e200v2-fuze.S
  2. index 71d997d..e146d86 100644
  3. --- a/firmware/target/arm/as3525/lcd-as-e200v2-fuze.S
  4. +++ b/firmware/target/arm/as3525/lcd-as-e200v2-fuze.S
  5. @@ -25,6 +25,16 @@
  6.  #include "cpu.h"
  7.  
  8.  #define DBOP_BUSY (1<<10)
  9. +#define SAVE_PIXEL \
  10. +    mov     r6, r0, lsl #16
  11. +
  12. +#define GET_SAVED_PIXEL \
  13. +    orr     r6, r6, r0
  14. +
  15. +#define WRITE_PIXELS \
  16. +    str     r6, [r3, #0x10]
  17. +
  18. +
  19.  
  20.  /****************************************************************************
  21.   * void lcd_write_yuv_420_lines(unsigned char const * const src[3],
  22. @@ -110,12 +120,8 @@ lcd_write_yuv420_lines:
  23.                                          @
  24.      orr         r0, r0, lr, lsl #11     @ r0 = (r << 11) | b
  25.      orr         r0, r0, r7, lsl #5      @ r0 = (r << 11) | (g << 5) | b
  26. -    strh        r0, [r3, #0x10]         @ write pixel
  27. -1: @ busy                               @
  28. -    ldr         r7, [r3,#0xc]           @ r7 = DBOP_STATUS
  29. -    tst         r7, #DBOP_BUSY          @ fifo not empty?
  30. -    beq         1b                      @
  31. -                                        @
  32. +    SAVE_PIXEL                          @ save pixel, will be written later
  33. +
  34.      sub         r7, r12, #16            @ r7 = Y = (Y' - 16)*74
  35.      add         r12, r7, r7, asl #2     @
  36.      add         r7, r12, r7, asl #5     @
  37. @@ -143,7 +149,8 @@ lcd_write_yuv420_lines:
  38.                                          @
  39.      orr         r0, r0, lr, lsl #11     @ r0 = (r << 11) | b
  40.      orr         r0, r0, r7, lsl #5      @ r0 = (r << 11) | (g << 5) | b
  41. -    strh        r0, [r3, #0x10]         @ write pixel
  42. +    GET_SAVED_PIXEL                    @ get saved pixel
  43. +    WRITE_PIXELS                        @ write pixels
  44.  1: @ busy                               @
  45.      ldr         r7, [r3,#0xc]           @ r7 = DBOP_STATUS
  46.      tst         r7, #DBOP_BUSY          @ fifo not empty?
  47. @@ -177,11 +184,7 @@ lcd_write_yuv420_lines:
  48.                                          @
  49.      orr         r0, r0, lr, lsl #11     @ r0 = (r << 11) | b
  50.      orr         r0, r0, r7, lsl #5      @ r0 = (r << 11) | (g << 5) | b
  51. -    strh        r0, [r3, #0x10]         @ write pixel
  52. -1: @ busy                               @
  53. -    ldr         r7, [r3,#0xc]           @ r7 = DBOP_STATUS
  54. -    tst         r7, #DBOP_BUSY          @ fifo not empty?
  55. -    beq         1b                      @
  56. +    SAVE_PIXEL                          @ save pixel, is written later
  57.                                          @
  58.      sub         r7, r12, #16            @ r7 = Y = (Y' - 16)*74
  59.      add         r12, r7, r7, asl #2     @
  60. @@ -208,7 +211,8 @@ lcd_write_yuv420_lines:
  61.                                          @
  62.      orr         r0, r0, lr, lsl #11     @ r0 = (r << 11) | b
  63.      orr         r0, r0, r7, lsl #5      @ r0 = (r << 11) | (g << 5) | b
  64. -    strh        r0, [r3, #0x10]         @ write pixel
  65. +    GET_SAVED_PIXEL                      @ get saved pixel
  66. +    WRITE_PIXELS                         @ write pixels
  67.  1: @ busy                               @
  68.      ldr         r7, [r3,#0xc]           @ r7 = DBOP_STATUS
  69.      tst         r7, #DBOP_BUSY          @ fifo not empty?
  70. @@ -340,11 +344,7 @@ lcd_write_yuv420_lines_odither:
  71.      and         r7, r7, #0x7e00         @ r0 = pixel = (r & 0xf800) |
  72.      orr         r11, r11, r7, lsr #4    @              ((g & 0x7e00) >> 4) |
  73.      orr         r0, r11, r0, lsr #10    @              (b >> 10)
  74. -    strh        r0, [r3, #0x10]         @ write pixel
  75. -1: @ busy                               @
  76. -    ldr         r7, [r3,#0xc]           @ r7 = DBOP_STATUS
  77. -    tst         r7, #DBOP_BUSY          @ fifo not empty?
  78. -    beq         1b                      @
  79. +    SAVE_PIXEL                         @ save pixel, is written later
  80.                                          @
  81.      sub         r7, r12, #16            @ r7 = Y = (Y' - 16)*149
  82.      add         r12, r7, r7, asl #2     @
  83. @@ -389,7 +389,8 @@ lcd_write_yuv420_lines_odither:
  84.      and         r7, r7, #0x7e00         @ r0 = pixel = (r & 0xf800) |
  85.      orr         r11, r11, r7, lsr #4    @              ((g & 0x7e00) >> 4) |
  86.      orr         r0, r11, r0, lsr #10    @              (b >> 10)
  87. -    strh        r0, [r3, #0x10]         @ write pixel
  88. +    GET_SAVED_PIXEL                     @ get saved pixel
  89. +    WRITE_PIXELS                         @ write pixels
  90.  1: @ busy                               @
  91.      ldr         r7, [r3,#0xc]           @ r7 = DBOP_STATUS
  92.      tst         r7, #DBOP_BUSY          @ fifo not empty?
  93. @@ -440,11 +441,7 @@ lcd_write_yuv420_lines_odither:
  94.      and         r7, r7, #0x7e00         @ r0 = pixel = (r & 0xf800) |
  95.      orr         r11, r11, r7, lsr #4    @              ((g & 0x7e00) >> 4) |
  96.      orr         r0, r11, r0, lsr #10    @              (b >> 10)
  97. -    strh        r0, [r3, #0x10]         @ write pixel
  98. -1: @ busy                               @
  99. -    ldr         r7, [r3,#0xc]           @ r7 = DBOP_STATUS
  100. -    tst         r7, #DBOP_BUSY          @ fifo not empty?
  101. -    beq         1b                      @
  102. +    SAVE_PIXEL                            @ save pixel, is written later
  103.                                          @
  104.      sub         r7, r12, #16            @ r7 = Y = (Y' - 16)*149
  105.      add         r12, r7, r7, asl #2     @
  106. @@ -487,7 +484,8 @@ lcd_write_yuv420_lines_odither:
  107.      and         r7, r7, #0x7e00         @ r0 = pixel = (r & 0xf800) |
  108.      orr         r11, r11, r7, lsr #4    @              ((g & 0x7e00) >> 4) |
  109.      orr         r0, r11, r0, lsr #10    @              (b >> 10)
  110. -    strh        r0, [r3, #0x10]         @ write pixel
  111. +    GET_SAVED_PIXEL                      @ get saved pixel
  112. +    WRITE_PIXELS                         @ write pixels
  113.  1: @ busy                               @
  114.      ldr         r7, [r3,#0xc]           @ r7 = DBOP_STATUS
  115.      tst         r7, #DBOP_BUSY          @ fifo not empty?
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top