| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066 |
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 1
- 1 .cpu cortex-m4
- 2 .arch armv7e-m
- 3 .fpu fpv4-sp-d16
- 4 .eabi_attribute 27, 1
- 5 .eabi_attribute 28, 1
- 6 .eabi_attribute 20, 1
- 7 .eabi_attribute 21, 1
- 8 .eabi_attribute 23, 3
- 9 .eabi_attribute 24, 1
- 10 .eabi_attribute 25, 1
- 11 .eabi_attribute 26, 1
- 12 .eabi_attribute 30, 6
- 13 .eabi_attribute 34, 1
- 14 .eabi_attribute 18, 4
- 15 .file "rkfifo.c"
- 16 .text
- 17 .Ltext0:
- 18 .cfi_sections .debug_frame
- 19 .section .text.fls_int,"ax",%progbits
- 20 .align 1
- 21 .syntax unified
- 22 .thumb
- 23 .thumb_func
- 25 fls_int:
- 26 .LFB0:
- 27 .file 1 "user_src/rkfifo.c"
- 1:user_src/rkfifo.c **** #include "rkfifo.h"
- 2:user_src/rkfifo.c **** #include <string.h>
- 3:user_src/rkfifo.c ****
- 4:user_src/rkfifo.c **** #define min(x,y) \
- 5:user_src/rkfifo.c **** ({ \
- 6:user_src/rkfifo.c **** typeof(x) _min1 = x; \
- 7:user_src/rkfifo.c **** typeof(y) _min2 = y; \
- 8:user_src/rkfifo.c **** (void)(&_min1 == &_min2); \
- 9:user_src/rkfifo.c **** _min1 < _min2 ? _min1 : _min2; \
- 10:user_src/rkfifo.c **** })
- 11:user_src/rkfifo.c ****
- 12:user_src/rkfifo.c **** #define max(x,y) \
- 13:user_src/rkfifo.c **** ({ \
- 14:user_src/rkfifo.c **** typeof(x) _max1 = x; \
- 15:user_src/rkfifo.c **** typeof(y) _max2 = y; \
- 16:user_src/rkfifo.c **** (void)(&_max1 == &_max2); \
- 17:user_src/rkfifo.c **** _max1 > _max2 ? _max1 : _max2; \
- 18:user_src/rkfifo.c **** })
- 19:user_src/rkfifo.c ****
- 20:user_src/rkfifo.c **** /* 检查是否是 2 的幂次数 */
- 21:user_src/rkfifo.c **** #define is_power_of_2(x) ((x) != 0 && (((x) & ((x)-1)) == 0))
- 22:user_src/rkfifo.c ****
- 23:user_src/rkfifo.c **** /**
- 24:user_src/rkfifo.c **** * @brief 返回输入参数的最高有效 bit 位
- 25:user_src/rkfifo.c **** *
- 26:user_src/rkfifo.c **** * @param x 输入参数
- 27:user_src/rkfifo.c **** * @return int 最高有效 bit 位, 从低到高 1~32, 0 表示无输入参数为 0
- 28:user_src/rkfifo.c **** */
- 29:user_src/rkfifo.c **** static inline int fls_int(int x)
- 30:user_src/rkfifo.c **** {
- 28 .loc 1 30 1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 2
- 29 .cfi_startproc
- 30 @ args = 0, pretend = 0, frame = 16
- 31 @ frame_needed = 1, uses_anonymous_args = 0
- 32 @ link register save eliminated.
- 33 0000 80B4 push {r7}
- 34 .LCFI0:
- 35 .cfi_def_cfa_offset 4
- 36 .cfi_offset 7, -4
- 37 0002 85B0 sub sp, sp, #20
- 38 .LCFI1:
- 39 .cfi_def_cfa_offset 24
- 40 0004 00AF add r7, sp, #0
- 41 .LCFI2:
- 42 .cfi_def_cfa_register 7
- 43 0006 7860 str r0, [r7, #4]
- 31:user_src/rkfifo.c **** int r = 32;
- 44 .loc 1 31 9
- 45 0008 2023 movs r3, #32
- 46 000a FB60 str r3, [r7, #12]
- 32:user_src/rkfifo.c ****
- 33:user_src/rkfifo.c **** if (!x)
- 47 .loc 1 33 8
- 48 000c 7B68 ldr r3, [r7, #4]
- 49 000e 002B cmp r3, #0
- 50 0010 01D1 bne .L2
- 34:user_src/rkfifo.c **** return 0;
- 51 .loc 1 34 16
- 52 0012 0023 movs r3, #0
- 53 0014 35E0 b .L3
- 54 .L2:
- 35:user_src/rkfifo.c **** if (!(x & 0xffff0000u))
- 55 .loc 1 35 13
- 56 0016 7B68 ldr r3, [r7, #4]
- 57 0018 1B0C lsrs r3, r3, #16
- 58 001a 1B04 lsls r3, r3, #16
- 59 .loc 1 35 8
- 60 001c 002B cmp r3, #0
- 61 001e 05D1 bne .L4
- 36:user_src/rkfifo.c **** {
- 37:user_src/rkfifo.c **** x <<= 16;
- 62 .loc 1 37 11
- 63 0020 7B68 ldr r3, [r7, #4]
- 64 0022 1B04 lsls r3, r3, #16
- 65 0024 7B60 str r3, [r7, #4]
- 38:user_src/rkfifo.c **** r -= 16;
- 66 .loc 1 38 11
- 67 0026 FB68 ldr r3, [r7, #12]
- 68 0028 103B subs r3, r3, #16
- 69 002a FB60 str r3, [r7, #12]
- 70 .L4:
- 39:user_src/rkfifo.c **** }
- 40:user_src/rkfifo.c **** if (!(x & 0xff000000u))
- 71 .loc 1 40 13
- 72 002c 7B68 ldr r3, [r7, #4]
- 73 002e 03F07F43 and r3, r3, #-16777216
- 74 .loc 1 40 8
- 75 0032 002B cmp r3, #0
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 3
- 76 0034 05D1 bne .L5
- 41:user_src/rkfifo.c **** {
- 42:user_src/rkfifo.c **** x <<= 8;
- 77 .loc 1 42 11
- 78 0036 7B68 ldr r3, [r7, #4]
- 79 0038 1B02 lsls r3, r3, #8
- 80 003a 7B60 str r3, [r7, #4]
- 43:user_src/rkfifo.c **** r -= 8;
- 81 .loc 1 43 11
- 82 003c FB68 ldr r3, [r7, #12]
- 83 003e 083B subs r3, r3, #8
- 84 0040 FB60 str r3, [r7, #12]
- 85 .L5:
- 44:user_src/rkfifo.c **** }
- 45:user_src/rkfifo.c **** if (!(x & 0xf0000000u))
- 86 .loc 1 45 13
- 87 0042 7B68 ldr r3, [r7, #4]
- 88 0044 03F07043 and r3, r3, #-268435456
- 89 .loc 1 45 8
- 90 0048 002B cmp r3, #0
- 91 004a 05D1 bne .L6
- 46:user_src/rkfifo.c **** {
- 47:user_src/rkfifo.c **** x <<= 4;
- 92 .loc 1 47 11
- 93 004c 7B68 ldr r3, [r7, #4]
- 94 004e 1B01 lsls r3, r3, #4
- 95 0050 7B60 str r3, [r7, #4]
- 48:user_src/rkfifo.c **** r -= 4;
- 96 .loc 1 48 11
- 97 0052 FB68 ldr r3, [r7, #12]
- 98 0054 043B subs r3, r3, #4
- 99 0056 FB60 str r3, [r7, #12]
- 100 .L6:
- 49:user_src/rkfifo.c **** }
- 50:user_src/rkfifo.c **** if (!(x & 0xc0000000u))
- 101 .loc 1 50 13
- 102 0058 7B68 ldr r3, [r7, #4]
- 103 005a 03F04043 and r3, r3, #-1073741824
- 104 .loc 1 50 8
- 105 005e 002B cmp r3, #0
- 106 0060 05D1 bne .L7
- 51:user_src/rkfifo.c **** {
- 52:user_src/rkfifo.c **** x <<= 2;
- 107 .loc 1 52 11
- 108 0062 7B68 ldr r3, [r7, #4]
- 109 0064 9B00 lsls r3, r3, #2
- 110 0066 7B60 str r3, [r7, #4]
- 53:user_src/rkfifo.c **** r -= 2;
- 111 .loc 1 53 11
- 112 0068 FB68 ldr r3, [r7, #12]
- 113 006a 023B subs r3, r3, #2
- 114 006c FB60 str r3, [r7, #12]
- 115 .L7:
- 54:user_src/rkfifo.c **** }
- 55:user_src/rkfifo.c **** if (!(x & 0x80000000u))
- 116 .loc 1 55 8
- 117 006e 7B68 ldr r3, [r7, #4]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 4
- 118 0070 002B cmp r3, #0
- 119 0072 05DB blt .L8
- 56:user_src/rkfifo.c **** {
- 57:user_src/rkfifo.c **** x <<= 1;
- 120 .loc 1 57 11
- 121 0074 7B68 ldr r3, [r7, #4]
- 122 0076 5B00 lsls r3, r3, #1
- 123 0078 7B60 str r3, [r7, #4]
- 58:user_src/rkfifo.c **** r -= 1;
- 124 .loc 1 58 11
- 125 007a FB68 ldr r3, [r7, #12]
- 126 007c 013B subs r3, r3, #1
- 127 007e FB60 str r3, [r7, #12]
- 128 .L8:
- 59:user_src/rkfifo.c **** }
- 60:user_src/rkfifo.c **** return r;
- 129 .loc 1 60 12
- 130 0080 FB68 ldr r3, [r7, #12]
- 131 .L3:
- 61:user_src/rkfifo.c **** }
- 132 .loc 1 61 1
- 133 0082 1846 mov r0, r3
- 134 0084 1437 adds r7, r7, #20
- 135 .LCFI3:
- 136 .cfi_def_cfa_offset 4
- 137 0086 BD46 mov sp, r7
- 138 .LCFI4:
- 139 .cfi_def_cfa_register 13
- 140 @ sp needed
- 141 0088 5DF8047B ldr r7, [sp], #4
- 142 .LCFI5:
- 143 .cfi_restore 7
- 144 .cfi_def_cfa_offset 0
- 145 008c 7047 bx lr
- 146 .cfi_endproc
- 147 .LFE0:
- 149 .section .text.rounddown_pow_of_two,"ax",%progbits
- 150 .align 1
- 151 .syntax unified
- 152 .thumb
- 153 .thumb_func
- 155 rounddown_pow_of_two:
- 156 .LFB1:
- 62:user_src/rkfifo.c ****
- 63:user_src/rkfifo.c **** /**
- 64:user_src/rkfifo.c **** * @brief 找到 n 向下取最大的 2 的幂次数
- 65:user_src/rkfifo.c **** *
- 66:user_src/rkfifo.c **** * @param n 输入整数 n
- 67:user_src/rkfifo.c **** * @return uint32_t n 向下取最大的 2 的幂次数
- 68:user_src/rkfifo.c **** */
- 69:user_src/rkfifo.c **** static inline uint32_t rounddown_pow_of_two(uint32_t n)
- 70:user_src/rkfifo.c **** {
- 157 .loc 1 70 1
- 158 .cfi_startproc
- 159 @ args = 0, pretend = 0, frame = 8
- 160 @ frame_needed = 1, uses_anonymous_args = 0
- 161 0000 80B5 push {r7, lr}
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 5
- 162 .LCFI6:
- 163 .cfi_def_cfa_offset 8
- 164 .cfi_offset 7, -8
- 165 .cfi_offset 14, -4
- 166 0002 82B0 sub sp, sp, #8
- 167 .LCFI7:
- 168 .cfi_def_cfa_offset 16
- 169 0004 00AF add r7, sp, #0
- 170 .LCFI8:
- 171 .cfi_def_cfa_register 7
- 172 0006 7860 str r0, [r7, #4]
- 71:user_src/rkfifo.c **** if (0 == n || is_power_of_2(n))
- 173 .loc 1 71 8
- 174 0008 7B68 ldr r3, [r7, #4]
- 175 000a 002B cmp r3, #0
- 176 000c 08D0 beq .L10
- 177 .loc 1 71 16 discriminator 1
- 178 000e 7B68 ldr r3, [r7, #4]
- 179 0010 002B cmp r3, #0
- 180 0012 07D0 beq .L11
- 181 .loc 1 71 19 discriminator 2
- 182 0014 7B68 ldr r3, [r7, #4]
- 183 0016 5A1E subs r2, r3, #1
- 184 0018 7B68 ldr r3, [r7, #4]
- 185 001a 1340 ands r3, r3, r2
- 186 001c 002B cmp r3, #0
- 187 001e 01D1 bne .L11
- 188 .L10:
- 72:user_src/rkfifo.c **** {
- 73:user_src/rkfifo.c **** return n;
- 189 .loc 1 73 16
- 190 0020 7B68 ldr r3, [r7, #4]
- 191 0022 08E0 b .L12
- 192 .L11:
- 74:user_src/rkfifo.c **** }
- 75:user_src/rkfifo.c **** else
- 76:user_src/rkfifo.c **** {
- 77:user_src/rkfifo.c **** return 1 << (fls_int(n) - 1);
- 193 .loc 1 77 22
- 194 0024 7B68 ldr r3, [r7, #4]
- 195 0026 1846 mov r0, r3
- 196 0028 FFF7FEFF bl fls_int
- 197 002c 0346 mov r3, r0
- 198 .loc 1 77 33
- 199 002e 013B subs r3, r3, #1
- 200 .loc 1 77 18
- 201 0030 0122 movs r2, #1
- 202 0032 02FA03F3 lsl r3, r2, r3
- 203 .L12:
- 78:user_src/rkfifo.c **** }
- 79:user_src/rkfifo.c **** }
- 204 .loc 1 79 1
- 205 0036 1846 mov r0, r3
- 206 0038 0837 adds r7, r7, #8
- 207 .LCFI9:
- 208 .cfi_def_cfa_offset 8
- 209 003a BD46 mov sp, r7
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 6
- 210 .LCFI10:
- 211 .cfi_def_cfa_register 13
- 212 @ sp needed
- 213 003c 80BD pop {r7, pc}
- 214 .cfi_endproc
- 215 .LFE1:
- 217 .section .text.kfifo_unused,"ax",%progbits
- 218 .align 1
- 219 .syntax unified
- 220 .thumb
- 221 .thumb_func
- 223 kfifo_unused:
- 224 .LFB2:
- 80:user_src/rkfifo.c ****
- 81:user_src/rkfifo.c **** /**
- 82:user_src/rkfifo.c **** * @brief 查找 fifo 中的剩余空间
- 83:user_src/rkfifo.c **** *
- 84:user_src/rkfifo.c **** * @param fifo
- 85:user_src/rkfifo.c **** * @return unsigned int
- 86:user_src/rkfifo.c **** */
- 87:user_src/rkfifo.c **** static inline unsigned int kfifo_unused(rkfifo_t *fifo)
- 88:user_src/rkfifo.c **** {
- 225 .loc 1 88 1
- 226 .cfi_startproc
- 227 @ args = 0, pretend = 0, frame = 8
- 228 @ frame_needed = 1, uses_anonymous_args = 0
- 229 @ link register save eliminated.
- 230 0000 80B4 push {r7}
- 231 .LCFI11:
- 232 .cfi_def_cfa_offset 4
- 233 .cfi_offset 7, -4
- 234 0002 83B0 sub sp, sp, #12
- 235 .LCFI12:
- 236 .cfi_def_cfa_offset 16
- 237 0004 00AF add r7, sp, #0
- 238 .LCFI13:
- 239 .cfi_def_cfa_register 7
- 240 0006 7860 str r0, [r7, #4]
- 89:user_src/rkfifo.c **** return (fifo->mask + 1) - (fifo->in - fifo->out);
- 241 .loc 1 89 17
- 242 0008 7B68 ldr r3, [r7, #4]
- 243 000a 9A68 ldr r2, [r3, #8]
- 244 .loc 1 89 47
- 245 000c 7B68 ldr r3, [r7, #4]
- 246 000e 5968 ldr r1, [r3, #4]
- 247 .loc 1 89 36
- 248 0010 7B68 ldr r3, [r7, #4]
- 249 0012 1B68 ldr r3, [r3]
- 250 .loc 1 89 41
- 251 0014 CB1A subs r3, r1, r3
- 252 .loc 1 89 29
- 253 0016 1344 add r3, r3, r2
- 254 0018 0133 adds r3, r3, #1
- 90:user_src/rkfifo.c **** }
- 255 .loc 1 90 1
- 256 001a 1846 mov r0, r3
- 257 001c 0C37 adds r7, r7, #12
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 7
- 258 .LCFI14:
- 259 .cfi_def_cfa_offset 4
- 260 001e BD46 mov sp, r7
- 261 .LCFI15:
- 262 .cfi_def_cfa_register 13
- 263 @ sp needed
- 264 0020 5DF8047B ldr r7, [sp], #4
- 265 .LCFI16:
- 266 .cfi_restore 7
- 267 .cfi_def_cfa_offset 0
- 268 0024 7047 bx lr
- 269 .cfi_endproc
- 270 .LFE2:
- 272 .section .text.rkfifo_init,"ax",%progbits
- 273 .align 1
- 274 .global rkfifo_init
- 275 .syntax unified
- 276 .thumb
- 277 .thumb_func
- 279 rkfifo_init:
- 280 .LFB3:
- 91:user_src/rkfifo.c ****
- 92:user_src/rkfifo.c **** int rkfifo_init(rkfifo_t *fifo, void *buffer, uint32_t size, uint32_t esize)
- 93:user_src/rkfifo.c **** {
- 281 .loc 1 93 1
- 282 .cfi_startproc
- 283 @ args = 0, pretend = 0, frame = 16
- 284 @ frame_needed = 1, uses_anonymous_args = 0
- 285 0000 80B5 push {r7, lr}
- 286 .LCFI17:
- 287 .cfi_def_cfa_offset 8
- 288 .cfi_offset 7, -8
- 289 .cfi_offset 14, -4
- 290 0002 84B0 sub sp, sp, #16
- 291 .LCFI18:
- 292 .cfi_def_cfa_offset 24
- 293 0004 00AF add r7, sp, #0
- 294 .LCFI19:
- 295 .cfi_def_cfa_register 7
- 296 0006 F860 str r0, [r7, #12]
- 297 0008 B960 str r1, [r7, #8]
- 298 000a 7A60 str r2, [r7, #4]
- 299 000c 3B60 str r3, [r7]
- 94:user_src/rkfifo.c **** size /= esize;
- 300 .loc 1 94 10
- 301 000e 7A68 ldr r2, [r7, #4]
- 302 0010 3B68 ldr r3, [r7]
- 303 0012 B2FBF3F3 udiv r3, r2, r3
- 304 0016 7B60 str r3, [r7, #4]
- 95:user_src/rkfifo.c ****
- 96:user_src/rkfifo.c **** /* size 必须是 2 的幂次数 */
- 97:user_src/rkfifo.c **** if (!is_power_of_2(size))
- 305 .loc 1 97 8
- 306 0018 7B68 ldr r3, [r7, #4]
- 307 001a 002B cmp r3, #0
- 308 001c 05D0 beq .L16
- 309 .loc 1 97 10 discriminator 1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 8
- 310 001e 7B68 ldr r3, [r7, #4]
- 311 0020 5A1E subs r2, r3, #1
- 312 0022 7B68 ldr r3, [r7, #4]
- 313 0024 1340 ands r3, r3, r2
- 314 .loc 1 97 9 discriminator 1
- 315 0026 002B cmp r3, #0
- 316 0028 03D0 beq .L17
- 317 .L16:
- 98:user_src/rkfifo.c **** {
- 99:user_src/rkfifo.c **** size = rounddown_pow_of_two(size);
- 318 .loc 1 99 16
- 319 002a 7868 ldr r0, [r7, #4]
- 320 002c FFF7FEFF bl rounddown_pow_of_two
- 321 0030 7860 str r0, [r7, #4]
- 322 .L17:
- 100:user_src/rkfifo.c **** }
- 101:user_src/rkfifo.c ****
- 102:user_src/rkfifo.c **** fifo->in = 0;
- 323 .loc 1 102 14
- 324 0032 FB68 ldr r3, [r7, #12]
- 325 0034 0022 movs r2, #0
- 326 0036 1A60 str r2, [r3]
- 103:user_src/rkfifo.c **** fifo->out = 0;
- 327 .loc 1 103 15
- 328 0038 FB68 ldr r3, [r7, #12]
- 329 003a 0022 movs r2, #0
- 330 003c 5A60 str r2, [r3, #4]
- 104:user_src/rkfifo.c **** fifo->esize = esize;
- 331 .loc 1 104 17
- 332 003e FB68 ldr r3, [r7, #12]
- 333 0040 3A68 ldr r2, [r7]
- 334 0042 DA60 str r2, [r3, #12]
- 105:user_src/rkfifo.c **** fifo->data = buffer;
- 335 .loc 1 105 16
- 336 0044 FB68 ldr r3, [r7, #12]
- 337 0046 BA68 ldr r2, [r7, #8]
- 338 0048 1A61 str r2, [r3, #16]
- 106:user_src/rkfifo.c ****
- 107:user_src/rkfifo.c **** if (size < 2)
- 339 .loc 1 107 8
- 340 004a 7B68 ldr r3, [r7, #4]
- 341 004c 012B cmp r3, #1
- 342 004e 05D8 bhi .L18
- 108:user_src/rkfifo.c **** {
- 109:user_src/rkfifo.c **** fifo->mask = 0;
- 343 .loc 1 109 20
- 344 0050 FB68 ldr r3, [r7, #12]
- 345 0052 0022 movs r2, #0
- 346 0054 9A60 str r2, [r3, #8]
- 110:user_src/rkfifo.c **** return -RKFIFO_EINVAL;
- 347 .loc 1 110 16
- 348 0056 6FF01503 mvn r3, #21
- 349 005a 04E0 b .L19
- 350 .L18:
- 111:user_src/rkfifo.c **** }
- 112:user_src/rkfifo.c ****
- 113:user_src/rkfifo.c **** fifo->mask = size - 1;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 9
- 351 .loc 1 113 23
- 352 005c 7B68 ldr r3, [r7, #4]
- 353 005e 5A1E subs r2, r3, #1
- 354 .loc 1 113 16
- 355 0060 FB68 ldr r3, [r7, #12]
- 356 0062 9A60 str r2, [r3, #8]
- 114:user_src/rkfifo.c ****
- 115:user_src/rkfifo.c **** return 0;
- 357 .loc 1 115 12
- 358 0064 0023 movs r3, #0
- 359 .L19:
- 116:user_src/rkfifo.c **** }
- 360 .loc 1 116 1
- 361 0066 1846 mov r0, r3
- 362 0068 1037 adds r7, r7, #16
- 363 .LCFI20:
- 364 .cfi_def_cfa_offset 8
- 365 006a BD46 mov sp, r7
- 366 .LCFI21:
- 367 .cfi_def_cfa_register 13
- 368 @ sp needed
- 369 006c 80BD pop {r7, pc}
- 370 .cfi_endproc
- 371 .LFE3:
- 373 .section .text.__rkfifo_copy_in,"ax",%progbits
- 374 .align 1
- 375 .syntax unified
- 376 .thumb
- 377 .thumb_func
- 379 __rkfifo_copy_in:
- 380 .LFB4:
- 117:user_src/rkfifo.c ****
- 118:user_src/rkfifo.c **** static void __rkfifo_copy_in(rkfifo_t *fifo, const void *src, unsigned int len,
- 119:user_src/rkfifo.c **** unsigned int offset)
- 120:user_src/rkfifo.c **** {
- 381 .loc 1 120 1
- 382 .cfi_startproc
- 383 @ args = 0, pretend = 0, frame = 40
- 384 @ frame_needed = 1, uses_anonymous_args = 0
- 385 0000 80B5 push {r7, lr}
- 386 .LCFI22:
- 387 .cfi_def_cfa_offset 8
- 388 .cfi_offset 7, -8
- 389 .cfi_offset 14, -4
- 390 0002 8AB0 sub sp, sp, #40
- 391 .LCFI23:
- 392 .cfi_def_cfa_offset 48
- 393 0004 00AF add r7, sp, #0
- 394 .LCFI24:
- 395 .cfi_def_cfa_register 7
- 396 0006 F860 str r0, [r7, #12]
- 397 0008 B960 str r1, [r7, #8]
- 398 000a 7A60 str r2, [r7, #4]
- 399 000c 3B60 str r3, [r7]
- 121:user_src/rkfifo.c **** unsigned int size = fifo->mask + 1;
- 400 .loc 1 121 29
- 401 000e FB68 ldr r3, [r7, #12]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 10
- 402 0010 9B68 ldr r3, [r3, #8]
- 403 .loc 1 121 18
- 404 0012 0133 adds r3, r3, #1
- 405 0014 7B62 str r3, [r7, #36]
- 122:user_src/rkfifo.c **** unsigned int esize = fifo->esize;
- 406 .loc 1 122 18
- 407 0016 FB68 ldr r3, [r7, #12]
- 408 0018 DB68 ldr r3, [r3, #12]
- 409 001a 3B62 str r3, [r7, #32]
- 123:user_src/rkfifo.c **** unsigned int l;
- 124:user_src/rkfifo.c ****
- 125:user_src/rkfifo.c **** offset &= fifo->mask;
- 410 .loc 1 125 19
- 411 001c FB68 ldr r3, [r7, #12]
- 412 001e 9B68 ldr r3, [r3, #8]
- 413 .loc 1 125 12
- 414 0020 3A68 ldr r2, [r7]
- 415 0022 1340 ands r3, r3, r2
- 416 0024 3B60 str r3, [r7]
- 126:user_src/rkfifo.c **** if (esize != 1)
- 417 .loc 1 126 8
- 418 0026 3B6A ldr r3, [r7, #32]
- 419 0028 012B cmp r3, #1
- 420 002a 0ED0 beq .L21
- 127:user_src/rkfifo.c **** {
- 128:user_src/rkfifo.c **** offset *= esize;
- 421 .loc 1 128 16
- 422 002c 3B68 ldr r3, [r7]
- 423 002e 3A6A ldr r2, [r7, #32]
- 424 0030 02FB03F3 mul r3, r2, r3
- 425 0034 3B60 str r3, [r7]
- 129:user_src/rkfifo.c **** size *= esize;
- 426 .loc 1 129 14
- 427 0036 7B6A ldr r3, [r7, #36]
- 428 0038 3A6A ldr r2, [r7, #32]
- 429 003a 02FB03F3 mul r3, r2, r3
- 430 003e 7B62 str r3, [r7, #36]
- 130:user_src/rkfifo.c **** len *= esize;
- 431 .loc 1 130 13
- 432 0040 7B68 ldr r3, [r7, #4]
- 433 0042 3A6A ldr r2, [r7, #32]
- 434 0044 02FB03F3 mul r3, r2, r3
- 435 0048 7B60 str r3, [r7, #4]
- 436 .L21:
- 437 .LBB2:
- 131:user_src/rkfifo.c **** }
- 132:user_src/rkfifo.c **** l = min(len, size - offset);
- 438 .loc 1 132 9
- 439 004a 7B68 ldr r3, [r7, #4]
- 440 004c BB61 str r3, [r7, #24]
- 441 004e 7A6A ldr r2, [r7, #36]
- 442 0050 3B68 ldr r3, [r7]
- 443 0052 D31A subs r3, r2, r3
- 444 0054 7B61 str r3, [r7, #20]
- 445 0056 7A69 ldr r2, [r7, #20]
- 446 0058 BB69 ldr r3, [r7, #24]
- 447 005a 9342 cmp r3, r2
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 11
- 448 005c 28BF it cs
- 449 005e 1346 movcs r3, r2
- 450 .LBE2:
- 451 .loc 1 132 7
- 452 0060 FB61 str r3, [r7, #28]
- 133:user_src/rkfifo.c ****
- 134:user_src/rkfifo.c **** memcpy((uint8_t*)fifo->data + offset, src, l);
- 453 .loc 1 134 26
- 454 0062 FB68 ldr r3, [r7, #12]
- 455 0064 1A69 ldr r2, [r3, #16]
- 456 .loc 1 134 5
- 457 0066 3B68 ldr r3, [r7]
- 458 0068 1344 add r3, r3, r2
- 459 006a FA69 ldr r2, [r7, #28]
- 460 006c B968 ldr r1, [r7, #8]
- 461 006e 1846 mov r0, r3
- 462 0070 FFF7FEFF bl memcpy
- 135:user_src/rkfifo.c **** memcpy(fifo->data, (uint8_t*)src + l, len - l);
- 463 .loc 1 135 5
- 464 0074 FB68 ldr r3, [r7, #12]
- 465 0076 1869 ldr r0, [r3, #16]
- 466 0078 BA68 ldr r2, [r7, #8]
- 467 007a FB69 ldr r3, [r7, #28]
- 468 007c D118 adds r1, r2, r3
- 469 007e 7A68 ldr r2, [r7, #4]
- 470 0080 FB69 ldr r3, [r7, #28]
- 471 0082 D31A subs r3, r2, r3
- 472 0084 1A46 mov r2, r3
- 473 0086 FFF7FEFF bl memcpy
- 136:user_src/rkfifo.c ****
- 137:user_src/rkfifo.c **** /* 多核处理器需要内存屏障 */
- 138:user_src/rkfifo.c **** /* smp_wmb(); */
- 139:user_src/rkfifo.c **** }
- 474 .loc 1 139 1
- 475 008a 00BF nop
- 476 008c 2837 adds r7, r7, #40
- 477 .LCFI25:
- 478 .cfi_def_cfa_offset 8
- 479 008e BD46 mov sp, r7
- 480 .LCFI26:
- 481 .cfi_def_cfa_register 13
- 482 @ sp needed
- 483 0090 80BD pop {r7, pc}
- 484 .cfi_endproc
- 485 .LFE4:
- 487 .section .text.rkfifo_in,"ax",%progbits
- 488 .align 1
- 489 .global rkfifo_in
- 490 .syntax unified
- 491 .thumb
- 492 .thumb_func
- 494 rkfifo_in:
- 495 .LFB5:
- 140:user_src/rkfifo.c ****
- 141:user_src/rkfifo.c **** unsigned int rkfifo_in(rkfifo_t *fifo, const void *buf, unsigned int len)
- 142:user_src/rkfifo.c **** {
- 496 .loc 1 142 1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 12
- 497 .cfi_startproc
- 498 @ args = 0, pretend = 0, frame = 24
- 499 @ frame_needed = 1, uses_anonymous_args = 0
- 500 0000 80B5 push {r7, lr}
- 501 .LCFI27:
- 502 .cfi_def_cfa_offset 8
- 503 .cfi_offset 7, -8
- 504 .cfi_offset 14, -4
- 505 0002 86B0 sub sp, sp, #24
- 506 .LCFI28:
- 507 .cfi_def_cfa_offset 32
- 508 0004 00AF add r7, sp, #0
- 509 .LCFI29:
- 510 .cfi_def_cfa_register 7
- 511 0006 F860 str r0, [r7, #12]
- 512 0008 B960 str r1, [r7, #8]
- 513 000a 7A60 str r2, [r7, #4]
- 143:user_src/rkfifo.c **** unsigned int l;
- 144:user_src/rkfifo.c ****
- 145:user_src/rkfifo.c **** l = kfifo_unused(fifo);
- 514 .loc 1 145 9
- 515 000c F868 ldr r0, [r7, #12]
- 516 000e FFF7FEFF bl kfifo_unused
- 517 0012 7861 str r0, [r7, #20]
- 146:user_src/rkfifo.c ****
- 147:user_src/rkfifo.c **** if (len > l)
- 518 .loc 1 147 8
- 519 0014 7A68 ldr r2, [r7, #4]
- 520 0016 7B69 ldr r3, [r7, #20]
- 521 0018 9A42 cmp r2, r3
- 522 001a 06D9 bls .L23
- 148:user_src/rkfifo.c **** {
- 149:user_src/rkfifo.c **** len = l;
- 523 .loc 1 149 13
- 524 001c 7B69 ldr r3, [r7, #20]
- 525 001e 7B60 str r3, [r7, #4]
- 150:user_src/rkfifo.c **** fifo->error++;
- 526 .loc 1 150 13
- 527 0020 FB68 ldr r3, [r7, #12]
- 528 0022 5B69 ldr r3, [r3, #20]
- 529 .loc 1 150 20
- 530 0024 5A1C adds r2, r3, #1
- 531 0026 FB68 ldr r3, [r7, #12]
- 532 0028 5A61 str r2, [r3, #20]
- 533 .L23:
- 151:user_src/rkfifo.c **** }
- 152:user_src/rkfifo.c ****
- 153:user_src/rkfifo.c **** __rkfifo_copy_in(fifo, buf, len, fifo->in);
- 534 .loc 1 153 42
- 535 002a FB68 ldr r3, [r7, #12]
- 536 002c 1B68 ldr r3, [r3]
- 537 .loc 1 153 5
- 538 002e 7A68 ldr r2, [r7, #4]
- 539 0030 B968 ldr r1, [r7, #8]
- 540 0032 F868 ldr r0, [r7, #12]
- 541 0034 FFF7FEFF bl __rkfifo_copy_in
- 154:user_src/rkfifo.c **** fifo->in += len;
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 13
- 542 .loc 1 154 14
- 543 0038 FB68 ldr r3, [r7, #12]
- 544 003a 1A68 ldr r2, [r3]
- 545 003c 7B68 ldr r3, [r7, #4]
- 546 003e 1A44 add r2, r2, r3
- 547 0040 FB68 ldr r3, [r7, #12]
- 548 0042 1A60 str r2, [r3]
- 155:user_src/rkfifo.c **** return len;
- 549 .loc 1 155 12
- 550 0044 7B68 ldr r3, [r7, #4]
- 156:user_src/rkfifo.c **** }
- 551 .loc 1 156 1
- 552 0046 1846 mov r0, r3
- 553 0048 1837 adds r7, r7, #24
- 554 .LCFI30:
- 555 .cfi_def_cfa_offset 8
- 556 004a BD46 mov sp, r7
- 557 .LCFI31:
- 558 .cfi_def_cfa_register 13
- 559 @ sp needed
- 560 004c 80BD pop {r7, pc}
- 561 .cfi_endproc
- 562 .LFE5:
- 564 .section .text.__rkfifo_copy_out,"ax",%progbits
- 565 .align 1
- 566 .syntax unified
- 567 .thumb
- 568 .thumb_func
- 570 __rkfifo_copy_out:
- 571 .LFB6:
- 157:user_src/rkfifo.c ****
- 158:user_src/rkfifo.c **** static void __rkfifo_copy_out(rkfifo_t *fifo, void *dst, unsigned int len,
- 159:user_src/rkfifo.c **** unsigned int off)
- 160:user_src/rkfifo.c **** {
- 572 .loc 1 160 1
- 573 .cfi_startproc
- 574 @ args = 0, pretend = 0, frame = 40
- 575 @ frame_needed = 1, uses_anonymous_args = 0
- 576 0000 80B5 push {r7, lr}
- 577 .LCFI32:
- 578 .cfi_def_cfa_offset 8
- 579 .cfi_offset 7, -8
- 580 .cfi_offset 14, -4
- 581 0002 8AB0 sub sp, sp, #40
- 582 .LCFI33:
- 583 .cfi_def_cfa_offset 48
- 584 0004 00AF add r7, sp, #0
- 585 .LCFI34:
- 586 .cfi_def_cfa_register 7
- 587 0006 F860 str r0, [r7, #12]
- 588 0008 B960 str r1, [r7, #8]
- 589 000a 7A60 str r2, [r7, #4]
- 590 000c 3B60 str r3, [r7]
- 161:user_src/rkfifo.c **** unsigned int size = fifo->mask + 1;
- 591 .loc 1 161 29
- 592 000e FB68 ldr r3, [r7, #12]
- 593 0010 9B68 ldr r3, [r3, #8]
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 14
- 594 .loc 1 161 18
- 595 0012 0133 adds r3, r3, #1
- 596 0014 7B62 str r3, [r7, #36]
- 162:user_src/rkfifo.c **** unsigned int esize = fifo->esize;
- 597 .loc 1 162 18
- 598 0016 FB68 ldr r3, [r7, #12]
- 599 0018 DB68 ldr r3, [r3, #12]
- 600 001a 3B62 str r3, [r7, #32]
- 163:user_src/rkfifo.c **** unsigned int l;
- 164:user_src/rkfifo.c ****
- 165:user_src/rkfifo.c **** off &= fifo->mask;
- 601 .loc 1 165 16
- 602 001c FB68 ldr r3, [r7, #12]
- 603 001e 9B68 ldr r3, [r3, #8]
- 604 .loc 1 165 9
- 605 0020 3A68 ldr r2, [r7]
- 606 0022 1340 ands r3, r3, r2
- 607 0024 3B60 str r3, [r7]
- 166:user_src/rkfifo.c **** if (esize != 1)
- 608 .loc 1 166 8
- 609 0026 3B6A ldr r3, [r7, #32]
- 610 0028 012B cmp r3, #1
- 611 002a 0ED0 beq .L26
- 167:user_src/rkfifo.c **** {
- 168:user_src/rkfifo.c **** off *= esize;
- 612 .loc 1 168 13
- 613 002c 3B68 ldr r3, [r7]
- 614 002e 3A6A ldr r2, [r7, #32]
- 615 0030 02FB03F3 mul r3, r2, r3
- 616 0034 3B60 str r3, [r7]
- 169:user_src/rkfifo.c **** size *= esize;
- 617 .loc 1 169 14
- 618 0036 7B6A ldr r3, [r7, #36]
- 619 0038 3A6A ldr r2, [r7, #32]
- 620 003a 02FB03F3 mul r3, r2, r3
- 621 003e 7B62 str r3, [r7, #36]
- 170:user_src/rkfifo.c **** len *= esize;
- 622 .loc 1 170 13
- 623 0040 7B68 ldr r3, [r7, #4]
- 624 0042 3A6A ldr r2, [r7, #32]
- 625 0044 02FB03F3 mul r3, r2, r3
- 626 0048 7B60 str r3, [r7, #4]
- 627 .L26:
- 628 .LBB3:
- 171:user_src/rkfifo.c **** }
- 172:user_src/rkfifo.c **** l = min(len, size - off);
- 629 .loc 1 172 9
- 630 004a 7B68 ldr r3, [r7, #4]
- 631 004c BB61 str r3, [r7, #24]
- 632 004e 7A6A ldr r2, [r7, #36]
- 633 0050 3B68 ldr r3, [r7]
- 634 0052 D31A subs r3, r2, r3
- 635 0054 7B61 str r3, [r7, #20]
- 636 0056 7A69 ldr r2, [r7, #20]
- 637 0058 BB69 ldr r3, [r7, #24]
- 638 005a 9342 cmp r3, r2
- 639 005c 28BF it cs
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 15
- 640 005e 1346 movcs r3, r2
- 641 .LBE3:
- 642 .loc 1 172 7
- 643 0060 FB61 str r3, [r7, #28]
- 173:user_src/rkfifo.c ****
- 174:user_src/rkfifo.c **** memcpy(dst, (uint8_t*)fifo->data + off, l);
- 644 .loc 1 174 31
- 645 0062 FB68 ldr r3, [r7, #12]
- 646 0064 1A69 ldr r2, [r3, #16]
- 647 .loc 1 174 5
- 648 0066 3B68 ldr r3, [r7]
- 649 0068 1344 add r3, r3, r2
- 650 006a FA69 ldr r2, [r7, #28]
- 651 006c 1946 mov r1, r3
- 652 006e B868 ldr r0, [r7, #8]
- 653 0070 FFF7FEFF bl memcpy
- 175:user_src/rkfifo.c **** memcpy((uint8_t*)dst + l, fifo->data, len - l);
- 654 .loc 1 175 5
- 655 0074 BA68 ldr r2, [r7, #8]
- 656 0076 FB69 ldr r3, [r7, #28]
- 657 0078 D018 adds r0, r2, r3
- 658 .loc 1 175 35
- 659 007a FB68 ldr r3, [r7, #12]
- 660 007c 1969 ldr r1, [r3, #16]
- 661 .loc 1 175 5
- 662 007e 7A68 ldr r2, [r7, #4]
- 663 0080 FB69 ldr r3, [r7, #28]
- 664 0082 D31A subs r3, r2, r3
- 665 0084 1A46 mov r2, r3
- 666 0086 FFF7FEFF bl memcpy
- 176:user_src/rkfifo.c ****
- 177:user_src/rkfifo.c **** /* smp_wmb(); */
- 178:user_src/rkfifo.c **** }
- 667 .loc 1 178 1
- 668 008a 00BF nop
- 669 008c 2837 adds r7, r7, #40
- 670 .LCFI35:
- 671 .cfi_def_cfa_offset 8
- 672 008e BD46 mov sp, r7
- 673 .LCFI36:
- 674 .cfi_def_cfa_register 13
- 675 @ sp needed
- 676 0090 80BD pop {r7, pc}
- 677 .cfi_endproc
- 678 .LFE6:
- 680 .section .text.rkfifo_out_peek,"ax",%progbits
- 681 .align 1
- 682 .global rkfifo_out_peek
- 683 .syntax unified
- 684 .thumb
- 685 .thumb_func
- 687 rkfifo_out_peek:
- 688 .LFB7:
- 179:user_src/rkfifo.c ****
- 180:user_src/rkfifo.c **** unsigned int rkfifo_out_peek(rkfifo_t *fifo, void *buf, unsigned int len)
- 181:user_src/rkfifo.c **** {
- 689 .loc 1 181 1
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 16
- 690 .cfi_startproc
- 691 @ args = 0, pretend = 0, frame = 24
- 692 @ frame_needed = 1, uses_anonymous_args = 0
- 693 0000 80B5 push {r7, lr}
- 694 .LCFI37:
- 695 .cfi_def_cfa_offset 8
- 696 .cfi_offset 7, -8
- 697 .cfi_offset 14, -4
- 698 0002 86B0 sub sp, sp, #24
- 699 .LCFI38:
- 700 .cfi_def_cfa_offset 32
- 701 0004 00AF add r7, sp, #0
- 702 .LCFI39:
- 703 .cfi_def_cfa_register 7
- 704 0006 F860 str r0, [r7, #12]
- 705 0008 B960 str r1, [r7, #8]
- 706 000a 7A60 str r2, [r7, #4]
- 182:user_src/rkfifo.c **** unsigned int l;
- 183:user_src/rkfifo.c ****
- 184:user_src/rkfifo.c **** l = fifo->in - fifo->out;
- 707 .loc 1 184 13
- 708 000c FB68 ldr r3, [r7, #12]
- 709 000e 1A68 ldr r2, [r3]
- 710 .loc 1 184 24
- 711 0010 FB68 ldr r3, [r7, #12]
- 712 0012 5B68 ldr r3, [r3, #4]
- 713 .loc 1 184 7
- 714 0014 D31A subs r3, r2, r3
- 715 0016 7B61 str r3, [r7, #20]
- 185:user_src/rkfifo.c **** if (len > l)
- 716 .loc 1 185 8
- 717 0018 7A68 ldr r2, [r7, #4]
- 718 001a 7B69 ldr r3, [r7, #20]
- 719 001c 9A42 cmp r2, r3
- 720 001e 01D9 bls .L28
- 186:user_src/rkfifo.c **** len = l;
- 721 .loc 1 186 13
- 722 0020 7B69 ldr r3, [r7, #20]
- 723 0022 7B60 str r3, [r7, #4]
- 724 .L28:
- 187:user_src/rkfifo.c ****
- 188:user_src/rkfifo.c **** __rkfifo_copy_out(fifo, buf, len, fifo->out);
- 725 .loc 1 188 43
- 726 0024 FB68 ldr r3, [r7, #12]
- 727 0026 5B68 ldr r3, [r3, #4]
- 728 .loc 1 188 5
- 729 0028 7A68 ldr r2, [r7, #4]
- 730 002a B968 ldr r1, [r7, #8]
- 731 002c F868 ldr r0, [r7, #12]
- 732 002e FFF7FEFF bl __rkfifo_copy_out
- 189:user_src/rkfifo.c **** return len;
- 733 .loc 1 189 12
- 734 0032 7B68 ldr r3, [r7, #4]
- 190:user_src/rkfifo.c **** }
- 735 .loc 1 190 1
- 736 0034 1846 mov r0, r3
- 737 0036 1837 adds r7, r7, #24
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 17
- 738 .LCFI40:
- 739 .cfi_def_cfa_offset 8
- 740 0038 BD46 mov sp, r7
- 741 .LCFI41:
- 742 .cfi_def_cfa_register 13
- 743 @ sp needed
- 744 003a 80BD pop {r7, pc}
- 745 .cfi_endproc
- 746 .LFE7:
- 748 .section .text.rkfifo_out,"ax",%progbits
- 749 .align 1
- 750 .global rkfifo_out
- 751 .syntax unified
- 752 .thumb
- 753 .thumb_func
- 755 rkfifo_out:
- 756 .LFB8:
- 191:user_src/rkfifo.c ****
- 192:user_src/rkfifo.c **** unsigned int rkfifo_out(rkfifo_t *fifo, void *buf, unsigned int len)
- 193:user_src/rkfifo.c **** {
- 757 .loc 1 193 1
- 758 .cfi_startproc
- 759 @ args = 0, pretend = 0, frame = 16
- 760 @ frame_needed = 1, uses_anonymous_args = 0
- 761 0000 80B5 push {r7, lr}
- 762 .LCFI42:
- 763 .cfi_def_cfa_offset 8
- 764 .cfi_offset 7, -8
- 765 .cfi_offset 14, -4
- 766 0002 84B0 sub sp, sp, #16
- 767 .LCFI43:
- 768 .cfi_def_cfa_offset 24
- 769 0004 00AF add r7, sp, #0
- 770 .LCFI44:
- 771 .cfi_def_cfa_register 7
- 772 0006 F860 str r0, [r7, #12]
- 773 0008 B960 str r1, [r7, #8]
- 774 000a 7A60 str r2, [r7, #4]
- 194:user_src/rkfifo.c **** len = rkfifo_out_peek(fifo, buf, len);
- 775 .loc 1 194 11
- 776 000c 7A68 ldr r2, [r7, #4]
- 777 000e B968 ldr r1, [r7, #8]
- 778 0010 F868 ldr r0, [r7, #12]
- 779 0012 FFF7FEFF bl rkfifo_out_peek
- 780 0016 7860 str r0, [r7, #4]
- 195:user_src/rkfifo.c **** fifo->out += len;
- 781 .loc 1 195 15
- 782 0018 FB68 ldr r3, [r7, #12]
- 783 001a 5A68 ldr r2, [r3, #4]
- 784 001c 7B68 ldr r3, [r7, #4]
- 785 001e 1A44 add r2, r2, r3
- 786 0020 FB68 ldr r3, [r7, #12]
- 787 0022 5A60 str r2, [r3, #4]
- 196:user_src/rkfifo.c **** return len;
- 788 .loc 1 196 12
- 789 0024 7B68 ldr r3, [r7, #4]
- 197:user_src/rkfifo.c **** }
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 18
- 790 .loc 1 197 1
- 791 0026 1846 mov r0, r3
- 792 0028 1037 adds r7, r7, #16
- 793 .LCFI45:
- 794 .cfi_def_cfa_offset 8
- 795 002a BD46 mov sp, r7
- 796 .LCFI46:
- 797 .cfi_def_cfa_register 13
- 798 @ sp needed
- 799 002c 80BD pop {r7, pc}
- 800 .cfi_endproc
- 801 .LFE8:
- 803 .text
- 804 .Letext0:
- 805 .file 2 "d:\\arm-gcc\\arm-none-eabi\\include\\machine\\_default_types.h"
- 806 .file 3 "d:\\arm-gcc\\arm-none-eabi\\include\\sys\\_stdint.h"
- 807 .file 4 "user_inc/rkfifo.h"
- ARM GAS C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s page 19
- DEFINED SYMBOLS
- *ABS*:00000000 rkfifo.c
- C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s:20 .text.fls_int:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s:25 .text.fls_int:00000000 fls_int
- C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s:150 .text.rounddown_pow_of_two:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s:155 .text.rounddown_pow_of_two:00000000 rounddown_pow_of_two
- C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s:218 .text.kfifo_unused:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s:223 .text.kfifo_unused:00000000 kfifo_unused
- C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s:273 .text.rkfifo_init:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s:279 .text.rkfifo_init:00000000 rkfifo_init
- C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s:374 .text.__rkfifo_copy_in:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s:379 .text.__rkfifo_copy_in:00000000 __rkfifo_copy_in
- C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s:488 .text.rkfifo_in:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s:494 .text.rkfifo_in:00000000 rkfifo_in
- C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s:565 .text.__rkfifo_copy_out:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s:570 .text.__rkfifo_copy_out:00000000 __rkfifo_copy_out
- C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s:681 .text.rkfifo_out_peek:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s:687 .text.rkfifo_out_peek:00000000 rkfifo_out_peek
- C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s:749 .text.rkfifo_out:00000000 $t
- C:\Users\zl835\AppData\Local\Temp\ccd7h6eA.s:755 .text.rkfifo_out:00000000 rkfifo_out
- UNDEFINED SYMBOLS
- memcpy
|