Page 1 objs\release\Spi.s Command Line: C:\ghs\comp_202114\asarm.exe -annotate_call_return -elf -b0 -IGenerated\inc\ -I..\Generated\inc -I..\Src -I..\Generated\inc\ -I..\..\..\MCAL\Platform_ZX_K14xM\Inc -I..\..\..\MCAL\Platform_ZX_K14xM\StartUp\Inc -I..\..\..\MCAL\McalLib_ZX_K14xM\Inc\Devices -I..\..\..\MCAL\McalLib_ZX_K14xM\Inc -I..\..\..\MCAL\Mcu_ZX_K14xM\Inc -I..\..\..\MCAL\Adc_ZX_K14xM\Inc -I..\..\..\MCAL\Dem_ZX_K14xM\Inc -I..\..\..\MCAL\Det_ZX_K14xM\Inc -I..\..\..\MCAL\Dio_ZX_K14xM\Inc -I..\..\..\MCAL\Base_ZX_K14xM\Inc -I..\..\..\MCAL\Wdg_ZX_K14xM\Inc -I..\..\..\MCAL\Port_ZX_K14xM\Inc -I..\..\..\MCAL\Rte_ZX_K14xM\Inc -I..\..\..\MCAL\Base_ZX_K14xM\Inc\MemMap -I..\..\..\MCAL\WdgIf_ZX_K14xM\Inc -I..\..\..\MCAL\Can_ZX_K14xM\Inc -I..\..\..\MCAL\Gpt_ZX_K14xM\Inc -I..\..\..\MCAL\Dma_ZX_K14xM\Inc -I..\..\..\MCAL\Pwm_ZX_K14xM\Inc -I..\..\..\MCAL\EcuM_ZX_K14xM\Inc -I..\..\..\MCAL\CanIf_ZX_K14xM\Inc -I..\..\..\mcal\Icu_ZX_K14xM\Inc -I..\..\..\MCAL\Ecum_ZX_K14xM\Inc -I..\..\..\MCAL\Fls_ZX_K14xM\Inc -I..\..\..\MCAL\MemIf_ZX_K14xM\Inc -I..\..\..\mcal\Spi_ZX_K14xM\Inc -I..\..\..\Package\OS\Task -I..\..\..\Package\OS\Task\cpu_port\Zhixin -I..\..\..\Package\cm_backtrace -I..\..\..\Package\Cdd -I..\..\..\Package\Cdd\CddBuck\Gen -I..\..\..\Package\Cdd\CddSbc\Api -I..\..\..\Package\Cdd\CddSbc\Cfg -I..\..\..\Package\Cdd\CddTle94x1\Cfg -I..\..\..\Package\Cdd\CddTle94x1\Api -I..\..\..\Package\Cdd\CddTle94x1\Gen -I..\..\..\Package\Cdd\CddBoost\Api -IC:\ghs\comp_202114\lib\thumb2 -cpu=cortexm4f -fpu=vfpv3_d16 -fpu=single -hardware_divide -source=Spi.c -o objs\release\Spi.o -list=objs\release\Spi.lst objs\release\Spi.s Original File: objs\release\Spi.s Source File: Spi.c Directory: D:\AUTOMFL\AutoSAR\ZHIXIN\MCAL_Capri(1.2.0)\Project\Capri\MultiProject Host OS: Windows EASE: Copyright (C) 1983-2021 Green Hills Software. All Rights Reserved. Release: Compiler v2021.1.4 Build Directory: [Directory] COMP-VAL-WIN1:C:/autoval2/v2021.1-2021-04-25/win64-comp Revision: [VCInfo] http://toolsvc/branches/release-branch-2021-1-comp/src@696881 (built by auto-compiler) Revision Date: Mon Apr 26 12:33:25 2021 Release Date: Mon Apr 26 08:01:05 2021 1 ;Driver Command: ccarm -c -MD -IGenerated\inc\ -I..\Generated\inc -I..\Src 2 ; -I..\Src -I..\Generated\inc\ -I..\Src 3 ; -I..\..\..\MCAL\Platform_ZX_K14xM\Inc 4 ; -I..\..\..\MCAL\Platform_ZX_K14xM\StartUp\Inc 5 ; -I..\..\..\MCAL\McalLib_ZX_K14xM\Inc\Devices 6 ; -I..\..\..\MCAL\McalLib_ZX_K14xM\Inc 7 ; -I..\..\..\MCAL\Mcu_ZX_K14xM\Inc -I..\..\..\MCAL\Adc_ZX_K14xM\Inc 8 ; -I..\..\..\MCAL\Dem_ZX_K14xM\Inc -I..\..\..\MCAL\Det_ZX_K14xM\Inc 9 ; -I..\..\..\MCAL\Dio_ZX_K14xM\Inc 10 ; -I..\..\..\MCAL\Base_ZX_K14xM\Inc 11 ; -I..\..\..\MCAL\Wdg_ZX_K14xM\Inc 12 ; -I..\..\..\MCAL\Port_ZX_K14xM\Inc 13 ; -I..\..\..\MCAL\Rte_ZX_K14xM\Inc 14 ; -I..\..\..\MCAL\Base_ZX_K14xM\Inc\MemMap 15 ; -I..\..\..\MCAL\WdgIf_ZX_K14xM\Inc 16 ; -I..\..\..\MCAL\Can_ZX_K14xM\Inc -I..\..\..\MCAL\Gpt_ZX_K14xM\Inc 17 ; -I..\..\..\MCAL\Dma_ZX_K14xM\Inc -I..\..\..\MCAL\Pwm_ZX_K14xM\Inc 18 ; -I..\..\..\MCAL\EcuM_ZX_K14xM\Inc 19 ; -I..\..\..\MCAL\Can_ZX_K14xM\Inc 20 ; -I..\..\..\MCAL\CanIf_ZX_K14xM\Inc 21 ; -I..\..\..\mcal\Icu_ZX_K14xM\Inc 22 ; -I..\..\..\MCAL\Ecum_ZX_K14xM\Inc 23 ; -I..\..\..\MCAL\Fls_ZX_K14xM\Inc 24 ; -I..\..\..\MCAL\MemIf_ZX_K14xM\Inc 25 ; -I..\..\..\mcal\Icu_ZX_K14xM\Inc -I..\..\..\mcal\Spi_ZX_K14xM\Inc 26 ; -I..\..\..\Package\OS\Task 27 ; -I..\..\..\Package\OS\Task\cpu_port\Zhixin 28 ; -I..\..\..\Package\cm_backtrace -I..\..\..\Package\Cdd 29 ; -I..\..\..\Package\Cdd\CddBuck\Gen 30 ; -I..\..\..\Package\Cdd\CddBuck\Gen 31 ; -I..\..\..\Package\Cdd\CddSbc\Api 32 ; -I..\..\..\Package\Cdd\CddSbc\Cfg 33 ; -I..\..\..\Package\Cdd\CddTle94x1\Cfg 34 ; -I..\..\..\Package\Cdd\CddTle94x1\Api 35 ; -I..\..\..\Package\Cdd\CddTle94x1\Gen 36 ; -I..\..\..\Package\Cdd\CddBoost\Api -cpu=cortexm4f -Wshadow 37 ; -Wtrigraphs -keeptempfiles -Wundef -Wimplicit-int -dual_debug 38 ; --no_commons --no_exceptions --gnu_asm 39 ; --incorrect_pragma_warnings --prototype_errors -list 40 ; --misra_2004=2.1 -ignore_debug_references 41 ; -preprocess_assembly_files -thumb_lib -thumb --hardware_divide 42 ; -c99 -no_japanese_automotive_c --std --stdl --slash_comment 43 ; -Ospeed --no_debug -object_dir=objs\release -filetype.c 44 ; ..\..\..\mcal\Spi_ZX_K14xM\Src\Spi.c -o objs\release\Spi.o 45 ;Source File: ..\..\..\mcal\Spi_ZX_K14xM\Src\Spi.c 46 ;Directory: 47 ; D:\AUTOMFL\AutoSAR\ZHIXIN\MCAL_Capri(1.2.0)\Project\Capri\MultiProject 48 ;Compile Date: Mon Dec 18 00:01:43 2023 49 ;Host OS: Win64 50 ;Version: C-ARM 2021.1.4 RELEASE VERSION Page 2 objs\release\Spi.s 51 ;Release: Compiler v2021.1.4 52 ;Revision Date: Mon Apr 26 12:37:23 2021 53 ;Release Date: Mon Apr 26 08:01:05 2021 54 ; ecom -w -OLM 55 .section ".mcal_code","ax" 56 .align 2 57 ..gh.f.f.1.a.1.e.0: 58 .endo ..gh.f.f.1.a.1.e.0 59 .thumb2 60 Spi_CheckSequence: 00000000 b510 61 push {r4,lr} 00000002 f2400c00* 62 movw r12,%lo(Spi_ConfigPtr) 00000006 f2c00c00* 63 movt r12,%hi(Spi_ConfigPtr) 0000000a f8dc3000 64 ldr.w r3,[r12] 0000000e b933* 65 cbnz r3,.L1194 00000010 231a 66 movs r3,26 00000012 2401 67 movs r4,1 00000014 2100 68 movs r1,0 00000016 2053 69 movs r0,83 70 .L1525: 71 00000018 f000f800* 72 bl Det_ReportError 0000001c e021* 73 b .L1192 74 .L1194: 0000001e f893c006 75 ldrb r12,[r3,6] 00000022 2400 76 movs r4,0 00000024 4561 77 cmp r1,r12 00000026 d906* 78 bls .L1197 00000028 230c 79 movs r3,12 0000002a 2401 80 movs r4,1 0000002c 2100 81 movs r1,0 0000002e 2053 82 movs r0,83 83 .L1527: 84 00000030 f000f800* 85 bl Det_ReportError 00000034 e015* 86 b .L1192 87 .L1197: 00000036 695b 88 ldr r3,[r3,20] 00000038 f8531021 89 ldr.w r1,[r3,r1 lsl 2] 0000003c b111* 90 cbz r1,.L1204 0000003e 684b 91 ldr r3,[r1,4] 00000040 4298 92 cmp r0,r3 00000042 d006* 93 beq .L1203 94 .L1204: 00000044 230f 95 movs r3,15 00000046 2401 96 movs r4,1 00000048 2100 97 movs r1,0 0000004a 2053 98 movs r0,83 99 .L1529: 100 0000004c f000f800* 101 bl Det_ReportError 00000050 e007* 102 b .L1192 103 .L1203: 00000052 8808 104 ldrh r0,[r1] 00000054 0001 105 movs r1,r0 00000056 d104* 106 bne .L1192 00000058 235c 107 movs r3,92 0000005a 2401 108 movs r4,1 0000005c 2053 109 movs r0,83 110 .L1531: 111 Page 3 objs\release\Spi.s 0000005e f000f800* 112 bl Det_ReportError 113 .L1192: 00000062 4620 114 cpy r0,r4 115 .L1533: 116 00000064 bd10 117 pop {r4,pc} 118 .endf Spi_CheckSequence 119 ;Ret r4 local 120 121 ;CoreId r0 param 122 ;Sequence r1 param 123 ;ServiceId r2 param 124 125 .section ".mcal_bss","awb" 126 .align 4 00000000 00000000 127 Spi_ConfigPtr: .space 4 128 .endo Spi_ConfigPtr 129 .section ".ghcalltbl","" 130 .align 4 00000000 00000000* 131 .L1526: .data.w .L1525 132 .endo .L1526 00000004 00000000* 133 .L1528: .data.w .L1527 134 .endo .L1528 00000008 00000000* 135 .L1530: .data.w .L1529 136 .endo .L1530 0000000c 00000000* 137 .L1532: .data.w .L1531 138 .endo .L1532 139 .section ".ghrettbl","" 140 .align 4 00000000 00000000* 141 .L1534: .data.w .L1533 142 .endo .L1534 143 .section ".mcal_code","ax" 144 ..gh.f.f.1.a.1.e.1: 145 .endo ..gh.f.f.1.a.1.e.1 146 Spi_CheckChannel: 00000066 b510 147 push {r4,lr} 00000068 f2400c00* 148 movw r12,%lo(Spi_ConfigPtr) 0000006c f2c00c00* 149 movt r12,%hi(Spi_ConfigPtr) 00000070 f8dc3000 150 ldr.w r3,[r12] 00000074 b933* 151 cbnz r3,.L1537 00000076 231a 152 movs r3,26 00000078 2401 153 movs r4,1 0000007a 2100 154 movs r1,0 0000007c 2053 155 movs r0,83 156 .L1814: 157 0000007e f000f800* 158 bl Det_ReportError 00000082 e018* 159 b .L1535 160 .L1537: 00000084 f893c002 161 ldrb r12,[r3,2] 00000088 2400 162 movs r4,0 0000008a 4561 163 cmp r1,r12 0000008c d906* 164 bls .L1540 0000008e 230a 165 movs r3,10 00000090 2401 166 movs r4,1 00000092 2100 167 movs r1,0 00000094 2053 168 movs r0,83 169 .L1816: 170 00000096 f000f800* 171 bl Det_ReportError 0000009a e00c* 172 b .L1535 Page 4 objs\release\Spi.s 173 .L1540: 0000009c 68db 174 ldr r3,[r3,12] 0000009e f8531021 175 ldr.w r1,[r3,r1 lsl 2] 000000a2 b111* 176 cbz r1,.L1547 000000a4 6949 177 ldr r1,[r1,20] 000000a6 4288 178 cmp r0,r1 000000a8 d005* 179 beq .L1535 180 .L1547: 000000aa 230f 181 movs r3,15 000000ac 2401 182 movs r4,1 000000ae 2100 183 movs r1,0 000000b0 2053 184 movs r0,83 185 .L1818: 186 000000b2 f000f800* 187 bl Det_ReportError 188 .L1535: 000000b6 4620 189 cpy r0,r4 190 .L1820: 191 000000b8 bd10 192 pop {r4,pc} 193 .endf Spi_CheckChannel 194 ;Ret r4 local 195 196 ;CoreId r0 param 197 ;Channel r1 param 198 ;ServiceId r2 param 199 200 .section ".ghcalltbl","" 00000010 00000000* 201 .L1815: .data.w .L1814 202 .endo .L1815 00000014 00000000* 203 .L1817: .data.w .L1816 204 .endo .L1817 00000018 00000000* 205 .L1819: .data.w .L1818 206 .endo .L1819 207 .section ".ghrettbl","" 00000004 00000000* 208 .L1821: .data.w .L1820 209 .endo .L1821 210 .section ".mcal_code","ax" 211 ..gh.f.f.1.a.1.e.2: 212 .endo ..gh.f.f.1.a.1.e.2 213 Spi_CheckHWUnit: 000000ba b510 214 push {r4,lr} 000000bc f2400c00* 215 movw r12,%lo(Spi_ConfigPtr) 000000c0 f2c00c00* 216 movt r12,%hi(Spi_ConfigPtr) 000000c4 f8dc3000 217 ldr.w r3,[r12] 000000c8 2401 218 movs r4,1 000000ca b933* 219 cbnz r3,.L1824 000000cc 231a 220 movs r3,26 000000ce 2100 221 movs r1,0 000000d0 2053 222 movs r0,83 223 .L2099: 224 000000d2 f000f800* 225 bl Det_ReportError 000000d6 4620 226 cpy r0,r4 227 .L2101: 228 000000d8 bd10 229 pop {r4,pc} 230 .L1824: 000000da 2902 231 cmp r1,2 000000dc d306* 232 blo .L1827 000000de 2361 233 movs r3,97 Page 5 objs\release\Spi.s 000000e0 2100 234 movs r1,0 000000e2 2053 235 movs r0,83 236 .L2103: 237 000000e4 f000f800* 238 bl Det_ReportError 000000e8 4620 239 cpy r0,r4 240 .L2105: 241 000000ea bd10 242 pop {r4,pc} 243 .L1827: 000000ec 69db 244 ldr r3,[r3,28] 000000ee f8531021 245 ldr.w r1,[r3,r1 lsl 2] 000000f2 b121* 246 cbz r1,.L1834 000000f4 6889 247 ldr r1,[r1,8] 000000f6 4288 248 cmp r0,r1 000000f8 bf04 249 itt eq 000000fa 2000 250 mov r0,0 251 .L2107: 252 000000fc bd10 253 pop {r4,pc} 254 .L1834: 000000fe 230f 255 movs r3,15 00000100 2100 256 movs r1,0 00000102 2053 257 movs r0,83 258 .L2109: 259 00000104 f000f800* 260 bl Det_ReportError 00000108 4620 261 cpy r0,r4 262 .L2111: 263 0000010a bd10 264 pop {r4,pc} 265 .endf Spi_CheckHWUnit 266 ;Ret r4 local 267 268 ;CoreId r0 param 269 ;HWUnit r1 param 270 ;ServiceId r2 param 271 272 .section ".ghcalltbl","" 0000001c 00000000* 273 .L2100: .data.w .L2099 274 .endo .L2100 275 .section ".ghrettbl","" 00000008 00000000* 276 .L2102: .data.w .L2101 277 .endo .L2102 278 .section ".ghcalltbl","" 00000020 00000000* 279 .L2104: .data.w .L2103 280 .endo .L2104 281 .section ".ghrettbl","" 0000000c 00000000* 282 .L2106: .data.w .L2105 283 .endo .L2106 00000010 00000000* 284 .L2108: .data.w .L2107 285 .endo .L2108 286 .section ".ghcalltbl","" 00000024 00000000* 287 .L2110: .data.w .L2109 288 .endo .L2110 289 .section ".ghrettbl","" 00000014 00000000* 290 .L2112: .data.w .L2111 291 .endo .L2112 292 .section ".mcal_code","ax" 293 ..gh.f.f.1.a.1.e.3: 294 .endo ..gh.f.f.1.a.1.e.3 Page 6 objs\release\Spi.s 295 Spi_StartNextJob: 0000010c b5f0 296 push {r4-r7,lr} 0000010e 4605 297 cpy r5,r0 298 .L3663: 299 00000110 f000f800* 300 bl SchM_Enter_Spi_UpdateAsyncHWUnitQueue 00000114 f9950010 301 ldrsb r0,[r5,16] 00000118 2800 302 cmp r0,0 0000011a db78* 303 blt .L2115 0000011c 0041 304 lsls r1,r0,1 0000011e 186a 305 adds r2,r5,r1 00000120 5a6c 306 ldrh r4,[r5,r1] 00000122 f2400700* 307 movw r7,%lo(Spi_JobStateArray) 00000126 f2c00700* 308 movt r7,%hi(Spi_JobStateArray) 0000012a ebc40184 309 rsb r1,r4,r4 lsl 2 0000012e 008e 310 lsls r6,r1,2 00000130 19f1 311 adds r1,r6,r7 00000132 8909 312 ldrh r1,[r1,8] 00000134 8011 313 strh r1,[r2] 00000136 f64f72ff 314 mov r2,0xffff 0000013a 4291 315 cmp r1,r2 0000013c d154* 316 bne .L2117 0000013e eb050240 317 add r2,r5,r0 lsl 1 00000142 1e40 318 subs r0,r0,1 00000144 8111 319 strh r1,[r2,8] 00000146 f1000101 320 add r1,r0,1 0000014a bf48 321 it mi 0000014c 2100 322 mov r1,0 0000014e 08cb 323 lsrs r3,r1,3 00000150 d03b* 324 beq .L2209 00000152 f64f72ff 325 mov r2,0xffff 326 .L2217: 00000156 ea4f0c40 327 lsl r12,r0,1 0000015a f83cc005 328 ldrh r12,[r12,r5] 0000015e 4594 329 cmp r12,r2 00000160 d141* 330 bne .L2125 00000162 1e40 331 subs r0,r0,1 00000164 ea4f0c40 332 lsl r12,r0,1 00000168 f83cc005 333 ldrh r12,[r12,r5] 0000016c 4594 334 cmp r12,r2 0000016e d13a* 335 bne .L2125 00000170 1e40 336 subs r0,r0,1 00000172 ea4f0c40 337 lsl r12,r0,1 00000176 f83cc005 338 ldrh r12,[r12,r5] 0000017a 4594 339 cmp r12,r2 0000017c d133* 340 bne .L2125 0000017e 1e40 341 subs r0,r0,1 00000180 ea4f0c40 342 lsl r12,r0,1 00000184 f83cc005 343 ldrh r12,[r12,r5] 00000188 4594 344 cmp r12,r2 0000018a d12c* 345 bne .L2125 0000018c 1e40 346 subs r0,r0,1 0000018e ea4f0c40 347 lsl r12,r0,1 00000192 f83cc005 348 ldrh r12,[r12,r5] 00000196 4594 349 cmp r12,r2 00000198 d125* 350 bne .L2125 0000019a 1e40 351 subs r0,r0,1 0000019c ea4f0c40 352 lsl r12,r0,1 000001a0 f83cc005 353 ldrh r12,[r12,r5] 000001a4 4594 354 cmp r12,r2 000001a6 d11e* 355 bne .L2125 Page 7 objs\release\Spi.s 000001a8 1e40 356 subs r0,r0,1 000001aa ea4f0c40 357 lsl r12,r0,1 000001ae f83cc005 358 ldrh r12,[r12,r5] 000001b2 4594 359 cmp r12,r2 000001b4 d117* 360 bne .L2125 000001b6 1e40 361 subs r0,r0,1 000001b8 ea4f0c40 362 lsl r12,r0,1 000001bc f83cc005 363 ldrh r12,[r12,r5] 000001c0 4594 364 cmp r12,r2 000001c2 d110* 365 bne .L2125 000001c4 1e40 366 subs r0,r0,1 000001c6 1e5b 367 subs r3,r3,1 000001c8 d1c5* 368 bne .L2217 369 .L2209: 000001ca f0110107 370 ands r1,r1,7 000001ce d00a* 371 beq .L2125 000001d0 eb050240 372 add r2,r5,r0 lsl 1 000001d4 f64f7cff 373 mov r12,0xffff 374 .L2212: 000001d8 8813 375 ldrh r3,[r2] 000001da 4563 376 cmp r3,r12 000001dc d103* 377 bne .L2125 000001de 1e92 378 subs r2,r2,2 000001e0 1e40 379 subs r0,r0,1 000001e2 1e49 380 subs r1,r1,1 000001e4 d1f8* 381 bne .L2212 382 .L2125: 000001e6 7428 383 strb r0,[r5,16] 384 .L2117: 385 .L3665: 386 000001e8 f000f800* 387 bl SchM_Exit_Spi_UpdateAsyncHWUnitQueue 000001ec 2001 388 movs r0,1 000001ee 51b8 389 str r0,[r7,r6] 000001f0 2000 390 movs r0,0 000001f2 7628 391 strb r0,[r5,24] 000001f4 836c 392 strh r4,[r5,26] 000001f6 f2400100* 393 movw r1,%lo(Spi_ConfigPtr) 000001fa f2c00100* 394 movt r1,%hi(Spi_ConfigPtr) 000001fe 6808 395 ldr r0,[r1] 00000200 6900 396 ldr r0,[r0,16] 00000202 f8500024 397 ldr.w r0,[r0,r4 lsl 2] 00000206 e8bd40f0 398 pop {r4-r7,lr} 399 .L3667: 400 0000020a f000b806* 401 b Spi_TransferAsyncJob 402 .L2115: 0000020e 2001 403 movs r0,1 00000210 6168 404 str r0,[r5,20] 00000212 e8bd40f0 405 pop {r4-r7,lr} 406 .L3669: 407 00000216 f000b800* 408 b SchM_Exit_Spi_UpdateAsyncHWUnitQueue 409 .endf Spi_StartNextJob 410 ;Job r4 local 411 ;JobListHead r2 local 412 ;Priority r1 local 413 ;MaxScheduledPriority r0 local 414 415 ;HWUnitQueue r5 param 416 ;CoreId none param Page 8 objs\release\Spi.s 417 418 .section ".ghcalltbl","" 00000028 00000000* 419 .L3664: .data.w .L3663 420 .endo .L3664 0000002c 00000000* 421 .L3666: .data.w .L3665 422 .endo .L3666 423 .section ".ghtailcalltbl","" 424 .align 4 00000000 00000000* 425 .L3668: .data.w .L3667 426 .endo .L3668 00000004 00000000* 427 .L3670: .data.w .L3669 428 .endo .L3670 429 .section ".mcal_code","ax" 430 ..gh.f.f.1.a.1.e.4: 431 .endo ..gh.f.f.1.a.1.e.4 432 Spi_TransferAsyncJob: 0000021a b510 433 push {r4,lr} 0000021c b081 434 sub sp,sp,4 0000021e 4604 435 cpy r4,r0 00000220 68c0 436 ldr r0,[r0,12] 00000222 2800 437 cmp r0,0 00000224 bf18 438 it ne 439 .L3817: 440 00000226 4780 441 blx r0 00000228 7820 442 ldrb r0,[r4] 0000022a 2801 443 cmp r0,1 0000022c bf94 444 ite ls 0000022e 2301 445 mov r3,1 00000230 2300 446 mov r3,0 00000232 2000 447 movs r0,0 00000234 9000 448 str r0,[sp] 00000236 6a20 449 ldr r0,[r4,32] 00000238 f2400200* 450 movw r2,%lo(Spi_ConfigPtr) 0000023c f2c00200* 451 movt r2,%hi(Spi_ConfigPtr) 00000240 6801 452 ldr r1,[r0] 00000242 6810 453 ldr r0,[r2] 00000244 68c2 454 ldr r2,[r0,12] 00000246 6860 455 ldr r0,[r4,4] 00000248 7800 456 ldrb r0,[r0] 0000024a f8520020 457 ldr.w r0,[r2,r0 lsl 2] 0000024e 2201 458 movs r2,1 459 .L3819: 460 00000250 f000f800* 461 bl Spi_Drvw_TransmitChannel 00000254 b001 462 add sp,sp,4 463 .L3821: 464 00000256 bd10 465 pop {r4,pc} 466 .endf Spi_TransferAsyncJob 467 ;IsLastChannel r3 local 468 469 ;JobCfgPtr r4 param 470 471 .section ".ghcalltbl","" 00000030 00000000* 472 .L3818: .data.w .L3817 473 .endo .L3818 00000034 00000000* 474 .L3820: .data.w .L3819 475 .endo .L3820 476 .section ".ghrettbl","" 00000018 00000000* 477 .L3822: .data.w .L3821 Page 9 objs\release\Spi.s 478 .endo .L3822 479 .section ".mcal_code","ax" 480 .assert 0x0 + (Spi_HWUnitQueueArray - Spi_ConfigPtr) +0 == 20 481 .assert 0x0 + (Spi_ConfigPtr - Spi_ConfigPtr) +0 == 0 482 .assert 0x0 + (Spi_SequenceStateArray - Spi_ConfigPtr) +0 == 76 483 .assert 0x0 + (Spi_SeqUsedHWUnits - Spi_ConfigPtr) +0 == 4 484 ..gh.f.f.1.a.1.e.5: 485 .endo ..gh.f.f.1.a.1.e.5 486 Spi_Init:: 00000258 e92d4ff0 487 push {r4-fp,lr} 0000025c f2400400* 488 movw r4,%lo(Spi_ConfigPtr) 00000260 f2c00400* 489 movt r4,%hi(Spi_ConfigPtr) 00000264 6821 490 ldr r1,[r4] 00000266 b084 491 sub sp,sp,16 00000268 b141* 492 cbz r1,.L3829 0000026a 234a 493 movs r3,74 0000026c 2200 494 movs r2,0 0000026e 4611 495 cpy r1,r2 00000270 2053 496 movs r0,83 00000272 b004 497 add sp,sp,16 00000274 e8bd4ff0 498 pop {r4-fp,lr} 499 .L10072: 500 00000278 f000b800* 501 b Det_ReportError 502 .L3829: 0000027c 0002 503 movs r2,r0 0000027e d106* 504 bne .L3831 00000280 236a 505 movs r3,106 00000282 2053 506 movs r0,83 00000284 b004 507 add sp,sp,16 00000286 e8bd4ff0 508 pop {r4-fp,lr} 509 .L10074: 510 0000028a f000b800* 511 b Det_ReportError 512 .L3831: 0000028e 8881 513 ldrh r1,[r0,4] 00000290 7982 514 ldrb r2,[r0,6] 00000292 7883 515 ldrb r3,[r0,2] 00000294 2b04 516 cmp r3,4 00000296 bf3c 517 itt lo 00000298 2904 518 cmp r1,4 0000029a 2a04 519 cmp r2,4 0000029c d308* 520 blo .L3835 0000029e 235a 521 movs r3,90 000002a0 2200 522 movs r2,0 000002a2 4611 523 cpy r1,r2 000002a4 2053 524 movs r0,83 000002a6 b004 525 add sp,sp,16 000002a8 e8bd4ff0 526 pop {r4-fp,lr} 527 .L10076: 528 000002ac f000b800* 529 b Det_ReportError 530 .L3835: 000002b0 6881 531 ldr r1,[r0,8] 000002b2 000d 532 movs r5,r1 000002b4 d008* 533 beq .L3840 000002b6 230f 534 movs r3,15 000002b8 2200 535 movs r2,0 000002ba 4611 536 cpy r1,r2 000002bc 2053 537 movs r0,83 000002be b004 538 add sp,sp,16 Page 10 objs\release\Spi.s 000002c0 e8bd4ff0 539 pop {r4-fp,lr} 540 .L10078: 541 000002c4 f000b800* 542 b Det_ReportError 543 .L3840: 000002c8 6020 544 str r0,[r4] 000002ca 68c2 545 ldr r2,[r0,12] 000002cc 7883 546 ldrb r3,[r0,2] 000002ce 4680 547 mov r8,r0 000002d0 f2400000* 548 movw r0,%lo(Spi_ChannelStateArray) 000002d4 f2c00000* 549 movt r0,%hi(Spi_ChannelStateArray) 550 .L3844: 000002d8 6816 551 ldr r6,[r2] 000002da b1ee* 552 cbz r6,.L3850 000002dc f8d6c014 553 ldr.w r12,[r6,20] 000002e0 f1bc0f00 554 cmp r12,0 000002e4 d118* 555 bne .L3850 000002e6 f04f0c01 556 mov r12,1 000002ea f880c000 557 strb r12,[r0] 000002ee f8d6c000 558 ldr.w r12,[r6] 000002f2 f1bc0f00 559 cmp r12,0 000002f6 d109* 560 bne .L3848 000002f8 f8b6c00c 561 ldrh r12,[r6,12] 000002fc f8a0c002 562 strh r12,[r0,2] 00000300 1d00 563 adds r0,r0,4 00000302 1d12 564 adds r2,r2,4 00000304 1c49 565 adds r1,r1,1 00000306 4299 566 cmp r1,r3 00000308 d9e6* 567 bls .L3844 0000030a e00a* 568 b .L3854 569 .L3848: 0000030c f8d6c010 570 ldr.w r12,[r6,16] 00000310 462e 571 cpy r6,r5 00000312 e88c0060 572 stm r12,{r5-r6} 00000316 8045 573 strh r5,[r0,2] 574 .L3850: 00000318 1d00 575 adds r0,r0,4 0000031a 1d12 576 adds r2,r2,4 0000031c 1c49 577 adds r1,r1,1 0000031e 4299 578 cmp r1,r3 00000320 d9da* 579 bls .L3844 580 .L3854: 00000322 f8d83010 581 ldr.w r3,[r8,16] 00000326 f8b80004 582 ldrh r0,[r8,4] 0000032a f2400100* 583 movw r1,%lo(Spi_JobStateArray) 0000032e f2c00100* 584 movt r1,%hi(Spi_JobStateArray) 00000332 461a 585 cpy r2,r3 00000334 b918* 586 cbnz r0,.L5997 00000336 681e 587 ldr r6,[r3] 00000338 2001 588 movs r0,1 0000033a bbee* 589 cbnz r6,.L6000 0000033c e041* 590 b .L6002 591 .L5997: 0000033e 1c40 592 adds r0,r0,1 00000340 08c5 593 lsrs r5,r0,3 00000342 d037* 594 beq .L5999 595 .L6006: 00000344 6816 596 ldr r6,[r2] 00000346 b126* 597 cbz r6,.L6009 00000348 6976 598 ldr r6,[r6,20] 0000034a b916* 599 cbnz r6,.L6009 Page 11 objs\release\Spi.s 0000034c 46b4 600 mov r12,r6 0000034e e8811040 601 stm r1,{r6,r12} 602 .L6009: 00000352 6856 603 ldr r6,[r2,4] 00000354 b11e* 604 cbz r6,.L6012 00000356 6976 605 ldr r6,[r6,20] 00000358 b90e* 606 cbnz r6,.L6012 0000035a 60ce 607 str r6,[r1,12] 0000035c 610e 608 str r6,[r1,16] 609 .L6012: 0000035e 6896 610 ldr r6,[r2,8] 00000360 b11e* 611 cbz r6,.L6015 00000362 6976 612 ldr r6,[r6,20] 00000364 b90e* 613 cbnz r6,.L6015 00000366 618e 614 str r6,[r1,24] 00000368 61ce 615 str r6,[r1,28] 616 .L6015: 0000036a 68d6 617 ldr r6,[r2,12] 0000036c b11e* 618 cbz r6,.L6018 0000036e 6976 619 ldr r6,[r6,20] 00000370 b90e* 620 cbnz r6,.L6018 00000372 624e 621 str r6,[r1,36] 00000374 628e 622 str r6,[r1,40] 623 .L6018: 00000376 6916 624 ldr r6,[r2,16] 00000378 b11e* 625 cbz r6,.L6021 0000037a 6976 626 ldr r6,[r6,20] 0000037c b90e* 627 cbnz r6,.L6021 0000037e 630e 628 str r6,[r1,48] 00000380 634e 629 str r6,[r1,52] 630 .L6021: 00000382 6956 631 ldr r6,[r2,20] 00000384 b11e* 632 cbz r6,.L6024 00000386 6976 633 ldr r6,[r6,20] 00000388 b90e* 634 cbnz r6,.L6024 0000038a 63ce 635 str r6,[r1,60] 0000038c 640e 636 str r6,[r1,64] 637 .L6024: 0000038e 6996 638 ldr r6,[r2,24] 00000390 b11e* 639 cbz r6,.L6027 00000392 6976 640 ldr r6,[r6,20] 00000394 b90e* 641 cbnz r6,.L6027 00000396 648e 642 str r6,[r1,72] 00000398 64ce 643 str r6,[r1,76] 644 .L6027: 0000039a 69d6 645 ldr r6,[r2,28] 0000039c b11e* 646 cbz r6,.L6030 0000039e 6976 647 ldr r6,[r6,20] 000003a0 b90e* 648 cbnz r6,.L6030 000003a2 654e 649 str r6,[r1,84] 000003a4 658e 650 str r6,[r1,88] 651 .L6030: 000003a6 3220 652 adds r2,r2,32 000003a8 3160 653 adds r1,r1,96 000003aa 1e6d 654 subs r5,r5,1 000003ac d1ca* 655 bne .L6006 000003ae f0100007 656 ands r0,r0,7 000003b2 d00a* 657 beq .L3863 658 .L5999: 000003b4 6816 659 ldr r6,[r2] 000003b6 b126* 660 cbz r6,.L6002 Page 12 objs\release\Spi.s 661 .L6000: 000003b8 6975 662 ldr r5,[r6,20] 000003ba b915* 663 cbnz r5,.L6002 000003bc 46ac 664 mov r12,r5 000003be e8811020 665 stm r1,{r5,r12} 666 .L6002: 000003c2 1d12 667 adds r2,r2,4 000003c4 310c 668 adds r1,r1,12 000003c6 1e40 669 subs r0,r0,1 000003c8 d1f4* 670 bne .L5999 671 .L3863: 000003ca 4683 672 mov fp,r0 000003cc f8d80014 673 ldr.w r0,[r8,20] 000003d0 f8989006 674 ldrb r9,[r8,6] 000003d4 9003 675 str r0,[sp,12] 676 .L3864: 000003d6 9903 677 ldr r1,[sp,12] 000003d8 f851e02b 678 ldr.w lr,[r1,fp lsl 2] 000003dc f1be0f00 679 cmp lr,0 000003e0 f000808c* 680 beq .L3870 000003e4 f8de0004 681 ldr.w r0,[lr,4] 000003e8 2800 682 cmp r0,0 000003ea f0408087* 683 bne .L3870 000003ee f104014c 684 add r1,r4,76 000003f2 ea4f100b 685 lsl r0,fp,4 000003f6 1902 686 adds r2,r0,r4 000003f8 f8c2e050 687 str lr,[r2,80] 000003fc 2200 688 movs r2,0 000003fe 5042 689 str r2,[r0,r1] 00000400 f8be0000 690 ldrh r0,[lr] 00000404 4617 691 cpy r7,r2 00000406 9001 692 str r0,[sp,4] 00000408 08c6 693 lsrs r6,r0,3 0000040a d053* 694 beq .L5924 0000040c 4611 695 cpy r1,r2 0000040e 2501 696 movs r5,1 00000410 00f7 697 lsls r7,r6,3 00000412 f8de2008 698 ldr.w r2,[lr,8] 699 .L5930: 00000416 f832cb10 700 ldrh r12,[r2],16 0000041a f832ac0e 701 ldrh r10,[r2,-14] 0000041e f853c02c 702 ldr.w r12,[r3,r12 lsl 2] 00000422 f8320c0c 703 ldrh r0,[r2,-12] 00000426 f853a02a 704 ldr.w r10,[r3,r10 lsl 2] 0000042a f89cc01c 705 ldrb r12,[r12,28] 0000042e f8530020 706 ldr.w r0,[r3,r0 lsl 2] 00000432 fa05fc0c 707 lsl r12,r5,r12 00000436 ea41010c 708 orr r1,r1,r12 0000043a f89aa01c 709 ldrb r10,[r10,28] 0000043e f832cc0a 710 ldrh r12,[r2,-10] 00000442 7f00 711 ldrb r0,[r0,28] 00000444 fa05fa0a 712 lsl r10,r5,r10 00000448 ea41010a 713 orr r1,r1,r10 0000044c f832ac08 714 ldrh r10,[r2,-8] 00000450 fa05f000 715 lsl r0,r5,r0 00000454 4301 716 orrs r1,r0 00000456 f853c02c 717 ldr.w r12,[r3,r12 lsl 2] 0000045a f853a02a 718 ldr.w r10,[r3,r10 lsl 2] 0000045e f8320c06 719 ldrh r0,[r2,-6] 00000462 f89cc01c 720 ldrb r12,[r12,28] 00000466 f89aa01c 721 ldrb r10,[r10,28] Page 13 objs\release\Spi.s 0000046a fa05fc0c 722 lsl r12,r5,r12 0000046e ea41010c 723 orr r1,r1,r12 00000472 f832cc04 724 ldrh r12,[r2,-4] 00000476 fa05fa0a 725 lsl r10,r5,r10 0000047a ea41010a 726 orr r1,r1,r10 0000047e f832ac02 727 ldrh r10,[r2,-2] 00000482 f8530020 728 ldr.w r0,[r3,r0 lsl 2] 00000486 f853c02c 729 ldr.w r12,[r3,r12 lsl 2] 0000048a f853a02a 730 ldr.w r10,[r3,r10 lsl 2] 0000048e 7f00 731 ldrb r0,[r0,28] 00000490 f89cc01c 732 ldrb r12,[r12,28] 00000494 f89aa01c 733 ldrb r10,[r10,28] 00000498 fa05f000 734 lsl r0,r5,r0 0000049c 4301 735 orrs r1,r0 0000049e 1e76 736 subs r6,r6,1 000004a0 fa05fc0c 737 lsl r12,r5,r12 000004a4 ea41010c 738 orr r1,r1,r12 000004a8 fa05fc0a 739 lsl r12,r5,r10 000004ac ea41010c 740 orr r1,r1,r12 000004b0 d1b1* 741 bne .L5930 000004b2 460a 742 cpy r2,r1 743 .L5924: 000004b4 9801 744 ldr r0,[sp,4] 000004b6 f0100107 745 ands r1,r0,7 000004ba d10a* 746 bne .L6202 000004bc f2400100* 747 movw r1,%lo(Spi_SeqUsedHWUnits) 000004c0 f2c00100* 748 movt r1,%hi(Spi_SeqUsedHWUnits) 000004c4 f841202b 749 str r2,[r1,fp lsl 2] 000004c8 f10b0b01 750 add fp,fp,1 000004cc 45cb 751 cmp fp,r9 000004ce d982* 752 bls .L3864 000004d0 e019* 753 b .L5985 754 .L6202: 000004d2 f8de6008 755 ldr.w r6,[lr,8] 756 .L5927: 000004d6 007d 757 lsls r5,r7,1 000004d8 5bad 758 ldrh r5,[r5,r6] 000004da f853c025 759 ldr.w r12,[r3,r5 lsl 2] 000004de f89cc01c 760 ldrb r12,[r12,28] 000004e2 2501 761 movs r5,1 000004e4 fa05f50c 762 lsl r5,r5,r12 000004e8 432a 763 orrs r2,r5 000004ea 1c7f 764 adds r7,r7,1 000004ec 1e49 765 subs r1,r1,1 000004ee d1f2* 766 bne .L5927 000004f0 f2400100* 767 movw r1,%lo(Spi_SeqUsedHWUnits) 000004f4 f2c00100* 768 movt r1,%hi(Spi_SeqUsedHWUnits) 000004f8 f841202b 769 str r2,[r1,fp lsl 2] 770 .L3870: 000004fc f10b0b01 771 add fp,fp,1 00000500 45cb 772 cmp fp,r9 00000502 f67faf68* 773 bls .L3864 774 .L5985: 00000506 f8d8001c 775 ldr.w r0,[r8,28] 0000050a 6801 776 ldr r1,[r0] 0000050c b1b9* 777 cbz r1,.L5990 0000050e 688a 778 ldr r2,[r1,8] 00000510 b9aa* 779 cbnz r2,.L5990 00000512 4610 780 cpy r0,r2 781 .L10080: 782 Page 14 objs\release\Spi.s 00000514 f000f800* 783 bl Spi_Drvw_Init 00000518 2100 784 movs r1,0 0000051a 4608 785 cpy r0,r1 786 .L10082: 787 0000051c f000f800* 788 bl Spi_Drvw_SetAsyncMode 00000520 f04f30ff 789 mov r0,-1 00000524 4602 790 cpy r2,r0 00000526 4601 791 cpy r1,r0 00000528 4603 792 cpy r3,r0 0000052a f1040c14 793 add r12,r4,20 0000052e e88c000f 794 stm r12,{r0-r3} 00000532 6821 795 ldr r1,[r4] 00000534 f8840024 796 strb r0,[r4,36] 00000538 2001 797 movs r0,1 0000053a 62a0 798 str r0,[r4,40] 0000053c 69c8 799 ldr r0,[r1,28] 800 .L5990: 0000053e 6841 801 ldr r1,[r0,4] 00000540 b1b1* 802 cbz r1,.L3823 00000542 6888 803 ldr r0,[r1,8] 00000544 b9a0* 804 cbnz r0,.L3823 00000546 2001 805 movs r0,1 806 .L10084: 807 00000548 f000f800* 808 bl Spi_Drvw_Init 0000054c 2100 809 movs r1,0 0000054e 2001 810 movs r0,1 811 .L10086: 812 00000550 f000f800* 813 bl Spi_Drvw_SetAsyncMode 00000554 f04f30ff 814 mov r0,-1 00000558 f1040c30 815 add r12,r4,48 0000055c 4602 816 cpy r2,r0 0000055e 4601 817 cpy r1,r0 00000560 4603 818 cpy r3,r0 00000562 e88c000f 819 stm r12,{r0-r3} 00000566 f88c0010 820 strb r0,[r12,16] 0000056a 2001 821 movs r0,1 0000056c f8cc0014 822 str r0,[r12,20] 823 .L3823: 00000570 b004 824 add sp,sp,16 825 .L10088: 826 00000572 e8bd8ff0 827 pop {r4-fp,pc} 828 .endf Spi_Init 829 ;Job r1 local 830 ;Sequence r2 local 831 ;Channel r1 local 832 ;ChannelCfgPtr r6 local 833 ;JobCfgPtr r6 local 834 ;Sequence fp local 835 ;SeqCfgPtr lr local 836 ;Job r7 local 837 838 ;ConfigPtr r0 param 839 840 .section ".mcal_bss","awb" 00000004 00000000 841 Spi_SeqUsedHWUnits: .space 16 00000008 00000000 0000000c 00000000 Page 15 objs\release\Spi.s 00000010 00000000 842 .endo Spi_SeqUsedHWUnits 00000014 00000000 843 Spi_HWUnitQueueArray: .space 56 00000018 00000000 0000001c 00000000 00000020 00000000 00000024 00000000 00000028 00000000 0000002c 00000000 00000030 00000000 00000034 00000000 00000038 00000000 0000003c 00000000 00000040 00000000 00000044 00000000 00000048 00000000 844 .endo Spi_HWUnitQueueArray 0000004c 00000000 845 Spi_SequenceStateArray: .space 64 00000050 00000000 00000054 00000000 00000058 00000000 0000005c 00000000 00000060 00000000 00000064 00000000 00000068 00000000 0000006c 00000000 00000070 00000000 00000074 00000000 00000078 00000000 0000007c 00000000 00000080 00000000 00000084 00000000 00000088 00000000 846 .endo Spi_SequenceStateArray 847 .section ".ghtailcalltbl","" 00000008 00000000* 848 .L10073: .data.w .L10072 849 .endo .L10073 0000000c 00000000* 850 .L10075: .data.w .L10074 851 .endo .L10075 00000010 00000000* 852 .L10077: .data.w .L10076 853 .endo .L10077 00000014 00000000* 854 .L10079: .data.w .L10078 855 .endo .L10079 856 .section ".ghcalltbl","" 00000038 00000000* 857 .L10081: .data.w .L10080 858 .endo .L10081 0000003c 00000000* 859 .L10083: .data.w .L10082 860 .endo .L10083 00000040 00000000* 861 .L10085: .data.w .L10084 862 .endo .L10085 00000044 00000000* 863 .L10087: .data.w .L10086 864 .endo .L10087 865 .section ".ghrettbl","" 0000001c 00000000* 866 .L10089: .data.w .L10088 867 .endo .L10089 868 .section ".mcal_code","ax" 869 .assert 0x0 + (Spi_ConfigPtr - Spi_ConfigPtr) +0 == 0 870 .assert 0x0 + (Spi_HWUnitQueueArray - Spi_ConfigPtr) +0 == 20 871 ..gh.f.f.1.a.1.e.6: 872 .endo ..gh.f.f.1.a.1.e.6 873 Spi_DeInit:: Page 16 objs\release\Spi.s 00000576 b530 874 push {r4-r5,lr} 00000578 f2400500* 875 movw r5,%lo(Spi_ConfigPtr) 0000057c f2c00500* 876 movt r5,%hi(Spi_ConfigPtr) 00000580 6829 877 ldr r1,[r5] 00000582 b939* 878 cbnz r1,.L10092 00000584 2401 879 movs r4,1 00000586 231a 880 movs r3,26 00000588 4622 881 cpy r2,r4 0000058a 2053 882 movs r0,83 883 .L10495: 884 0000058c f000f800* 885 bl Det_ReportError 00000590 4620 886 cpy r0,r4 887 .L10497: 888 00000592 bd30 889 pop {r4-r5,pc} 890 .L10092: 00000594 2400 891 movs r4,0 892 .L10499: 893 00000596 f000fb0c* 894 bl Spi_GetStatus 0000059a 2801 895 cmp r0,1 0000059c bf1c 896 itt ne 0000059e 2001 897 mov r0,1 898 .L10501: 899 000005a0 bd30 900 pop {r4-r5,pc} 000005a2 6828 901 ldr r0,[r5] 000005a4 69c0 902 ldr r0,[r0,28] 000005a6 6801 903 ldr r1,[r0] 000005a8 b139* 904 cbz r1,.L10217 000005aa 6889 905 ldr r1,[r1,8] 000005ac b929* 906 cbnz r1,.L10217 000005ae 4608 907 cpy r0,r1 908 .L10503: 909 000005b0 f000f800* 910 bl Spi_Drvw_DeInit 000005b4 6828 911 ldr r0,[r5] 000005b6 62ac 912 str r4,[r5,40] 000005b8 69c0 913 ldr r0,[r0,28] 914 .L10217: 000005ba 6840 915 ldr r0,[r0,4] 000005bc b128* 916 cbz r0,.L10097 000005be 6880 917 ldr r0,[r0,8] 000005c0 b918* 918 cbnz r0,.L10097 000005c2 2001 919 movs r0,1 920 .L10505: 921 000005c4 f000f800* 922 bl Spi_Drvw_DeInit 000005c8 646c 923 str r4,[r5,68] 924 .L10097: 000005ca 602c 925 str r4,[r5] 000005cc 4620 926 cpy r0,r4 927 .L10507: 928 000005ce bd30 929 pop {r4-r5,pc} 930 .endf Spi_DeInit 931 ;Ret r4 local 932 933 .section ".ghcalltbl","" 00000048 00000000* 934 .L10496: .data.w .L10495 Page 17 objs\release\Spi.s 935 .endo .L10496 936 .section ".ghrettbl","" 00000020 00000000* 937 .L10498: .data.w .L10497 938 .endo .L10498 939 .section ".ghcalltbl","" 0000004c 00000000* 940 .L10500: .data.w .L10499 941 .endo .L10500 942 .section ".ghrettbl","" 00000024 00000000* 943 .L10502: .data.w .L10501 944 .endo .L10502 945 .section ".ghcalltbl","" 00000050 00000000* 946 .L10504: .data.w .L10503 947 .endo .L10504 00000054 00000000* 948 .L10506: .data.w .L10505 949 .endo .L10506 950 .section ".ghrettbl","" 00000028 00000000* 951 .L10508: .data.w .L10507 952 .endo .L10508 953 .section ".mcal_code","ax" 954 .assert 0x0 + (Spi_ConfigPtr - Spi_ConfigPtr) +0 == 0 955 ..gh.f.f.1.a.1.e.7: 956 .endo ..gh.f.f.1.a.1.e.7 957 Spi_WriteIB:: 000005d0 e92d44f0 958 push {r4-r7,r10,lr} 000005d4 4605 959 cpy r5,r0 000005d6 460e 960 cpy r6,r1 000005d8 f2400a00* 961 movw r10,%lo(Spi_ConfigPtr) 000005dc f2c00a00* 962 movt r10,%hi(Spi_ConfigPtr) 000005e0 4601 963 cpy r1,r0 000005e2 2202 964 movs r2,2 000005e4 2000 965 movs r0,0 966 .L11569: 967 000005e6 f7fffd3e* 968 bl Spi_CheckChannel 000005ea 4604 969 cpy r4,r0 000005ec 2801 970 cmp r0,1 000005ee d00e* 971 beq .L10511 000005f0 f8da0000 972 ldr.w r0,[r10] 000005f4 68c1 973 ldr r1,[r0,12] 000005f6 f8510025 974 ldr.w r0,[r1,r5 lsl 2] 000005fa 6800 975 ldr r0,[r0] 000005fc 2801 976 cmp r0,1 000005fe d106* 977 bne .L10511 00000600 4604 978 cpy r4,r0 00000602 230a 979 movs r3,10 00000604 2202 980 movs r2,2 00000606 2100 981 movs r1,0 00000608 2053 982 movs r0,83 983 .L11571: 984 0000060a f000f800* 985 bl Det_ReportError 986 .L10511: 0000060e 2c01 987 cmp r4,1 00000610 d02c* 988 beq .L10509 00000612 f8da0000 989 ldr.w r0,[r10] 00000616 68c0 990 ldr r0,[r0,12] 00000618 f2400100* 991 movw r1,%lo(Spi_ChannelStateArray) 0000061c f2c00100* 992 movt r1,%hi(Spi_ChannelStateArray) 00000620 eb010785 993 add r7,r1,r5 lsl 2 00000624 f8505025 994 ldr.w r5,[r0,r5 lsl 2] 995 .L11573: Page 18 objs\release\Spi.s 996 00000628 f000f800* 997 bl SchM_Enter_Spi_UpdateChannelState 0000062c 0031 998 movs r1,r6 0000062e d017* 999 beq .L10520 00000630 6928 1000 ldr r0,[r5,16] 00000632 89ab 1001 ldrh r3,[r5,12] 00000634 2200 1002 movs r2,0 00000636 429a 1003 cmp r2,r3 00000638 6800 1004 ldr r0,[r0] 0000063a d20a* 1005 bhs .L10522 1006 .L10525: 0000063c f8113b01 1007 ldrb r3,[r1],1 00000640 f8003b01 1008 strb r3,[r0],1 00000644 f8b5c00c 1009 ldrh r12,[r5,12] 00000648 f5023280 1010 add r2,r2,1<<16 0000064c ebbc4f12 1011 cmp r12,r2 lsr 16 00000650 d8f4* 1012 bhi .L10525 1013 .L10522: 00000652 7838 1014 ldrb r0,[r7] 00000654 f00000fe 1015 and r0,r0,254 00000658 7038 1016 strb r0,[r7] 1017 .L11575: 1018 0000065a f000f800* 1019 bl SchM_Exit_Spi_UpdateChannelState 0000065e e005* 1020 b .L10509 1021 .L10520: 00000660 7838 1022 ldrb r0,[r7] 00000662 f0400001 1023 orr r0,r0,1 00000666 7038 1024 strb r0,[r7] 1025 .L11577: 1026 00000668 f000f800* 1027 bl SchM_Exit_Spi_UpdateChannelState 1028 .L10509: 0000066c 4620 1029 cpy r0,r4 1030 .L11579: 1031 0000066e e8bd84f0 1032 pop {r4-r7,r10,pc} 1033 .endf Spi_WriteIB 1034 ;Ret r4 local 1035 ;Index r2 local 1036 ;ChannelState r7 local 1037 ;ChannelCfgPtr r5 local 1038 ;DataBufferDes r0 local 1039 ;DataBufferSrc r1 local 1040 ;Ret r4 local 1041 1042 ;Channel r5 param 1043 ;DataBufferPtr r6 param 1044 1045 .section ".ghcalltbl","" 00000058 00000000* 1046 .L11570: .data.w .L11569 1047 .endo .L11570 0000005c 00000000* 1048 .L11572: .data.w .L11571 1049 .endo .L11572 00000060 00000000* 1050 .L11574: .data.w .L11573 1051 .endo .L11574 00000064 00000000* 1052 .L11576: .data.w .L11575 1053 .endo .L11576 00000068 00000000* 1054 .L11578: .data.w .L11577 1055 .endo .L11578 1056 .section ".ghrettbl","" Page 19 objs\release\Spi.s 0000002c 00000000* 1057 .L11580: .data.w .L11579 1058 .endo .L11580 1059 .section ".mcal_code","ax" 1060 .assert 0x0 + (Spi_ConfigPtr - Spi_ConfigPtr) +0 == 0 1061 .assert 0x0 + (Spi_HWUnitQueueArray - Spi_ConfigPtr) +0 == 20 1062 .assert 0x0 + (Spi_SequenceStateArray - Spi_ConfigPtr) +0 == 76 1063 ..gh.f.f.1.a.1.e.8: 1064 .endo ..gh.f.f.1.a.1.e.8 1065 Spi_AsyncTransmit:: 00000672 e92d4ff0 1066 push {r4-fp,lr} 00000676 b084 1067 sub sp,sp,16 00000678 4604 1068 cpy r4,r0 0000067a 4601 1069 cpy r1,r0 0000067c 2203 1070 movs r2,3 0000067e f88d0003 1071 strb r0,[sp,3] 00000682 2000 1072 movs r0,0 1073 .L16221: 1074 00000684 f7fffcbc* 1075 bl Spi_CheckSequence 00000688 4606 1076 cpy r6,r0 0000068a 2801 1077 cmp r0,1 0000068c f00080d4* 1078 beq .L11583 00000690 f2400000* 1079 movw r0,%lo(Spi_ConfigPtr) 00000694 f2c00000* 1080 movt r0,%hi(Spi_ConfigPtr) 00000698 f8d0b000 1081 ldr.w fp,[r0] 0000069c f8db2014 1082 ldr.w r2,[fp,20] 000006a0 f8520024 1083 ldr.w r0,[r2,r4 lsl 2] 000006a4 2500 1084 movs r5,0 000006a6 f8b09000 1085 ldrh r9,[r0] 000006aa 9003 1086 str r0,[sp,12] 000006ac 454d 1087 cmp r5,r9 000006ae f08080c3* 1088 bhs .L11583 1089 .L11587: 000006b2 9803 1090 ldr r0,[sp,12] 000006b4 6883 1091 ldr r3,[r0,8] 000006b6 0069 1092 lsls r1,r5,1 000006b8 f8db2010 1093 ldr.w r2,[fp,16] 000006bc 5ac9 1094 ldrh r1,[r1,r3] 000006be f8524021 1095 ldr.w r4,[r2,r1 lsl 2] 000006c2 7821 1096 ldrb r1,[r4] 000006c4 b959* 1097 cbnz r1,.L11589 000006c6 2601 1098 movs r6,1 000006c8 235d 1099 movs r3,93 000006ca 2203 1100 movs r2,3 000006cc 2053 1101 movs r0,83 1102 .L16223: 1103 000006ce f000f800* 1104 bl Det_ReportError 000006d2 f2400000* 1105 movw r0,%lo(Spi_ConfigPtr) 000006d6 f2c00000* 1106 movt r0,%hi(Spi_ConfigPtr) 000006da f8d0b000 1107 ldr.w fp,[r0] 1108 .L11589: 000006de f8db201c 1109 ldr.w r2,[fp,28] 000006e2 7f21 1110 ldrb r1,[r4,28] 000006e4 f8521021 1111 ldr.w r1,[r2,r1 lsl 2] 000006e8 6849 1112 ldr r1,[r1,4] 000006ea b141* 1113 cbz r1,.L11591 000006ec 230e 1114 movs r3,14 000006ee f04f0801 1115 mov r8,1 000006f2 2203 1116 movs r2,3 000006f4 2100 1117 movs r1,0 Page 20 objs\release\Spi.s 000006f6 2053 1118 movs r0,83 1119 .L16225: 1120 000006f8 f000f800* 1121 bl Det_ReportError 000006fc e1ad* 1122 b .L11581 1123 .L11591: 000006fe 0032 1124 movs r2,r6 00000700 f040809a* 1125 bne .L11583 00000704 f894e000 1126 ldrb lr,[r4] 00000708 ea5f0ade 1127 lsrs r10,lr,3 0000070c d06f* 1128 beq .L12074 0000070e f2400300* 1129 movw r3,%lo(Spi_ChannelStateArray) 00000712 f2c00300* 1130 movt r3,%hi(Spi_ChannelStateArray) 00000716 f8d4c004 1131 ldr.w r12,[r4,4] 0000071a f8db700c 1132 ldr.w r7,[fp,12] 1133 .L12084: 0000071e f81c1002 1134 ldrb r1,[r12,r2] 00000722 f8570021 1135 ldr.w r0,[r7,r1 lsl 2] 00000726 6800 1136 ldr r0,[r0] 00000728 2801 1137 cmp r0,1 0000072a d104* 1138 bne .L12089 0000072c eb030181 1139 add r1,r3,r1 lsl 2 00000730 8849 1140 ldrh r1,[r1,2] 00000732 2900 1141 cmp r1,0 00000734 d071* 1142 beq .L12079 1143 .L12089: 00000736 1c52 1144 adds r2,r2,1 00000738 f81c1002 1145 ldrb r1,[r12,r2] 0000073c f8570021 1146 ldr.w r0,[r7,r1 lsl 2] 00000740 6800 1147 ldr r0,[r0] 00000742 2801 1148 cmp r0,1 00000744 d104* 1149 bne .L12094 00000746 eb030181 1150 add r1,r3,r1 lsl 2 0000074a 8849 1151 ldrh r1,[r1,2] 0000074c 2900 1152 cmp r1,0 0000074e d064* 1153 beq .L12079 1154 .L12094: 00000750 1c52 1155 adds r2,r2,1 00000752 f81c1002 1156 ldrb r1,[r12,r2] 00000756 f8570021 1157 ldr.w r0,[r7,r1 lsl 2] 0000075a 6800 1158 ldr r0,[r0] 0000075c 2801 1159 cmp r0,1 0000075e d104* 1160 bne .L12099 00000760 eb030181 1161 add r1,r3,r1 lsl 2 00000764 8849 1162 ldrh r1,[r1,2] 00000766 2900 1163 cmp r1,0 00000768 d057* 1164 beq .L12079 1165 .L12099: 0000076a 1c52 1166 adds r2,r2,1 0000076c f81c1002 1167 ldrb r1,[r12,r2] 00000770 f8570021 1168 ldr.w r0,[r7,r1 lsl 2] 00000774 6800 1169 ldr r0,[r0] 00000776 2801 1170 cmp r0,1 00000778 d104* 1171 bne .L12104 0000077a eb030181 1172 add r1,r3,r1 lsl 2 0000077e 8849 1173 ldrh r1,[r1,2] 00000780 2900 1174 cmp r1,0 00000782 d04a* 1175 beq .L12079 1176 .L12104: 00000784 1c52 1177 adds r2,r2,1 00000786 f81c1002 1178 ldrb r1,[r12,r2] Page 21 objs\release\Spi.s 0000078a f8570021 1179 ldr.w r0,[r7,r1 lsl 2] 0000078e 6800 1180 ldr r0,[r0] 00000790 2801 1181 cmp r0,1 00000792 d103* 1182 bne .L12109 00000794 eb030181 1183 add r1,r3,r1 lsl 2 00000798 8849 1184 ldrh r1,[r1,2] 0000079a b3f1* 1185 cbz r1,.L12079 1186 .L12109: 0000079c 1c52 1187 adds r2,r2,1 0000079e f81c1002 1188 ldrb r1,[r12,r2] 000007a2 f8570021 1189 ldr.w r0,[r7,r1 lsl 2] 000007a6 6800 1190 ldr r0,[r0] 000007a8 2801 1191 cmp r0,1 000007aa d103* 1192 bne .L12114 000007ac eb030181 1193 add r1,r3,r1 lsl 2 000007b0 8849 1194 ldrh r1,[r1,2] 000007b2 b391* 1195 cbz r1,.L12079 1196 .L12114: 000007b4 1c52 1197 adds r2,r2,1 000007b6 f81c1002 1198 ldrb r1,[r12,r2] 000007ba f8570021 1199 ldr.w r0,[r7,r1 lsl 2] 000007be 6800 1200 ldr r0,[r0] 000007c0 2801 1201 cmp r0,1 000007c2 d103* 1202 bne .L12119 000007c4 eb030181 1203 add r1,r3,r1 lsl 2 000007c8 8849 1204 ldrh r1,[r1,2] 000007ca b331* 1205 cbz r1,.L12079 1206 .L12119: 000007cc 1c52 1207 adds r2,r2,1 000007ce f81c1002 1208 ldrb r1,[r12,r2] 000007d2 f8570021 1209 ldr.w r0,[r7,r1 lsl 2] 000007d6 6800 1210 ldr r0,[r0] 000007d8 2801 1211 cmp r0,1 000007da d103* 1212 bne .L12123 000007dc eb030181 1213 add r1,r3,r1 lsl 2 000007e0 8849 1214 ldrh r1,[r1,2] 000007e2 b1d1* 1215 cbz r1,.L12079 1216 .L12123: 000007e4 1c52 1217 adds r2,r2,1 000007e6 b2d2 1218 uxtb r2,r2 000007e8 f1ba0a01 1219 subs r10,r10,1 000007ec d197* 1220 bne .L12084 1221 .L12074: 000007ee f01e0307 1222 ands r3,lr,7 000007f2 d01c* 1223 beq .L11600 000007f4 6861 1224 ldr r1,[r4,4] 000007f6 f8db400c 1225 ldr.w r4,[fp,12] 000007fa 440a 1226 add r2,r2,r1 1227 .L12077: 000007fc f8121b01 1228 ldrb r1,[r2],1 00000800 f8547021 1229 ldr.w r7,[r4,r1 lsl 2] 00000804 683f 1230 ldr r7,[r7] 00000806 2f01 1231 cmp r7,1 00000808 d10f* 1232 bne .L12081 0000080a f2400000* 1233 movw r0,%lo(Spi_ChannelStateArray) 0000080e f2c00000* 1234 movt r0,%hi(Spi_ChannelStateArray) 00000812 eb000181 1235 add r1,r0,r1 lsl 2 00000816 8849 1236 ldrh r1,[r1,2] 00000818 b939* 1237 cbnz r1,.L12081 1238 .L12079: 0000081a 235b 1239 movs r3,91 Page 22 objs\release\Spi.s 0000081c f04f0801 1240 mov r8,1 00000820 2203 1241 movs r2,3 00000822 2053 1242 movs r0,83 1243 .L16227: 1244 00000824 f000f800* 1245 bl Det_ReportError 00000828 e117* 1246 b .L11581 1247 .L12081: 0000082a 1e5b 1248 subs r3,r3,1 0000082c d1e6* 1249 bne .L12077 1250 .L11600: 0000082e 1c6d 1251 adds r5,r5,1 00000830 b2ad 1252 uxth r5,r5 00000832 454d 1253 cmp r5,r9 00000834 f4ffaf3d* 1254 blo .L11587 1255 .L11583: 00000838 f1b60800 1256 subs r8,r6,0 0000083c f040810d* 1257 bne .L11581 00000840 f2400000* 1258 movw r0,%lo(Spi_ConfigPtr) 00000844 f2c00000* 1259 movt r0,%hi(Spi_ConfigPtr) 00000848 6801 1260 ldr r1,[r0] 0000084a f89d0003 1261 ldrb r0,[sp,3] 0000084e 694a 1262 ldr r2,[r1,20] 00000850 f88d6001 1263 strb r6,[sp,1] 00000854 f2400100* 1264 movw r1,%lo(Spi_ConfigPtr+76) 00000858 f8527020 1265 ldr.w r7,[r2,r0 lsl 2] 0000085c f2c00100* 1266 movt r1,%hi(Spi_ConfigPtr+76) 00000860 eb011400 1267 add r4,r1,r0 lsl 4 00000864 f8b7b000 1268 ldrh fp,[r7] 00000868 68bd 1269 ldr r5,[r7,8] 1270 .L16229: 1271 0000086a f000f800* 1272 bl SchM_Enter_Spi_UpdateJobState 0000086e f1bb0600 1273 subs r6,fp,0 00000872 d02f* 1274 beq .L11616 00000874 f2400a00* 1275 movw r10,%lo(Spi_JobStateArray) 00000878 f2c00a00* 1276 movt r10,%hi(Spi_JobStateArray) 1277 .L11608: 0000087c 8829 1278 ldrh r1,[r5] 0000087e ebc10181 1279 rsb r1,r1,r1 lsl 2 00000882 eb0a0181 1280 add r1,r10,r1 lsl 2 00000886 684a 1281 ldr r2,[r1,4] 00000888 b1f2* 1282 cbz r2,.L11615 0000088a 883a 1283 ldrh r2,[r7] 0000088c 4296 1284 cmp r6,r2 0000088e d210* 1285 bhs .L11613 00000890 ea4f4306 1286 lsl r3,r6,16 1287 .L11611: 00000894 f8351d02 1288 ldrh r1,[r5,-2]! 00000898 2000 1289 movs r0,0 0000089a ebc10181 1290 rsb r1,r1,r1 lsl 2 0000089e eb0a0181 1291 add r1,r10,r1 lsl 2 000008a2 6048 1292 str r0,[r1,4] 000008a4 0c19 1293 lsrs r1,r3,16 000008a6 f5033380 1294 add r3,r3,1<<16 000008aa 1c49 1295 adds r1,r1,1 000008ac b289 1296 uxth r1,r1 000008ae 4291 1297 cmp r1,r2 000008b0 d3f0* 1298 blo .L11611 1299 .L11613: 000008b2 f04f0801 1300 mov r8,1 Page 23 objs\release\Spi.s 1301 .L16231: 1302 000008b6 f000f800* 1303 bl SchM_Exit_Spi_UpdateJobState 000008ba 232a 1304 movs r3,42 000008bc 2203 1305 movs r2,3 000008be 2100 1306 movs r1,0 000008c0 2053 1307 movs r0,83 1308 .L16233: 1309 000008c2 f000f800* 1310 bl Det_ReportRuntimeError 000008c6 e0c8* 1311 b .L11581 1312 .L11615: 000008c8 604c 1313 str r4,[r1,4] 000008ca 1cad 1314 adds r5,r5,2 000008cc 1e76 1315 subs r6,r6,1 000008ce b2b6 1316 uxth r6,r6 000008d0 2e00 1317 cmp r6,0 000008d2 d1d3* 1318 bne .L11608 1319 .L11616: 1320 .L16235: 1321 000008d4 f000f800* 1322 bl SchM_Exit_Spi_UpdateJobState 000008d8 f89d2001 1323 ldrb r2,[sp,1] 000008dc f1b20800 1324 subs r8,r2,0 000008e0 d006* 1325 beq .L12216 000008e2 232a 1326 movs r3,42 000008e4 2203 1327 movs r2,3 000008e6 2100 1328 movs r1,0 000008e8 2053 1329 movs r0,83 1330 .L16237: 1331 000008ea f000f800* 1332 bl Det_ReportRuntimeError 000008ee e0b4* 1333 b .L11581 1334 .L12216: 000008f0 2101 1335 movs r1,1 000008f2 6021 1336 str r1,[r4] 000008f4 8839 1337 ldrh r1,[r7] 000008f6 f8d7e008 1338 ldr.w lr,[r7,8] 000008fa 465e 1339 mov r6,fp 000008fc f2400a00* 1340 movw r10,%lo(Spi_JobStateArray) 00000900 f2c00a00* 1341 movt r10,%hi(Spi_JobStateArray) 00000904 1e49 1342 subs r1,r1,1 00000906 81a1 1343 strh r1,[r4,12] 00000908 08f5 1344 lsrs r5,r6,3 0000090a f8c4e008 1345 str lr,[r4,8] 0000090e d040* 1346 beq .L12215 00000910 2403 1347 movs r4,3 00000912 68bb 1348 ldr r3,[r7,8] 1349 .L12221: 00000914 0051 1350 lsls r1,r2,1 00000916 1c50 1351 adds r0,r2,1 00000918 f831c003 1352 ldrh r12,[r1,r3] 0000091c eb030140 1353 add r1,r3,r0 lsl 1 00000920 8809 1354 ldrh r1,[r1] 00000922 ebcc0c8c 1355 rsb r12,r12,r12 lsl 2 00000926 ebc10081 1356 rsb r0,r1,r1 lsl 2 0000092a 1c91 1357 adds r1,r2,2 0000092c 0049 1358 lsls r1,r1,1 0000092e f84a402c 1359 str r4,[r10,r12 lsl 2] 00000932 f831c003 1360 ldrh r12,[r1,r3] 00000936 1cd1 1361 adds r1,r2,3 Page 24 objs\release\Spi.s 00000938 0049 1362 lsls r1,r1,1 0000093a 5ac9 1363 ldrh r1,[r1,r3] 0000093c f84a4020 1364 str r4,[r10,r0 lsl 2] 00000940 ebcc0c8c 1365 rsb r12,r12,r12 lsl 2 00000944 ebc10081 1366 rsb r0,r1,r1 lsl 2 00000948 1d11 1367 adds r1,r2,4 0000094a 0049 1368 lsls r1,r1,1 0000094c f84a402c 1369 str r4,[r10,r12 lsl 2] 00000950 f831c003 1370 ldrh r12,[r1,r3] 00000954 1d51 1371 adds r1,r2,5 00000956 0049 1372 lsls r1,r1,1 00000958 5ac9 1373 ldrh r1,[r1,r3] 0000095a f84a4020 1374 str r4,[r10,r0 lsl 2] 0000095e ebcc0c8c 1375 rsb r12,r12,r12 lsl 2 00000962 ebc10081 1376 rsb r0,r1,r1 lsl 2 00000966 1d91 1377 adds r1,r2,6 00000968 0049 1378 lsls r1,r1,1 0000096a f84a402c 1379 str r4,[r10,r12 lsl 2] 0000096e f831c003 1380 ldrh r12,[r1,r3] 00000972 1dd1 1381 adds r1,r2,7 00000974 0049 1382 lsls r1,r1,1 00000976 3208 1383 adds r2,r2,8 00000978 1e6d 1384 subs r5,r5,1 0000097a 5ac9 1385 ldrh r1,[r1,r3] 0000097c ebcc0c8c 1386 rsb r12,r12,r12 lsl 2 00000980 f84a4020 1387 str r4,[r10,r0 lsl 2] 00000984 ebc10181 1388 rsb r1,r1,r1 lsl 2 00000988 f84a402c 1389 str r4,[r10,r12 lsl 2] 0000098c f84a4021 1390 str r4,[r10,r1 lsl 2] 00000990 d1c0* 1391 bne .L12221 1392 .L12215: 00000992 f0160107 1393 ands r1,r6,7 00000996 d00b* 1394 beq .L11621 00000998 68bb 1395 ldr r3,[r7,8] 0000099a eb030342 1396 add r3,r3,r2 lsl 1 1397 .L12218: 0000099e f8332b02 1398 ldrh r2,[r3],2 000009a2 2003 1399 movs r0,3 000009a4 1e49 1400 subs r1,r1,1 000009a6 ebc20282 1401 rsb r2,r2,r2 lsl 2 000009aa f84a0022 1402 str r0,[r10,r2 lsl 2] 000009ae d1f6* 1403 bne .L12218 1404 .L11621: 000009b0 f2400000* 1405 movw r0,%lo(Spi_ConfigPtr) 000009b4 f2c00000* 1406 movt r0,%hi(Spi_ConfigPtr) 000009b8 6801 1407 ldr r1,[r0] 000009ba f8be4000 1408 ldrh r4,[lr] 000009be 690a 1409 ldr r2,[r1,16] 000009c0 f8525024 1410 ldr.w r5,[r2,r4 lsl 2] 000009c4 7f29 1411 ldrb r1,[r5,28] 000009c6 f2400200* 1412 movw r2,%lo(Spi_ConfigPtr+20) 000009ca f2c00200* 1413 movt r2,%hi(Spi_ConfigPtr+20) 000009ce ebc101c1 1414 rsb r1,r1,r1 lsl 3 000009d2 eb020681 1415 add r6,r2,r1 lsl 2 1416 .L16239: 1417 000009d6 f000f800* 1418 bl SchM_Enter_Spi_UpdateAsyncHWUnitQueue 000009da 6971 1419 ldr r1,[r6,20] 000009dc 2901 1420 cmp r1,1 000009de d02d* 1421 beq .L11634 000009e0 f9952010 1422 ldrsb r2,[r5,16] Page 25 objs\release\Spi.s 000009e4 eb060342 1423 add r3,r6,r2 lsl 1 000009e8 f8331f08 1424 ldrh r1,[r3,8]! 000009ec f64f70ff 1425 mov r0,0xffff 000009f0 4281 1426 cmp r1,r0 000009f2 d10e* 1427 bne .L11630 000009f4 0051 1428 lsls r1,r2,1 000009f6 ebc40084 1429 rsb r0,r4,r4 lsl 2 000009fa 538c 1430 strh r4,[r1,r6] 000009fc 801c 1431 strh r4,[r3] 000009fe eb0a0180 1432 add r1,r10,r0 lsl 2 00000a02 f04f33ff 1433 mov r3,-1 00000a06 810b 1434 strh r3,[r1,8] 00000a08 f9961010 1435 ldrsb r1,[r6,16] 00000a0c 4291 1436 cmp r1,r2 00000a0e db10* 1437 blt .L11632 00000a10 e011* 1438 b .L11633 1439 .L11630: 00000a12 ebc10181 1440 rsb r1,r1,r1 lsl 2 00000a16 ebc40084 1441 rsb r0,r4,r4 lsl 2 00000a1a eb0a0181 1442 add r1,r10,r1 lsl 2 00000a1e 810c 1443 strh r4,[r1,8] 00000a20 801c 1444 strh r4,[r3] 00000a22 f04f33ff 1445 mov r3,-1 00000a26 eb0a0180 1446 add r1,r10,r0 lsl 2 00000a2a 810b 1447 strh r3,[r1,8] 00000a2c f9961010 1448 ldrsb r1,[r6,16] 00000a30 4291 1449 cmp r1,r2 1450 .L11632: 00000a32 bfb8 1451 it lt 00000a34 7432 1452 strb r2,[r6,16] 1453 .L11633: 1454 .L16241: 1455 00000a36 f000f800* 1456 bl SchM_Exit_Spi_UpdateAsyncHWUnitQueue 00000a3a e00e* 1457 b .L11581 1458 .L11634: 00000a3c 2102 1459 movs r1,2 00000a3e 6171 1460 str r1,[r6,20] 00000a40 2201 1461 movs r2,1 00000a42 8374 1462 strh r4,[r6,26] 00000a44 ebc40184 1463 rsb r1,r4,r4 lsl 2 00000a48 f84a2021 1464 str r2,[r10,r1 lsl 2] 00000a4c 2100 1465 movs r1,0 00000a4e 7631 1466 strb r1,[r6,24] 1467 .L16243: 1468 00000a50 f000f800* 1469 bl SchM_Exit_Spi_UpdateAsyncHWUnitQueue 00000a54 4628 1470 cpy r0,r5 1471 .L16245: 1472 00000a56 f7fffbe0* 1473 bl Spi_TransferAsyncJob 1474 .L11581: 00000a5a fa5ff088 1475 uxtb r0,r8 00000a5e b004 1476 add sp,sp,16 1477 .L16247: 1478 00000a60 e8bd8ff0 1479 pop {r4-fp,pc} 1480 .endf Spi_AsyncTransmit 1481 ;Ret r8 local 1482 ;JobNum fp local 1483 ;SeqCfgPtr r7 local Page 26 objs\release\Spi.s 1484 ;JobCfgPtr r5 local 1485 ;Job lr local 1486 ;JobCount r1 local 1487 ;SeqCfgPtr [sp,12] local 1488 ;JobCfgPtr r4 local 1489 ;NumJobsInSequence r9 local 1490 ;JobIndex r5 local 1491 ;ChannelID r1 local 1492 ;NumChannelsInJob r1 local 1493 ;ChannelIndex r2 local 1494 ;Ret r6 local 1495 ;Ret [sp,1] local 1496 ;JobCount r6 local 1497 ;JobState r1 local 1498 ;JobPtr r5 local 1499 ;SequenceState r4 local 1500 ;HWUnitQueue r6 local 1501 ;Job r4 local 1502 ;Priority r2 local 1503 ;JobListTail r3 local 1504 1505 ;Sequence [sp,3] param 1506 1507 .section ".ghcalltbl","" 0000006c 00000000* 1508 .L16222: .data.w .L16221 1509 .endo .L16222 00000070 00000000* 1510 .L16224: .data.w .L16223 1511 .endo .L16224 00000074 00000000* 1512 .L16226: .data.w .L16225 1513 .endo .L16226 00000078 00000000* 1514 .L16228: .data.w .L16227 1515 .endo .L16228 0000007c 00000000* 1516 .L16230: .data.w .L16229 1517 .endo .L16230 00000080 00000000* 1518 .L16232: .data.w .L16231 1519 .endo .L16232 00000084 00000000* 1520 .L16234: .data.w .L16233 1521 .endo .L16234 00000088 00000000* 1522 .L16236: .data.w .L16235 1523 .endo .L16236 0000008c 00000000* 1524 .L16238: .data.w .L16237 1525 .endo .L16238 00000090 00000000* 1526 .L16240: .data.w .L16239 1527 .endo .L16240 00000094 00000000* 1528 .L16242: .data.w .L16241 1529 .endo .L16242 00000098 00000000* 1530 .L16244: .data.w .L16243 1531 .endo .L16244 0000009c 00000000* 1532 .L16246: .data.w .L16245 1533 .endo .L16246 1534 .section ".ghrettbl","" 00000030 00000000* 1535 .L16248: .data.w .L16247 1536 .endo .L16248 1537 .section ".mcal_code","ax" 1538 .assert 0x0 + (Spi_ConfigPtr - Spi_ConfigPtr) +0 == 0 1539 ..gh.f.f.1.a.1.e.9: 1540 .endo ..gh.f.f.1.a.1.e.9 1541 Spi_ReadIB:: 00000a64 b5f0 1542 push {r4-r7,lr} 00000a66 4604 1543 cpy r4,r0 00000a68 460d 1544 cpy r5,r1 Page 27 objs\release\Spi.s 00000a6a f2400700* 1545 movw r7,%lo(Spi_ConfigPtr) 00000a6e f2c00700* 1546 movt r7,%hi(Spi_ConfigPtr) 00000a72 4601 1547 cpy r1,r0 00000a74 2204 1548 movs r2,4 00000a76 2000 1549 movs r0,0 1550 .L16938: 1551 00000a78 f7fffaf5* 1552 bl Spi_CheckChannel 00000a7c 4606 1553 cpy r6,r0 00000a7e 2801 1554 cmp r0,1 00000a80 d00f* 1555 beq .L16251 00000a82 6838 1556 ldr r0,[r7] 00000a84 68c1 1557 ldr r1,[r0,12] 00000a86 f8510024 1558 ldr.w r0,[r1,r4 lsl 2] 00000a8a 6800 1559 ldr r0,[r0] 00000a8c 2801 1560 cmp r0,1 00000a8e bf18 1561 it ne 00000a90 2d00 1562 cmp r5,0 00000a92 d106* 1563 bne .L16251 00000a94 2601 1564 movs r6,1 00000a96 230a 1565 movs r3,10 00000a98 2204 1566 movs r2,4 00000a9a 2100 1567 movs r1,0 00000a9c 2053 1568 movs r0,83 1569 .L16940: 1570 00000a9e f000f800* 1571 bl Det_ReportError 1572 .L16251: 00000aa2 4630 1573 cpy r0,r6 00000aa4 2e01 1574 cmp r6,1 00000aa6 bf08 1575 it eq 1576 .L16942: 1577 00000aa8 bdf0 1578 pop {r4-r7,pc} 00000aaa 6839 1579 ldr r1,[r7] 00000aac 68c9 1580 ldr r1,[r1,12] 00000aae f8516024 1581 ldr.w r6,[r1,r4 lsl 2] 00000ab2 6931 1582 ldr r1,[r6,16] 00000ab4 f8b6c00c 1583 ldrh r12,[r6,12] 00000ab8 684a 1584 ldr r2,[r1,4] 00000aba 2300 1585 movs r3,0 00000abc 4563 1586 cmp r3,r12 00000abe 4629 1587 cpy r1,r5 00000ac0 bf28 1588 it hs 1589 .L16944: 1590 00000ac2 bdf0 1591 pop {r4-r7,pc} 1592 .L16265: 00000ac4 f812cb01 1593 ldrb r12,[r2],1 00000ac8 f801cb01 1594 strb r12,[r1],1 00000acc f8b6c00c 1595 ldrh r12,[r6,12] 00000ad0 f5033380 1596 add r3,r3,1<<16 00000ad4 ebbc4f13 1597 cmp r12,r3 lsr 16 00000ad8 d8f4* 1598 bhi .L16265 1599 .L16946: 1600 00000ada bdf0 1601 pop {r4-r7,pc} 1602 .endf Spi_ReadIB 1603 ;Ret r0 local 1604 ;Index r3 local 1605 ;ChannelCfgPtr r6 local Page 28 objs\release\Spi.s 1606 ;DataBufferSrc r2 local 1607 ;DataBufferDes r1 local 1608 ;Ret r6 local 1609 1610 ;Channel r4 param 1611 ;DataBufferPtr r5 param 1612 1613 .section ".ghcalltbl","" 000000a0 00000000* 1614 .L16939: .data.w .L16938 1615 .endo .L16939 000000a4 00000000* 1616 .L16941: .data.w .L16940 1617 .endo .L16941 1618 .section ".ghrettbl","" 00000034 00000000* 1619 .L16943: .data.w .L16942 1620 .endo .L16943 00000038 00000000* 1621 .L16945: .data.w .L16944 1622 .endo .L16945 0000003c 00000000* 1623 .L16947: .data.w .L16946 1624 .endo .L16947 1625 .section ".mcal_code","ax" 1626 .assert 0x0 + (Spi_ConfigPtr - Spi_ConfigPtr) +0 == 0 1627 ..gh.f.f.1.a.1.e.10: 1628 .endo ..gh.f.f.1.a.1.e.10 1629 Spi_SetupEB:: 00000adc e92d4df0 1630 push {r4-r8,r10-fp,lr} 00000ae0 b081 1631 sub sp,sp,4 00000ae2 4607 1632 cpy r7,r0 00000ae4 468b 1633 mov fp,r1 00000ae6 4692 1634 mov r10,r2 00000ae8 461d 1635 cpy r5,r3 00000aea f2400600* 1636 movw r6,%lo(Spi_ConfigPtr) 00000aee f2c00600* 1637 movt r6,%hi(Spi_ConfigPtr) 00000af2 4601 1638 cpy r1,r0 00000af4 2205 1639 movs r2,5 00000af6 2000 1640 movs r0,0 1641 .L17553: 1642 00000af8 f7fffab5* 1643 bl Spi_CheckChannel 00000afc 4604 1644 cpy r4,r0 00000afe 2801 1645 cmp r0,1 00000b00 d028* 1646 beq .L16950 00000b02 6830 1647 ldr r0,[r6] 00000b04 68c1 1648 ldr r1,[r0,12] 00000b06 f8510027 1649 ldr.w r0,[r1,r7 lsl 2] 00000b0a 6801 1650 ldr r1,[r0] 00000b0c b939* 1651 cbnz r1,.L16955 00000b0e f04f0801 1652 mov r8,1 00000b12 230a 1653 movs r3,10 00000b14 2205 1654 movs r2,5 00000b16 2053 1655 movs r0,83 1656 .L17555: 1657 00000b18 f000f800* 1658 bl Det_ReportError 00000b1c e044* 1659 b .L16948 1660 .L16955: 00000b1e 8981 1661 ldrh r1,[r0,12] 00000b20 2400 1662 movs r4,0 00000b22 428d 1663 cmp r5,r1 00000b24 d80f* 1664 bhi .L16965 00000b26 b175* 1665 cbz r5,.L16965 00000b28 7900 1666 ldrb r0,[r0,4] Page 29 objs\release\Spi.s 00000b2a f1a00109 1667 sub r1,r0,9 00000b2e 2908 1668 cmp r1,8 00000b30 d203* 1669 bhs .L16962 00000b32 f0150f01 1670 tst r5,1 00000b36 d00d* 1671 beq .L16950 00000b38 e005* 1672 b .L16965 1673 .L16962: 00000b3a 3811 1674 subs r0,r0,17 00000b3c 2810 1675 cmp r0,16 00000b3e d209* 1676 bhs .L16950 00000b40 f0150f03 1677 tst r5,3 00000b44 d006* 1678 beq .L16950 1679 .L16965: 00000b46 2401 1680 movs r4,1 00000b48 230d 1681 movs r3,13 00000b4a 2205 1682 movs r2,5 00000b4c 2100 1683 movs r1,0 00000b4e 2053 1684 movs r0,83 1685 .L17557: 1686 00000b50 f000f800* 1687 bl Det_ReportError 1688 .L16950: 00000b54 46a0 1689 mov r8,r4 00000b56 2c01 1690 cmp r4,1 00000b58 d026* 1691 beq .L16948 00000b5a 6830 1692 ldr r0,[r6] 00000b5c 68c0 1693 ldr r0,[r0,12] 00000b5e f2400100* 1694 movw r1,%lo(Spi_ChannelStateArray) 00000b62 f2c00100* 1695 movt r1,%hi(Spi_ChannelStateArray) 00000b66 f8500027 1696 ldr.w r0,[r0,r7 lsl 2] 00000b6a eb010487 1697 add r4,r1,r7 lsl 2 00000b6e 4659 1698 mov r1,fp 00000b70 6900 1699 ldr r0,[r0,16] 00000b72 e8800402 1700 stm r0,{r1,r10} 00000b76 8065 1701 strh r5,[r4,2] 1702 .L17559: 1703 00000b78 f000f800* 1704 bl SchM_Enter_Spi_UpdateChannelState 00000b7c 7820 1705 ldrb r0,[r4] 00000b7e f1bb0f00 1706 cmp fp,0 00000b82 bf14 1707 ite ne 00000b84 f00000fe 1708 and r0,r0,254 00000b88 f0400001 1709 orr r0,r0,1 00000b8c f1ba0f00 1710 cmp r10,0 00000b90 d005* 1711 beq .L16974 00000b92 f00000fd 1712 and r0,r0,253 00000b96 7020 1713 strb r0,[r4] 1714 .L17561: 1715 00000b98 f000f800* 1716 bl SchM_Exit_Spi_UpdateChannelState 00000b9c e004* 1717 b .L16948 1718 .L16974: 00000b9e f0400002 1719 orr r0,r0,2 00000ba2 7020 1720 strb r0,[r4] 1721 .L17563: 1722 00000ba4 f000f800* 1723 bl SchM_Exit_Spi_UpdateChannelState 1724 .L16948: 00000ba8 fa5ff088 1725 uxtb r0,r8 00000bac b001 1726 add sp,sp,4 1727 .L17565: Page 30 objs\release\Spi.s 1728 00000bae e8bd8df0 1729 pop {r4-r8,r10-fp,pc} 1730 .endf Spi_SetupEB 1731 ;Ret r8 local 1732 ;ChannelState r4 local 1733 ;Ret r4 local 1734 ;Ret r4 local 1735 1736 ;Channel r7 param 1737 ;SrcDataBufferPtr fp param 1738 ;DesDataBufferPtr r10 param 1739 ;Length r5 param 1740 1741 .section ".ghcalltbl","" 000000a8 00000000* 1742 .L17554: .data.w .L17553 1743 .endo .L17554 000000ac 00000000* 1744 .L17556: .data.w .L17555 1745 .endo .L17556 000000b0 00000000* 1746 .L17558: .data.w .L17557 1747 .endo .L17558 000000b4 00000000* 1748 .L17560: .data.w .L17559 1749 .endo .L17560 000000b8 00000000* 1750 .L17562: .data.w .L17561 1751 .endo .L17562 000000bc 00000000* 1752 .L17564: .data.w .L17563 1753 .endo .L17564 1754 .section ".ghrettbl","" 00000040 00000000* 1755 .L17566: .data.w .L17565 1756 .endo .L17566 1757 .section ".mcal_code","ax" 1758 .assert 0x0 + (Spi_HWUnitQueueArray - Spi_ConfigPtr) +0 == 20 1759 .assert 0x0 + (Spi_SyncHWUnitsBusyStatus - Spi_ConfigPtr) +0 == 140 1760 .assert 0x0 + (Spi_ConfigPtr - Spi_ConfigPtr) +0 == 0 1761 ..gh.f.f.1.a.1.e.11: 1762 .endo ..gh.f.f.1.a.1.e.11 1763 Spi_GetStatus:: 00000bb2 b530 1764 push {r4-r5,lr} 00000bb4 f2400500* 1765 movw r5,%lo(Spi_ConfigPtr) 00000bb8 f2c00500* 1766 movt r5,%hi(Spi_ConfigPtr) 00000bbc 6828 1767 ldr r0,[r5] 00000bbe 0004 1768 movs r4,r0 00000bc0 d106* 1769 bne .L18020 00000bc2 231a 1770 movs r3,26 00000bc4 2206 1771 movs r2,6 00000bc6 4601 1772 cpy r1,r0 00000bc8 2053 1773 movs r0,83 1774 .L18511: 1775 00000bca f000f800* 1776 bl Det_ReportError 00000bce e018* 1777 b .L17567 1778 .L18020: 00000bd0 69c0 1779 ldr r0,[r0,28] 00000bd2 6801 1780 ldr r1,[r0] 00000bd4 2401 1781 movs r4,1 00000bd6 b141* 1782 cbz r1,.L18025 00000bd8 6889 1783 ldr r1,[r1,8] 00000bda b931* 1784 cbnz r1,.L18025 00000bdc f8d5108c 1785 ldr.w r1,[r5,140] 00000be0 2901 1786 cmp r1,1 00000be2 bf1c 1787 itt ne 00000be4 6aa9 1788 ldr r1,[r5,40] Page 31 objs\release\Spi.s 00000be6 2902 1789 cmp r1,2 00000be8 d009* 1790 beq .L18029 1791 .L18025: 00000bea 6840 1792 ldr r0,[r0,4] 00000bec b148* 1793 cbz r0,.L17567 00000bee 6880 1794 ldr r0,[r0,8] 00000bf0 b938* 1795 cbnz r0,.L17567 00000bf2 f8d50090 1796 ldr.w r0,[r5,144] 00000bf6 2801 1797 cmp r0,1 00000bf8 bf1c 1798 itt ne 00000bfa 6c68 1799 ldr r0,[r5,68] 00000bfc 2802 1800 cmp r0,2 1801 .L18029: 00000bfe bf08 1802 it eq 00000c00 2402 1803 mov r4,2 1804 .L17567: 00000c02 4620 1805 cpy r0,r4 1806 .L18513: 1807 00000c04 bd30 1808 pop {r4-r5,pc} 1809 .endf Spi_GetStatus 1810 ;Status r4 local 1811 1812 .section ".mcal_bss","awb" 0000008c 00000000 1813 Spi_SyncHWUnitsBusyStatus: .space 8 00000090 00000000 1814 .endo Spi_SyncHWUnitsBusyStatus 1815 .section ".ghcalltbl","" 000000c0 00000000* 1816 .L18512: .data.w .L18511 1817 .endo .L18512 1818 .section ".ghrettbl","" 00000044 00000000* 1819 .L18514: .data.w .L18513 1820 .endo .L18514 1821 .section ".mcal_code","ax" 1822 ..gh.f.f.1.a.1.e.12: 1823 .endo ..gh.f.f.1.a.1.e.12 1824 Spi_GetJobResult:: 00000c06 b510 1825 push {r4,lr} 00000c08 f2400200* 1826 movw r2,%lo(Spi_ConfigPtr) 00000c0c f2c00200* 1827 movt r2,%hi(Spi_ConfigPtr) 00000c10 6811 1828 ldr r1,[r2] 00000c12 2402 1829 movs r4,2 00000c14 b931* 1830 cbnz r1,.L18521 00000c16 231a 1831 movs r3,26 00000c18 2207 1832 movs r2,7 00000c1a 2053 1833 movs r0,83 1834 .L18924: 1835 00000c1c f000f800* 1836 bl Det_ReportError 00000c20 4620 1837 cpy r0,r4 1838 .L18926: 1839 00000c22 bd10 1840 pop {r4,pc} 1841 .L18521: 00000c24 888a 1842 ldrh r2,[r1,4] 00000c26 4290 1843 cmp r0,r2 00000c28 d907* 1844 bls .L18523 00000c2a 230b 1845 movs r3,11 00000c2c 2207 1846 movs r2,7 00000c2e 2100 1847 movs r1,0 00000c30 2053 1848 movs r0,83 Page 32 objs\release\Spi.s 1849 .L18928: 1850 00000c32 f000f800* 1851 bl Det_ReportError 00000c36 4620 1852 cpy r0,r4 1853 .L18930: 1854 00000c38 bd10 1855 pop {r4,pc} 1856 .L18523: 00000c3a 690a 1857 ldr r2,[r1,16] 00000c3c f8521020 1858 ldr.w r1,[r2,r0 lsl 2] 00000c40 b109* 1859 cbz r1,.L18526 00000c42 6949 1860 ldr r1,[r1,20] 00000c44 b139* 1861 cbz r1,.L18531 1862 .L18526: 00000c46 230f 1863 movs r3,15 00000c48 2207 1864 movs r2,7 00000c4a 2100 1865 movs r1,0 00000c4c 2053 1866 movs r0,83 1867 .L18932: 1868 00000c4e f000f800* 1869 bl Det_ReportError 00000c52 4620 1870 cpy r0,r4 1871 .L18934: 1872 00000c54 bd10 1873 pop {r4,pc} 1874 .L18531: 00000c56 ebc00080 1875 rsb r0,r0,r0 lsl 2 00000c5a f2400100* 1876 movw r1,%lo(Spi_JobStateArray) 00000c5e f2c00100* 1877 movt r1,%hi(Spi_JobStateArray) 00000c62 f8510020 1878 ldr.w r0,[r1,r0 lsl 2] 1879 .L18936: 1880 00000c66 bd10 1881 pop {r4,pc} 1882 .endf Spi_GetJobResult 1883 ;JobResult r4 local 1884 1885 ;Job r0 param 1886 1887 .section ".ghcalltbl","" 000000c4 00000000* 1888 .L18925: .data.w .L18924 1889 .endo .L18925 1890 .section ".ghrettbl","" 00000048 00000000* 1891 .L18927: .data.w .L18926 1892 .endo .L18927 1893 .section ".ghcalltbl","" 000000c8 00000000* 1894 .L18929: .data.w .L18928 1895 .endo .L18929 1896 .section ".ghrettbl","" 0000004c 00000000* 1897 .L18931: .data.w .L18930 1898 .endo .L18931 1899 .section ".ghcalltbl","" 000000cc 00000000* 1900 .L18933: .data.w .L18932 1901 .endo .L18933 1902 .section ".ghrettbl","" 00000050 00000000* 1903 .L18935: .data.w .L18934 1904 .endo .L18935 00000054 00000000* 1905 .L18937: .data.w .L18936 1906 .endo .L18937 1907 .section ".mcal_code","ax" 1908 .assert 0x0 + (Spi_SequenceStateArray - Spi_ConfigPtr) +0 == 76 1909 .assert 0x0 + (Spi_ConfigPtr - Spi_ConfigPtr) +0 == 0 Page 33 objs\release\Spi.s 1910 ..gh.f.f.1.a.1.e.13: 1911 .endo ..gh.f.f.1.a.1.e.13 1912 Spi_GetSequenceResult:: 00000c68 b530 1913 push {r4-r5,lr} 00000c6a f2400500* 1914 movw r5,%lo(Spi_ConfigPtr) 00000c6e f2c00500* 1915 movt r5,%hi(Spi_ConfigPtr) 00000c72 6829 1916 ldr r1,[r5] 00000c74 2402 1917 movs r4,2 00000c76 b931* 1918 cbnz r1,.L18944 00000c78 231a 1919 movs r3,26 00000c7a 2208 1920 movs r2,8 00000c7c 2053 1921 movs r0,83 1922 .L19340: 1923 00000c7e f000f800* 1924 bl Det_ReportError 00000c82 4620 1925 cpy r0,r4 1926 .L19342: 1927 00000c84 bd30 1928 pop {r4-r5,pc} 1929 .L18944: 00000c86 798a 1930 ldrb r2,[r1,6] 00000c88 4290 1931 cmp r0,r2 00000c8a d907* 1932 bls .L18946 00000c8c 230c 1933 movs r3,12 00000c8e 2208 1934 movs r2,8 00000c90 2100 1935 movs r1,0 00000c92 2053 1936 movs r0,83 1937 .L19344: 1938 00000c94 f000f800* 1939 bl Det_ReportError 00000c98 4620 1940 cpy r0,r4 1941 .L19346: 1942 00000c9a bd30 1943 pop {r4-r5,pc} 1944 .L18946: 00000c9c 694a 1945 ldr r2,[r1,20] 00000c9e f8521020 1946 ldr.w r1,[r2,r0 lsl 2] 00000ca2 b109* 1947 cbz r1,.L18949 00000ca4 6849 1948 ldr r1,[r1,4] 00000ca6 b139* 1949 cbz r1,.L18954 1950 .L18949: 00000ca8 230f 1951 movs r3,15 00000caa 2208 1952 movs r2,8 00000cac 2100 1953 movs r1,0 00000cae 2053 1954 movs r0,83 1955 .L19348: 1956 00000cb0 f000f800* 1957 bl Det_ReportError 00000cb4 4620 1958 cpy r0,r4 1959 .L19350: 1960 00000cb6 bd30 1961 pop {r4-r5,pc} 1962 .L18954: 00000cb8 0100 1963 lsls r0,r0,4 00000cba f105014c 1964 add r1,r5,76 00000cbe 5840 1965 ldr r0,[r0,r1] 1966 .L19352: 1967 00000cc0 bd30 1968 pop {r4-r5,pc} 1969 .endf Spi_GetSequenceResult 1970 ;SequenceResult r4 local Page 34 objs\release\Spi.s 1971 1972 ;Sequence r0 param 1973 1974 .section ".ghcalltbl","" 000000d0 00000000* 1975 .L19341: .data.w .L19340 1976 .endo .L19341 1977 .section ".ghrettbl","" 00000058 00000000* 1978 .L19343: .data.w .L19342 1979 .endo .L19343 1980 .section ".ghcalltbl","" 000000d4 00000000* 1981 .L19345: .data.w .L19344 1982 .endo .L19345 1983 .section ".ghrettbl","" 0000005c 00000000* 1984 .L19347: .data.w .L19346 1985 .endo .L19347 1986 .section ".ghcalltbl","" 000000d8 00000000* 1987 .L19349: .data.w .L19348 1988 .endo .L19349 1989 .section ".ghrettbl","" 00000060 00000000* 1990 .L19351: .data.w .L19350 1991 .endo .L19351 00000064 00000000* 1992 .L19353: .data.w .L19352 1993 .endo .L19353 1994 .section ".mcal_code","ax" 1995 ..gh.f.f.1.a.1.e.14: 1996 .endo ..gh.f.f.1.a.1.e.14 1997 Spi_GetVersionInfo:: 00000cc2 0001 1998 movs r1,r0 00000cc4 d104* 1999 bne .L19356 00000cc6 2310 2000 movs r3,16 00000cc8 2209 2001 movs r2,9 00000cca 2053 2002 movs r0,83 2003 .L19454: 2004 00000ccc f000b800* 2005 b Det_ReportError 2006 .L19356: 00000cd0 21b3 2007 movs r1,179 00000cd2 8001 2008 strh r1,[r0] 00000cd4 2153 2009 movs r1,83 00000cd6 8041 2010 strh r1,[r0,2] 00000cd8 2101 2011 movs r1,1 00000cda 7101 2012 strb r1,[r0,4] 00000cdc 2102 2013 movs r1,2 00000cde 7141 2014 strb r1,[r0,5] 00000ce0 2100 2015 movs r1,0 00000ce2 7181 2016 strb r1,[r0,6] 2017 .L19456: 2018 00000ce4 4770 2019 ret 2020 .endf Spi_GetVersionInfo 2021 2022 ;versioninfo r0 param 2023 2024 .section ".bss","awb" 2025 .L19412: 2026 .endo .L19412 2027 .section ".ghtailcalltbl","" 00000018 00000000* 2028 .L19455: .data.w .L19454 2029 .endo .L19455 2030 .section ".ghrettbl","" 00000068 00000000* 2031 .L19457: .data.w .L19456 Page 35 objs\release\Spi.s 2032 .endo .L19457 2033 .section ".mcal_code","ax" 2034 .assert 0x0 + (Spi_ConfigPtr - Spi_ConfigPtr) +0 == 0 2035 .assert 0x0 + (Spi_HWUnitQueueArray - Spi_ConfigPtr) +0 == 20 2036 .assert 0x0 + (Spi_SequenceStateArray - Spi_ConfigPtr) +0 == 76 2037 .assert 0x0 + (Spi_SyncHWUnitsBusyStatus - Spi_ConfigPtr) +0 == 140 2038 .assert 0x0 + (Spi_SeqUsedHWUnits - Spi_ConfigPtr) +0 == 4 2039 ..gh.f.f.1.a.1.e.15: 2040 .endo ..gh.f.f.1.a.1.e.15 2041 Spi_SyncTransmit:: 00000ce6 e92d4ff0 2042 push {r4-fp,lr} 00000cea b093 2043 sub sp,sp,76 00000cec 4605 2044 cpy r5,r0 00000cee f2400700* 2045 movw r7,%lo(Spi_ConfigPtr) 00000cf2 f2c00700* 2046 movt r7,%hi(Spi_ConfigPtr) 00000cf6 4601 2047 cpy r1,r0 00000cf8 220a 2048 movs r2,10 00000cfa f88d0007 2049 strb r0,[sp,7] 00000cfe 2000 2050 movs r0,0 2051 .L26449: 2052 00000d00 f7fff97e* 2053 bl Spi_CheckSequence 00000d04 4604 2054 cpy r4,r0 00000d06 2801 2055 cmp r0,1 00000d08 d055* 2056 beq .L19460 00000d0a f8d7e000 2057 ldr.w lr,[r7] 00000d0e f8de2014 2058 ldr.w r2,[lr,20] 00000d12 f8521025 2059 ldr.w r1,[r2,r5 lsl 2] 00000d16 8808 2060 ldrh r0,[r1] 00000d18 f04f0a00 2061 mov r10,0 00000d1c f8ad002a 2062 strh r0,[sp,42] 00000d20 4582 2063 cmp r10,r0 00000d22 d248* 2064 bhs .L19460 00000d24 6888 2065 ldr r0,[r1,8] 00000d26 900c 2066 str r0,[sp,48] 00000d28 f8de001c 2067 ldr.w r0,[lr,28] 00000d2c f8deb010 2068 ldr.w fp,[lr,16] 00000d30 900b 2069 str r0,[sp,44] 2070 .L19464: 00000d32 980c 2071 ldr r0,[sp,48] 00000d34 ea4f014a 2072 lsl r1,r10,1 00000d38 5a0a 2073 ldrh r2,[r1,r0] 00000d3a f85b1022 2074 ldr.w r1,[fp,r2 lsl 2] 00000d3e 980b 2075 ldr r0,[sp,44] 00000d40 7f0b 2076 ldrb r3,[r1,28] 00000d42 f8503023 2077 ldr.w r3,[r0,r3 lsl 2] 00000d46 685b 2078 ldr r3,[r3,4] 00000d48 b943* 2079 cbnz r3,.L19466 00000d4a f04f0801 2080 mov r8,1 00000d4e 230e 2081 movs r3,14 00000d50 220a 2082 movs r2,10 00000d52 2100 2083 movs r1,0 00000d54 2053 2084 movs r0,83 2085 .L26451: 2086 00000d56 f000f800* 2087 bl Det_ReportError 00000d5a e2b8* 2088 b .L19458 2089 .L19466: 00000d5c bb5c* 2090 cbnz r4,.L19460 00000d5e 780b 2091 ldrb r3,[r1] 00000d60 4621 2092 cpy r1,r4 Page 36 objs\release\Spi.s 00000d62 429c 2093 cmp r4,r3 00000d64 d21f* 2094 bhs .L19475 00000d66 f85b2022 2095 ldr.w r2,[fp,r2 lsl 2] 00000d6a f2400500* 2096 movw r5,%lo(Spi_ChannelStateArray) 00000d6e f2c00500* 2097 movt r5,%hi(Spi_ChannelStateArray) 00000d72 f8dec00c 2098 ldr.w r12,[lr,12] 00000d76 6856 2099 ldr r6,[r2,4] 2100 .L19468: 00000d78 5c72 2101 ldrb r2,[r6,r1] 00000d7a f85c0022 2102 ldr.w r0,[r12,r2 lsl 2] 00000d7e 6800 2103 ldr r0,[r0] 00000d80 2801 2104 cmp r0,1 00000d82 d10c* 2105 bne .L19472 00000d84 eb050282 2106 add r2,r5,r2 lsl 2 00000d88 8852 2107 ldrh r2,[r2,2] 00000d8a b942* 2108 cbnz r2,.L19472 00000d8c 235b 2109 movs r3,91 00000d8e 220a 2110 movs r2,10 00000d90 4621 2111 cpy r1,r4 00000d92 2053 2112 movs r0,83 2113 .L26453: 2114 00000d94 f000f800* 2115 bl Det_ReportError 00000d98 f04f0801 2116 mov r8,1 00000d9c e297* 2117 b .L19458 2118 .L19472: 00000d9e 1c49 2119 adds r1,r1,1 00000da0 b2c9 2120 uxtb r1,r1 00000da2 4299 2121 cmp r1,r3 00000da4 d3e8* 2122 blo .L19468 2123 .L19475: 00000da6 f8bd002a 2124 ldrh r0,[sp,42] 00000daa f10a0a01 2125 add r10,r10,1 00000dae fa1ffa8a 2126 uxth r10,r10 00000db2 4582 2127 cmp r10,r0 00000db4 d3bd* 2128 blo .L19464 2129 .L19460: 00000db6 46a0 2130 mov r8,r4 00000db8 2c01 2131 cmp r4,1 00000dba f0008288* 2132 beq .L19458 00000dbe 6839 2133 ldr r1,[r7] 00000dc0 f89d5007 2134 ldrb r5,[sp,7] 00000dc4 694a 2135 ldr r2,[r1,20] 00000dc6 f8524025 2136 ldr.w r4,[r2,r5 lsl 2] 00000dca 9410 2137 str r4,[sp,64] 00000dcc 8824 2138 ldrh r4,[r4] 00000dce f8ad4046 2139 strh r4,[sp,70] 2140 .L26455: 2141 00000dd2 f000f800* 2142 bl SchM_Enter_Spi_UpdateSyncHWUnitStatus 00000dd6 1d3a 2143 adds r2,r7,4 00000dd8 f2400400* 2144 movw r4,%lo(Spi_SyncHWUnitsBusyStatus) 00000ddc f2c00400* 2145 movt r4,%hi(Spi_SyncHWUnitsBusyStatus) 00000de0 f8521025 2146 ldr.w r1,[r2,r5 lsl 2] 00000de4 6822 2147 ldr r2,[r4] 00000de6 420a 2148 tst r2,r1 00000de8 bf18 2149 it ne 00000dea f04f0801 2150 mov r8,1 00000dee f2400000* 2151 movw r0,%lo(Spi_SyncHWUnitsBusyStatus) 00000df2 f2c00000* 2152 movt r0,%hi(Spi_SyncHWUnitsBusyStatus) 00000df6 6842 2153 ldr r2,[r0,4] Page 37 objs\release\Spi.s 00000df8 ea110f42 2154 tst r1,r2 lsl 1 00000dfc bf18 2155 it ne 00000dfe f04f0801 2156 mov r8,1 00000e02 fa5ff088 2157 uxtb r0,r8 00000e06 2801 2158 cmp r0,1 00000e08 f0008259* 2159 beq .L19486 00000e0c f89d0007 2160 ldrb r0,[sp,7] 00000e10 f8bdb046 2161 ldrh fp,[sp,70] 00000e14 f107014c 2162 add r1,r7,76 00000e18 eb011200 2163 add r2,r1,r0 lsl 4 00000e1c 9212 2164 str r2,[sp,72] 00000e1e 2101 2165 movs r1,1 00000e20 6011 2166 str r1,[r2] 00000e22 2200 2167 movs r2,0 00000e24 920e 2168 str r2,[sp,56] 00000e26 ea5f0adb 2169 lsrs r10,fp,3 00000e2a d04a* 2170 beq .L21178 00000e2c 9810 2171 ldr r0,[sp,64] 00000e2e 6839 2172 ldr r1,[r7] 00000e30 6884 2173 ldr r4,[r0,8] 00000e32 f2400600* 2174 movw r6,%lo(Spi_SyncHWUnitsBusyStatus) 00000e36 f2c00600* 2175 movt r6,%hi(Spi_SyncHWUnitsBusyStatus) 00000e3a f04f0c01 2176 mov r12,1 00000e3e ea4f00ca 2177 lsl r0,r10,3 00000e42 900e 2178 str r0,[sp,56] 00000e44 690d 2179 ldr r5,[r1,16] 2180 .L21184: 00000e46 f8342b10 2181 ldrh r2,[r4],16 00000e4a f8553022 2182 ldr.w r3,[r5,r2 lsl 2] 00000e4e f8342c0e 2183 ldrh r2,[r4,-14] 00000e52 7f19 2184 ldrb r1,[r3,28] 00000e54 f8553022 2185 ldr.w r3,[r5,r2 lsl 2] 00000e58 f8342c0c 2186 ldrh r2,[r4,-12] 00000e5c 7f18 2187 ldrb r0,[r3,28] 00000e5e f8553022 2188 ldr.w r3,[r5,r2 lsl 2] 00000e62 f8342c0a 2189 ldrh r2,[r4,-10] 00000e66 f893e01c 2190 ldrb lr,[r3,28] 00000e6a f8553022 2191 ldr.w r3,[r5,r2 lsl 2] 00000e6e f8342c08 2192 ldrh r2,[r4,-8] 00000e72 f846c021 2193 str r12,[r6,r1 lsl 2] 00000e76 7f19 2194 ldrb r1,[r3,28] 00000e78 f8553022 2195 ldr.w r3,[r5,r2 lsl 2] 00000e7c f8342c06 2196 ldrh r2,[r4,-6] 00000e80 f846c020 2197 str r12,[r6,r0 lsl 2] 00000e84 f846c02e 2198 str r12,[r6,lr lsl 2] 00000e88 f893e01c 2199 ldrb lr,[r3,28] 00000e8c f8553022 2200 ldr.w r3,[r5,r2 lsl 2] 00000e90 f8342c04 2201 ldrh r2,[r4,-4] 00000e94 7f18 2202 ldrb r0,[r3,28] 00000e96 f8553022 2203 ldr.w r3,[r5,r2 lsl 2] 00000e9a f8342c02 2204 ldrh r2,[r4,-2] 00000e9e f1ba0a01 2205 subs r10,r10,1 00000ea2 f893801c 2206 ldrb r8,[r3,28] 00000ea6 f8553022 2207 ldr.w r3,[r5,r2 lsl 2] 00000eaa f846c021 2208 str r12,[r6,r1 lsl 2] 00000eae f846c02e 2209 str r12,[r6,lr lsl 2] 00000eb2 7f19 2210 ldrb r1,[r3,28] 00000eb4 f846c020 2211 str r12,[r6,r0 lsl 2] 00000eb8 f846c028 2212 str r12,[r6,r8 lsl 2] 00000ebc f846c021 2213 str r12,[r6,r1 lsl 2] 00000ec0 d1c1* 2214 bne .L21184 Page 38 objs\release\Spi.s 2215 .L21178: 00000ec2 f01b0407 2216 ands r4,fp,7 00000ec6 d014* 2217 beq .L19488 00000ec8 6839 2218 ldr r1,[r7] 00000eca 9810 2219 ldr r0,[sp,64] 00000ecc 690d 2220 ldr r5,[r1,16] 00000ece 990e 2221 ldr r1,[sp,56] 00000ed0 6882 2222 ldr r2,[r0,8] 00000ed2 eb020641 2223 add r6,r2,r1 lsl 1 2224 .L21181: 00000ed6 f8362b02 2225 ldrh r2,[r6],2 00000eda f8553022 2226 ldr.w r3,[r5,r2 lsl 2] 00000ede 7f19 2227 ldrb r1,[r3,28] 00000ee0 f2400000* 2228 movw r0,%lo(Spi_SyncHWUnitsBusyStatus) 00000ee4 f2c00000* 2229 movt r0,%hi(Spi_SyncHWUnitsBusyStatus) 00000ee8 2201 2230 movs r2,1 00000eea 1e64 2231 subs r4,r4,1 00000eec f8402021 2232 str r2,[r0,r1 lsl 2] 00000ef0 d1f1* 2233 bne .L21181 2234 .L19488: 2235 .L26457: 2236 00000ef2 f000f800* 2237 bl SchM_Exit_Spi_UpdateSyncHWUnitStatus 00000ef6 9810 2238 ldr r0,[sp,64] 00000ef8 8801 2239 ldrh r1,[r0] 00000efa f8d09008 2240 ldr.w r9,[r0,8] 00000efe f8ad1028 2241 strh r1,[sp,40] 00000f02 2900 2242 cmp r1,0 00000f04 f0008151* 2243 beq .L19492 2244 .L19495: 00000f08 683b 2245 ldr r3,[r7] 00000f0a f8b91000 2246 ldrh r1,[r9] 00000f0e 691b 2247 ldr r3,[r3,16] 00000f10 ebc10281 2248 rsb r2,r1,r1 lsl 2 00000f14 f8536021 2249 ldr.w r6,[r3,r1 lsl 2] 00000f18 f2400100* 2250 movw r1,%lo(Spi_JobStateArray) 00000f1c f2c00100* 2251 movt r1,%hi(Spi_JobStateArray) 00000f20 eb010082 2252 add r0,r1,r2 lsl 2 00000f24 900d 2253 str r0,[sp,52] 00000f26 2201 2254 movs r2,1 00000f28 7f31 2255 ldrb r1,[r6,28] 00000f2a 6002 2256 str r2,[r0] 00000f2c f2400000* 2257 movw r0,%lo(Spi_HWUnitQueueArray) 00000f30 f2c00000* 2258 movt r0,%hi(Spi_HWUnitQueueArray) 00000f34 2202 2259 movs r2,2 00000f36 ebc101c1 2260 rsb r1,r1,r1 lsl 3 00000f3a eb000181 2261 add r1,r0,r1 lsl 2 00000f3e 614a 2262 str r2,[r1,20] 00000f40 6a32 2263 ldr r2,[r6,32] 00000f42 68f1 2264 ldr r1,[r6,12] 00000f44 2500 2265 movs r5,0 00000f46 2900 2266 cmp r1,0 00000f48 f8d2a000 2267 ldr.w r10,[r2] 00000f4c bf18 2268 it ne 2269 .L26459: 2270 00000f4e 4788 2271 blx r1 00000f50 f896b000 2272 ldrb fp,[r6] 00000f54 462c 2273 cpy r4,r5 00000f56 ea5f00db 2274 lsrs r0,fp,3 00000f5a 9007 2275 str r0,[sp,28] Page 39 objs\release\Spi.s 00000f5c f8cdb024 2276 str fp,[sp,36] 00000f60 f00080c9* 2277 beq .L21025 2278 .L21037: 00000f64 683a 2279 ldr r2,[r7] 00000f66 6871 2280 ldr r1,[r6,4] 00000f68 68d2 2281 ldr r2,[r2,12] 00000f6a 5d09 2282 ldrb r1,[r1,r4] 00000f6c f1ab0801 2283 sub r8,fp,1 00000f70 f8cd8018 2284 str r8,[sp,24] 00000f74 f8520021 2285 ldr.w r0,[r2,r1 lsl 2] 00000f78 2101 2286 movs r1,1 00000f7a 9100 2287 str r1,[sp] 00000f7c 2c00 2288 cmp r4,0 00000f7e bf0c 2289 ite eq 00000f80 2201 2290 mov r2,1 00000f82 2200 2291 mov r2,0 00000f84 4544 2292 cmp r4,r8 00000f86 bf0c 2293 ite eq 00000f88 2301 2294 mov r3,1 00000f8a 2300 2295 mov r3,0 00000f8c 4651 2296 mov r1,r10 2297 .L26461: 2298 00000f8e f000f800* 2299 bl Spi_Drvw_TransmitChannel 00000f92 1e05 2300 subs r5,r0,0 00000f94 f04080d0* 2301 bne .L19507 00000f98 683a 2302 ldr r2,[r7] 00000f9a 6871 2303 ldr r1,[r6,4] 00000f9c 1c64 2304 adds r4,r4,1 00000f9e 68d2 2305 ldr r2,[r2,12] 00000fa0 5d09 2306 ldrb r1,[r1,r4] 00000fa2 f8520021 2307 ldr.w r0,[r2,r1 lsl 2] 00000fa6 f04f0101 2308 mov r1,1 00000faa 9100 2309 str r1,[sp] 00000fac bf0c 2310 ite eq 00000fae 2201 2311 mov r2,1 00000fb0 2200 2312 mov r2,0 00000fb2 4544 2313 cmp r4,r8 00000fb4 bf0c 2314 ite eq 00000fb6 2301 2315 mov r3,1 00000fb8 2300 2316 mov r3,0 00000fba 4651 2317 mov r1,r10 2318 .L26463: 2319 00000fbc f000f800* 2320 bl Spi_Drvw_TransmitChannel 00000fc0 1e05 2321 subs r5,r0,0 00000fc2 f04080b9* 2322 bne .L19507 00000fc6 683a 2323 ldr r2,[r7] 00000fc8 6871 2324 ldr r1,[r6,4] 00000fca 1c64 2325 adds r4,r4,1 00000fcc 68d2 2326 ldr r2,[r2,12] 00000fce 5d09 2327 ldrb r1,[r1,r4] 00000fd0 f1ab0801 2328 sub r8,fp,1 00000fd4 f8cd8014 2329 str r8,[sp,20] 00000fd8 f8520021 2330 ldr.w r0,[r2,r1 lsl 2] 00000fdc f04f0101 2331 mov r1,1 00000fe0 9100 2332 str r1,[sp] 00000fe2 bf0c 2333 ite eq 00000fe4 2201 2334 mov r2,1 00000fe6 2200 2335 mov r2,0 00000fe8 4544 2336 cmp r4,r8 Page 40 objs\release\Spi.s 00000fea bf0c 2337 ite eq 00000fec 2301 2338 mov r3,1 00000fee 2300 2339 mov r3,0 00000ff0 4651 2340 mov r1,r10 2341 .L26465: 2342 00000ff2 f000f800* 2343 bl Spi_Drvw_TransmitChannel 00000ff6 1e05 2344 subs r5,r0,0 00000ff8 f040809e* 2345 bne .L19507 00000ffc 683a 2346 ldr r2,[r7] 00000ffe 6871 2347 ldr r1,[r6,4] 00001000 1c64 2348 adds r4,r4,1 00001002 68d2 2349 ldr r2,[r2,12] 00001004 5d09 2350 ldrb r1,[r1,r4] 00001006 f8520021 2351 ldr.w r0,[r2,r1 lsl 2] 0000100a f04f0101 2352 mov r1,1 0000100e 9100 2353 str r1,[sp] 00001010 bf0c 2354 ite eq 00001012 2201 2355 mov r2,1 00001014 2200 2356 mov r2,0 00001016 4544 2357 cmp r4,r8 00001018 bf0c 2358 ite eq 0000101a 2301 2359 mov r3,1 0000101c 2300 2360 mov r3,0 0000101e 4651 2361 mov r1,r10 2362 .L26467: 2363 00001020 f000f800* 2364 bl Spi_Drvw_TransmitChannel 00001024 1e05 2365 subs r5,r0,0 00001026 f0408087* 2366 bne .L19507 0000102a 683a 2367 ldr r2,[r7] 0000102c 6871 2368 ldr r1,[r6,4] 0000102e 1c64 2369 adds r4,r4,1 00001030 68d2 2370 ldr r2,[r2,12] 00001032 5d09 2371 ldrb r1,[r1,r4] 00001034 f1ab0801 2372 sub r8,fp,1 00001038 f8cd800c 2373 str r8,[sp,12] 0000103c f8520021 2374 ldr.w r0,[r2,r1 lsl 2] 00001040 f04f0101 2375 mov r1,1 00001044 9100 2376 str r1,[sp] 00001046 bf0c 2377 ite eq 00001048 2201 2378 mov r2,1 0000104a 2200 2379 mov r2,0 0000104c 4544 2380 cmp r4,r8 0000104e bf0c 2381 ite eq 00001050 2301 2382 mov r3,1 00001052 2300 2383 mov r3,0 00001054 4651 2384 mov r1,r10 2385 .L26469: 2386 00001056 f000f800* 2387 bl Spi_Drvw_TransmitChannel 0000105a 1e05 2388 subs r5,r0,0 0000105c d16c* 2389 bne .L19507 0000105e 683a 2390 ldr r2,[r7] 00001060 6871 2391 ldr r1,[r6,4] 00001062 1c64 2392 adds r4,r4,1 00001064 68d2 2393 ldr r2,[r2,12] 00001066 5d09 2394 ldrb r1,[r1,r4] 00001068 f8520021 2395 ldr.w r0,[r2,r1 lsl 2] 0000106c f04f0101 2396 mov r1,1 00001070 9100 2397 str r1,[sp] Page 41 objs\release\Spi.s 00001072 bf0c 2398 ite eq 00001074 2201 2399 mov r2,1 00001076 2200 2400 mov r2,0 00001078 4544 2401 cmp r4,r8 0000107a bf0c 2402 ite eq 0000107c 2301 2403 mov r3,1 0000107e 2300 2404 mov r3,0 00001080 4651 2405 mov r1,r10 2406 .L26471: 2407 00001082 f000f800* 2408 bl Spi_Drvw_TransmitChannel 00001086 1e05 2409 subs r5,r0,0 00001088 d156* 2410 bne .L19507 0000108a 683a 2411 ldr r2,[r7] 0000108c 6871 2412 ldr r1,[r6,4] 0000108e 1c64 2413 adds r4,r4,1 00001090 68d2 2414 ldr r2,[r2,12] 00001092 5d09 2415 ldrb r1,[r1,r4] 00001094 f1ab0801 2416 sub r8,fp,1 00001098 f8cd8010 2417 str r8,[sp,16] 0000109c f8520021 2418 ldr.w r0,[r2,r1 lsl 2] 000010a0 f04f0101 2419 mov r1,1 000010a4 9100 2420 str r1,[sp] 000010a6 bf0c 2421 ite eq 000010a8 2201 2422 mov r2,1 000010aa 2200 2423 mov r2,0 000010ac 4544 2424 cmp r4,r8 000010ae bf0c 2425 ite eq 000010b0 2301 2426 mov r3,1 000010b2 2300 2427 mov r3,0 000010b4 4651 2428 mov r1,r10 2429 .L26473: 2430 000010b6 f000f800* 2431 bl Spi_Drvw_TransmitChannel 000010ba 1e05 2432 subs r5,r0,0 000010bc d13c* 2433 bne .L19507 000010be 683a 2434 ldr r2,[r7] 000010c0 6871 2435 ldr r1,[r6,4] 000010c2 1c64 2436 adds r4,r4,1 000010c4 68d2 2437 ldr r2,[r2,12] 000010c6 5d09 2438 ldrb r1,[r1,r4] 000010c8 f8520021 2439 ldr.w r0,[r2,r1 lsl 2] 000010cc f04f0101 2440 mov r1,1 000010d0 9100 2441 str r1,[sp] 000010d2 bf0c 2442 ite eq 000010d4 2201 2443 mov r2,1 000010d6 2200 2444 mov r2,0 000010d8 4544 2445 cmp r4,r8 000010da bf0c 2446 ite eq 000010dc 2301 2447 mov r3,1 000010de 2300 2448 mov r3,0 000010e0 4651 2449 mov r1,r10 2450 .L26475: 2451 000010e2 f000f800* 2452 bl Spi_Drvw_TransmitChannel 000010e6 1e05 2453 subs r5,r0,0 000010e8 d126* 2454 bne .L19507 000010ea 9807 2455 ldr r0,[sp,28] 000010ec 1c64 2456 adds r4,r4,1 000010ee 1e40 2457 subs r0,r0,1 000010f0 9007 2458 str r0,[sp,28] Page 42 objs\release\Spi.s 000010f2 f47faf37* 2459 bne .L21037 2460 .L21025: 000010f6 9809 2461 ldr r0,[sp,36] 000010f8 f0100007 2462 ands r0,r0,7 000010fc 9002 2463 str r0,[sp,8] 000010fe d01b* 2464 beq .L19507 2465 .L21030: 00001100 683a 2466 ldr r2,[r7] 00001102 6871 2467 ldr r1,[r6,4] 00001104 68d2 2468 ldr r2,[r2,12] 00001106 5d09 2469 ldrb r1,[r1,r4] 00001108 f8520021 2470 ldr.w r0,[r2,r1 lsl 2] 0000110c 2101 2471 movs r1,1 0000110e 9100 2472 str r1,[sp] 00001110 2c00 2473 cmp r4,0 00001112 bf0c 2474 ite eq 00001114 2201 2475 mov r2,1 00001116 2200 2476 mov r2,0 00001118 f1ab0101 2477 sub r1,fp,1 0000111c 428c 2478 cmp r4,r1 0000111e bf0c 2479 ite eq 00001120 2301 2480 mov r3,1 00001122 2300 2481 mov r3,0 00001124 4651 2482 mov r1,r10 2483 .L26477: 2484 00001126 f000f800* 2485 bl Spi_Drvw_TransmitChannel 0000112a 1e05 2486 subs r5,r0,0 0000112c d104* 2487 bne .L19507 0000112e 9802 2488 ldr r0,[sp,8] 00001130 1c64 2489 adds r4,r4,1 00001132 1e40 2490 subs r0,r0,1 00001134 9002 2491 str r0,[sp,8] 00001136 d1e3* 2492 bne .L21030 2493 .L19507: 00001138 7f31 2494 ldrb r1,[r6,28] 0000113a f2400000* 2495 movw r0,%lo(Spi_HWUnitQueueArray) 0000113e f2c00000* 2496 movt r0,%hi(Spi_HWUnitQueueArray) 00001142 2201 2497 movs r2,1 00001144 1e2c 2498 subs r4,r5,0 00001146 ebc101c1 2499 rsb r1,r1,r1 lsl 3 0000114a eb000181 2500 add r1,r0,r1 lsl 2 0000114e 614a 2501 str r2,[r1,20] 00001150 f00080a3* 2502 beq .L19509 00001154 f8bd0028 2503 ldrh r0,[sp,40] 00001158 f2400500* 2504 movw r5,%lo(Spi_JobStateArray) 0000115c f2c00500* 2505 movt r5,%hi(Spi_JobStateArray) 00001160 ea4f4a00 2506 lsl r10,r0,16 2507 .L19511: 00001164 683a 2508 ldr r2,[r7] 00001166 f8b91000 2509 ldrh r1,[r9] 0000116a 6913 2510 ldr r3,[r2,16] 0000116c f8530021 2511 ldr.w r0,[r3,r1 lsl 2] 00001170 ebd10181 2512 rsbs r1,r1,r1 lsl 2 00001174 2302 2513 movs r3,2 00001176 f8453021 2514 str r3,[r5,r1 lsl 2] 0000117a 6881 2515 ldr r1,[r0,8] 0000117c 2900 2516 cmp r1,0 0000117e bf18 2517 it ne 2518 .L26479: 2519 Page 43 objs\release\Spi.s 00001180 4788 2520 blx r1 00001182 f1090902 2521 add r9,r9,2 00001186 f5aa3a80 2522 sub r10,r10,1<<16 0000118a ea5f411a 2523 lsrs r1,r10,16 0000118e d1e9* 2524 bne .L19511 00001190 2001 2525 movs r0,1 00001192 f8ad0028 2526 strh r0,[sp,40] 2527 .L19516: 00001196 f8bd0028 2528 ldrh r0,[sp,40] 0000119a f1090902 2529 add r9,r9,2 0000119e 1e41 2530 subs r1,r0,1 000011a0 f8ad1028 2531 strh r1,[sp,40] 000011a4 0408 2532 lsls r0,r1,16 000011a6 f47faeaf* 2533 bne .L19495 2534 .L19492: 000011aa f1b40800 2535 subs r8,r4,0 000011ae bf18 2536 it ne 000011b0 2402 2537 mov r4,2 000011b2 9812 2538 ldr r0,[sp,72] 000011b4 6004 2539 str r4,[r0] 2540 .L26481: 2541 000011b6 f000f800* 2542 bl SchM_Enter_Spi_UpdateSyncHWUnitStatus 000011ba 2000 2543 movs r0,0 000011bc f8bdb046 2544 ldrh fp,[sp,70] 000011c0 900f 2545 str r0,[sp,60] 000011c2 ea5f0adb 2546 lsrs r10,fp,3 000011c6 d04a* 2547 beq .L21187 000011c8 9810 2548 ldr r0,[sp,64] 000011ca 6839 2549 ldr r1,[r7] 000011cc 6884 2550 ldr r4,[r0,8] 000011ce f2400600* 2551 movw r6,%lo(Spi_SyncHWUnitsBusyStatus) 000011d2 f2c00600* 2552 movt r6,%hi(Spi_SyncHWUnitsBusyStatus) 000011d6 f04f0c00 2553 mov r12,0 000011da ea4f00ca 2554 lsl r0,r10,3 000011de 900f 2555 str r0,[sp,60] 000011e0 690d 2556 ldr r5,[r1,16] 2557 .L21193: 000011e2 f8342b10 2558 ldrh r2,[r4],16 000011e6 f8553022 2559 ldr.w r3,[r5,r2 lsl 2] 000011ea f8342c0e 2560 ldrh r2,[r4,-14] 000011ee 7f19 2561 ldrb r1,[r3,28] 000011f0 f8553022 2562 ldr.w r3,[r5,r2 lsl 2] 000011f4 f8342c0c 2563 ldrh r2,[r4,-12] 000011f8 7f18 2564 ldrb r0,[r3,28] 000011fa f8553022 2565 ldr.w r3,[r5,r2 lsl 2] 000011fe f8342c0a 2566 ldrh r2,[r4,-10] 00001202 f893e01c 2567 ldrb lr,[r3,28] 00001206 f8553022 2568 ldr.w r3,[r5,r2 lsl 2] 0000120a f8342c08 2569 ldrh r2,[r4,-8] 0000120e f846c021 2570 str r12,[r6,r1 lsl 2] 00001212 7f19 2571 ldrb r1,[r3,28] 00001214 f8553022 2572 ldr.w r3,[r5,r2 lsl 2] 00001218 f8342c06 2573 ldrh r2,[r4,-6] 0000121c f846c020 2574 str r12,[r6,r0 lsl 2] 00001220 f846c02e 2575 str r12,[r6,lr lsl 2] 00001224 f893e01c 2576 ldrb lr,[r3,28] 00001228 f8553022 2577 ldr.w r3,[r5,r2 lsl 2] 0000122c f8342c04 2578 ldrh r2,[r4,-4] 00001230 7f18 2579 ldrb r0,[r3,28] 00001232 f8553022 2580 ldr.w r3,[r5,r2 lsl 2] Page 44 objs\release\Spi.s 00001236 f8342c02 2581 ldrh r2,[r4,-2] 0000123a f1ba0a01 2582 subs r10,r10,1 0000123e f893901c 2583 ldrb r9,[r3,28] 00001242 f8553022 2584 ldr.w r3,[r5,r2 lsl 2] 00001246 f846c021 2585 str r12,[r6,r1 lsl 2] 0000124a f846c02e 2586 str r12,[r6,lr lsl 2] 0000124e 7f19 2587 ldrb r1,[r3,28] 00001250 f846c020 2588 str r12,[r6,r0 lsl 2] 00001254 f846c029 2589 str r12,[r6,r9 lsl 2] 00001258 f846c021 2590 str r12,[r6,r1 lsl 2] 0000125c d1c1* 2591 bne .L21193 2592 .L21187: 0000125e f01b0407 2593 ands r4,fp,7 00001262 d013* 2594 beq .L19522 00001264 6839 2595 ldr r1,[r7] 00001266 9810 2596 ldr r0,[sp,64] 00001268 690d 2597 ldr r5,[r1,16] 0000126a 990f 2598 ldr r1,[sp,60] 0000126c 6882 2599 ldr r2,[r0,8] 0000126e eb020641 2600 add r6,r2,r1 lsl 1 2601 .L21190: 00001272 f8362b02 2602 ldrh r2,[r6],2 00001276 f8553022 2603 ldr.w r3,[r5,r2 lsl 2] 0000127a 7f19 2604 ldrb r1,[r3,28] 0000127c f2400000* 2605 movw r0,%lo(Spi_SyncHWUnitsBusyStatus) 00001280 f2c00000* 2606 movt r0,%hi(Spi_SyncHWUnitsBusyStatus) 00001284 1e64 2607 subs r4,r4,1 00001286 f840a021 2608 str r10,[r0,r1 lsl 2] 0000128a d1f2* 2609 bne .L21190 2610 .L19522: 2611 .L26483: 2612 0000128c f000f800* 2613 bl SchM_Exit_Spi_UpdateSyncHWUnitStatus 00001290 9810 2614 ldr r0,[sp,64] 00001292 68c1 2615 ldr r1,[r0,12] 00001294 b1d9* 2616 cbz r1,.L19458 2617 .L26485: 2618 00001296 4788 2619 blx r1 00001298 e019* 2620 b .L19458 2621 .L19509: 0000129a 980d 2622 ldr r0,[sp,52] 0000129c 68b1 2623 ldr r1,[r6,8] 0000129e 6005 2624 str r5,[r0] 000012a0 2900 2625 cmp r1,0 000012a2 f43faf78* 2626 beq .L19516 2627 .L26487: 2628 000012a6 4788 2629 blx r1 000012a8 f8bd0028 2630 ldrh r0,[sp,40] 000012ac f1090902 2631 add r9,r9,2 000012b0 1e41 2632 subs r1,r0,1 000012b2 f8ad1028 2633 strh r1,[sp,40] 000012b6 0408 2634 lsls r0,r1,16 000012b8 f47fae26* 2635 bne .L19495 000012bc e775* 2636 b .L19492 2637 .L19486: 2638 .L26489: 2639 000012be f000f800* 2640 bl SchM_Exit_Spi_UpdateSyncHWUnitStatus 000012c2 233a 2641 movs r3,58 Page 45 objs\release\Spi.s 000012c4 220a 2642 movs r2,10 000012c6 2100 2643 movs r1,0 000012c8 2053 2644 movs r0,83 2645 .L26491: 2646 000012ca f000f800* 2647 bl Det_ReportRuntimeError 2648 .L19458: 000012ce fa5ff088 2649 uxtb r0,r8 000012d2 b013 2650 add sp,sp,76 2651 .L26493: 2652 000012d4 e8bd8ff0 2653 pop {r4-fp,pc} 2654 .endf Spi_SyncTransmit 2655 ;SequenceState [sp,72] local 2656 ;Ret r8 local 2657 ;HWUnit r1 local 2658 ;SeqCfgPtr [sp,64] local 2659 ;JobNum [sp,70] local 2660 ;Job r2 local 2661 ;JobCfgPtr r3 local 2662 ;NumJobsInSequence [sp,42] local 2663 ;Job r2 local 2664 ;JobIndex r10 local 2665 ;ChannelID r2 local 2666 ;ChannelIndex r1 local 2667 ;ChannelNum r3 local 2668 ;Ret r4 local 2669 ;JobsCount [sp,40] local 2670 ;JobIndexList r9 local 2671 ;Job r1 local 2672 ;JobState [sp,52] local 2673 ;JobCfgPtr r6 local 2674 ;Ret r4 local 2675 ;ChannelID r1 local 2676 ;NumChannelsInJob fp local 2677 ;ExternalDeviceConfig r10 local 2678 ;IsFirstChannel r2 local 2679 ;IsLastChannel r3 local 2680 ;Ret r5 local 2681 2682 ;Sequence [sp,7] param 2683 2684 .section ".ghcalltbl","" 000000dc 00000000* 2685 .L26450: .data.w .L26449 2686 .endo .L26450 000000e0 00000000* 2687 .L26452: .data.w .L26451 2688 .endo .L26452 000000e4 00000000* 2689 .L26454: .data.w .L26453 2690 .endo .L26454 000000e8 00000000* 2691 .L26456: .data.w .L26455 2692 .endo .L26456 000000ec 00000000* 2693 .L26458: .data.w .L26457 2694 .endo .L26458 000000f0 00000000* 2695 .L26460: .data.w .L26459 2696 .endo .L26460 000000f4 00000000* 2697 .L26462: .data.w .L26461 2698 .endo .L26462 000000f8 00000000* 2699 .L26464: .data.w .L26463 2700 .endo .L26464 000000fc 00000000* 2701 .L26466: .data.w .L26465 2702 .endo .L26466 Page 46 objs\release\Spi.s 00000100 00000000* 2703 .L26468: .data.w .L26467 2704 .endo .L26468 00000104 00000000* 2705 .L26470: .data.w .L26469 2706 .endo .L26470 00000108 00000000* 2707 .L26472: .data.w .L26471 2708 .endo .L26472 0000010c 00000000* 2709 .L26474: .data.w .L26473 2710 .endo .L26474 00000110 00000000* 2711 .L26476: .data.w .L26475 2712 .endo .L26476 00000114 00000000* 2713 .L26478: .data.w .L26477 2714 .endo .L26478 00000118 00000000* 2715 .L26480: .data.w .L26479 2716 .endo .L26480 0000011c 00000000* 2717 .L26482: .data.w .L26481 2718 .endo .L26482 00000120 00000000* 2719 .L26484: .data.w .L26483 2720 .endo .L26484 00000124 00000000* 2721 .L26486: .data.w .L26485 2722 .endo .L26486 00000128 00000000* 2723 .L26488: .data.w .L26487 2724 .endo .L26488 0000012c 00000000* 2725 .L26490: .data.w .L26489 2726 .endo .L26490 00000130 00000000* 2727 .L26492: .data.w .L26491 2728 .endo .L26492 2729 .section ".ghrettbl","" 0000006c 00000000* 2730 .L26494: .data.w .L26493 2731 .endo .L26494 2732 .section ".mcal_code","ax" 2733 ..gh.f.f.1.a.1.e.16: 2734 .endo ..gh.f.f.1.a.1.e.16 2735 Spi_GetHWUnitStatus:: 000012d8 b530 2736 push {r4-r5,lr} 000012da 4605 2737 cpy r5,r0 000012dc 2400 2738 movs r4,0 000012de 4601 2739 cpy r1,r0 000012e0 220b 2740 movs r2,11 000012e2 4620 2741 cpy r0,r4 2742 .L26616: 2743 000012e4 f7fefee9* 2744 bl Spi_CheckHWUnit 000012e8 2801 2745 cmp r0,1 000012ea d008* 2746 beq .L26497 000012ec ebc500c5 2747 rsb r0,r5,r5 lsl 3 000012f0 f2400100* 2748 movw r1,%lo(Spi_HWUnitQueueArray) 000012f4 f2c00100* 2749 movt r1,%hi(Spi_HWUnitQueueArray) 000012f8 eb010080 2750 add r0,r1,r0 lsl 2 000012fc 6944 2751 ldr r4,[r0,20] 2752 .L26497: 000012fe 4620 2753 cpy r0,r4 2754 .L26618: 2755 00001300 bd30 2756 pop {r4-r5,pc} 2757 .endf Spi_GetHWUnitStatus 2758 ;Status r4 local 2759 2760 ;HWUnit r5 param 2761 2762 .section ".ghcalltbl","" 00000134 00000000* 2763 .L26617: .data.w .L26616 Page 47 objs\release\Spi.s 2764 .endo .L26617 2765 .section ".ghrettbl","" 00000070 00000000* 2766 .L26619: .data.w .L26618 2767 .endo .L26619 2768 .section ".mcal_code","ax" 2769 .assert 0x0 + (Spi_SequenceStateArray - Spi_ConfigPtr) +0 == 76 2770 .assert 0x0 + (Spi_ConfigPtr - Spi_ConfigPtr) +0 == 0 2771 ..gh.f.f.1.a.1.e.17: 2772 .endo ..gh.f.f.1.a.1.e.17 2773 Spi_Cancel:: 00001302 b510 2774 push {r4,lr} 00001304 f2400400* 2775 movw r4,%lo(Spi_ConfigPtr) 00001308 f2c00400* 2776 movt r4,%hi(Spi_ConfigPtr) 0000130c 6821 2777 ldr r1,[r4] 0000130e b931* 2778 cbnz r1,.L26626 00001310 231a 2779 movs r3,26 00001312 220c 2780 movs r2,12 00001314 2053 2781 movs r0,83 00001316 e8bd4010 2782 pop {r4,lr} 2783 .L26912: 2784 0000131a f000b800* 2785 b Det_ReportError 2786 .L26626: 0000131e 798a 2787 ldrb r2,[r1,6] 00001320 4290 2788 cmp r0,r2 00001322 d907* 2789 bls .L26628 00001324 230c 2790 movs r3,12 00001326 461a 2791 cpy r2,r3 00001328 2100 2792 movs r1,0 0000132a 2053 2793 movs r0,83 0000132c e8bd4010 2794 pop {r4,lr} 2795 .L26914: 2796 00001330 f000b800* 2797 b Det_ReportError 2798 .L26628: 00001334 694a 2799 ldr r2,[r1,20] 00001336 f8521020 2800 ldr.w r1,[r2,r0 lsl 2] 0000133a b109* 2801 cbz r1,.L26631 0000133c 6849 2802 ldr r1,[r1,4] 0000133e b139* 2803 cbz r1,.L26636 2804 .L26631: 00001340 230f 2805 movs r3,15 00001342 220c 2806 movs r2,12 00001344 2100 2807 movs r1,0 00001346 2053 2808 movs r0,83 00001348 e8bd4010 2809 pop {r4,lr} 2810 .L26916: 2811 0000134c f000b800* 2812 b Det_ReportError 2813 .L26636: 00001350 0100 2814 lsls r0,r0,4 00001352 f104014c 2815 add r1,r4,76 00001356 2203 2816 movs r2,3 00001358 5042 2817 str r2,[r0,r1] 2818 .L26918: 2819 0000135a bd10 2820 pop {r4,pc} 2821 .endf Spi_Cancel 2822 ;SeqCfgPtr r1 local 2823 2824 ;Sequence r0 param Page 48 objs\release\Spi.s 2825 2826 .section ".ghtailcalltbl","" 0000001c 00000000* 2827 .L26913: .data.w .L26912 2828 .endo .L26913 00000020 00000000* 2829 .L26915: .data.w .L26914 2830 .endo .L26915 00000024 00000000* 2831 .L26917: .data.w .L26916 2832 .endo .L26917 2833 .section ".ghrettbl","" 00000074 00000000* 2834 .L26919: .data.w .L26918 2835 .endo .L26919 2836 .section ".mcal_code","ax" 2837 .assert 0x0 + (Spi_ConfigPtr - Spi_ConfigPtr) +0 == 0 2838 .assert 0x0 + (Spi_HWUnitQueueArray - Spi_ConfigPtr) +0 == 20 2839 ..gh.f.f.1.a.1.e.18: 2840 .endo ..gh.f.f.1.a.1.e.18 2841 Spi_SetAsyncMode:: 0000135c b570 2842 push {r4-r6,lr} 0000135e 4606 2843 cpy r6,r0 00001360 f2400500* 2844 movw r5,%lo(Spi_ConfigPtr) 00001364 f2c00500* 2845 movt r5,%hi(Spi_ConfigPtr) 00001368 6828 2846 ldr r0,[r5] 0000136a 0001 2847 movs r1,r0 0000136c d106* 2848 bne .L28077 0000136e 2401 2849 movs r4,1 00001370 231a 2850 movs r3,26 00001372 220d 2851 movs r2,13 00001374 2053 2852 movs r0,83 2853 .L28668: 2854 00001376 f000f800* 2855 bl Det_ReportError 0000137a e030* 2856 b .L26920 2857 .L28077: 0000137c 69c2 2858 ldr r2,[r0,28] 0000137e 6811 2859 ldr r1,[r2] 00001380 2400 2860 movs r4,0 00001382 b139* 2861 cbz r1,.L28083 00001384 6888 2862 ldr r0,[r1,8] 00001386 b928* 2863 cbnz r0,.L28083 00001388 6aa8 2864 ldr r0,[r5,40] 0000138a 2802 2865 cmp r0,2 0000138c bf04 2866 itt eq 0000138e 6848 2867 ldr r0,[r1,4] 00001390 2800 2868 cmp r0,0 00001392 d008* 2869 beq .L26936 2870 .L28083: 00001394 6850 2871 ldr r0,[r2,4] 00001396 b140* 2872 cbz r0,.L26925 00001398 6883 2873 ldr r3,[r0,8] 0000139a b933* 2874 cbnz r3,.L26925 0000139c 6c6b 2875 ldr r3,[r5,68] 0000139e 2b02 2876 cmp r3,2 000013a0 bf04 2877 itt eq 000013a2 6840 2878 ldr r0,[r0,4] 000013a4 2800 2879 cmp r0,0 2880 .L26936: 000013a6 bf08 2881 it eq 000013a8 2401 2882 mov r4,1 2883 .L26925: 000013aa 2c01 2884 cmp r4,1 000013ac d017* 2885 beq .L26920 Page 49 objs\release\Spi.s 000013ae b151* 2886 cbz r1,.L28072 000013b0 6888 2887 ldr r0,[r1,8] 000013b2 b940* 2888 cbnz r0,.L28072 000013b4 6848 2889 ldr r0,[r1,4] 000013b6 b930* 2890 cbnz r0,.L28072 000013b8 0031 2891 movs r1,r6 000013ba bf18 2892 it ne 000013bc 2101 2893 mov r1,1 2894 .L28670: 2895 000013be f000f800* 2896 bl Spi_Drvw_SetAsyncMode 000013c2 6828 2897 ldr r0,[r5] 000013c4 69c2 2898 ldr r2,[r0,28] 2899 .L28072: 000013c6 6850 2900 ldr r0,[r2,4] 000013c8 b148* 2901 cbz r0,.L26920 000013ca 6881 2902 ldr r1,[r0,8] 000013cc b939* 2903 cbnz r1,.L26920 000013ce 6840 2904 ldr r0,[r0,4] 000013d0 b928* 2905 cbnz r0,.L26920 000013d2 0031 2906 movs r1,r6 000013d4 bf18 2907 it ne 000013d6 2101 2908 mov r1,1 000013d8 2001 2909 movs r0,1 2910 .L28672: 2911 000013da f000f800* 2912 bl Spi_Drvw_SetAsyncMode 2913 .L26920: 000013de 4620 2914 cpy r0,r4 2915 .L28674: 2916 000013e0 bd70 2917 pop {r4-r6,pc} 2918 .endf Spi_SetAsyncMode 2919 ;Ret r4 local 2920 ;Ret r4 local 2921 2922 ;Mode r6 param 2923 2924 .section ".ghcalltbl","" 00000138 00000000* 2925 .L28669: .data.w .L28668 2926 .endo .L28669 0000013c 00000000* 2927 .L28671: .data.w .L28670 2928 .endo .L28671 00000140 00000000* 2929 .L28673: .data.w .L28672 2930 .endo .L28673 2931 .section ".ghrettbl","" 00000078 00000000* 2932 .L28675: .data.w .L28674 2933 .endo .L28675 2934 .section ".mcal_code","ax" 2935 .assert 0x0 + (Spi_HWUnitQueueArray - Spi_ConfigPtr) +0 == 20 2936 .assert 0x0 + (Spi_ConfigPtr - Spi_ConfigPtr) +0 == 0 2937 ..gh.f.f.1.a.1.e.19: 2938 .endo ..gh.f.f.1.a.1.e.19 2939 Spi_SetHWUnitAsyncMode:: 000013e2 b570 2940 push {r4-r6,lr} 000013e4 4605 2941 cpy r5,r0 000013e6 460e 2942 cpy r6,r1 000013e8 4601 2943 cpy r1,r0 000013ea 2260 2944 movs r2,96 000013ec 2000 2945 movs r0,0 2946 .L28935: Page 50 objs\release\Spi.s 2947 000013ee f7fefe64* 2948 bl Spi_CheckHWUnit 000013f2 4604 2949 cpy r4,r0 000013f4 2801 2950 cmp r0,1 000013f6 d025* 2951 beq .L28678 000013f8 f2400000* 2952 movw r0,%lo(Spi_ConfigPtr) 000013fc f2c00000* 2953 movt r0,%hi(Spi_ConfigPtr) 00001400 6801 2954 ldr r1,[r0] 00001402 69ca 2955 ldr r2,[r1,28] 00001404 f8521025 2956 ldr.w r1,[r2,r5 lsl 2] 00001408 6849 2957 ldr r1,[r1,4] 0000140a b141* 2958 cbz r1,.L28680 0000140c 2401 2959 movs r4,1 0000140e 231a 2960 movs r3,26 00001410 2260 2961 movs r2,96 00001412 2100 2962 movs r1,0 00001414 2053 2963 movs r0,83 2964 .L28937: 2965 00001416 f000f800* 2966 bl Det_ReportError 0000141a 4620 2967 cpy r0,r4 2968 .L28939: 2969 0000141c bd70 2970 pop {r4-r6,pc} 2971 .L28680: 0000141e ebc501c5 2972 rsb r1,r5,r5 lsl 3 00001422 eb000081 2973 add r0,r0,r1 lsl 2 00001426 6a80 2974 ldr r0,[r0,40] 00001428 2802 2975 cmp r0,2 0000142a bf04 2976 itt eq 0000142c 2001 2977 mov r0,1 2978 .L28941: 2979 0000142e bd70 2980 pop {r4-r6,pc} 00001430 4628 2981 cpy r0,r5 00001432 0031 2982 movs r1,r6 00001434 d103* 2983 bne .L28686 2984 .L28943: 2985 00001436 f000f800* 2986 bl Spi_Drvw_SetAsyncMode 0000143a 4620 2987 cpy r0,r4 2988 .L28945: 2989 0000143c bd70 2990 pop {r4-r6,pc} 2991 .L28686: 0000143e 2101 2992 movs r1,1 2993 .L28947: 2994 00001440 f000f800* 2995 bl Spi_Drvw_SetAsyncMode 2996 .L28678: 00001444 4620 2997 cpy r0,r4 2998 .L28949: 2999 00001446 bd70 3000 pop {r4-r6,pc} 3001 .endf Spi_SetHWUnitAsyncMode 3002 ;Ret r4 local 3003 3004 ;HWUnit r5 param 3005 ;Mode r6 param 3006 3007 .section ".ghcalltbl","" Page 51 objs\release\Spi.s 00000144 00000000* 3008 .L28936: .data.w .L28935 3009 .endo .L28936 00000148 00000000* 3010 .L28938: .data.w .L28937 3011 .endo .L28938 3012 .section ".ghrettbl","" 0000007c 00000000* 3013 .L28940: .data.w .L28939 3014 .endo .L28940 00000080 00000000* 3015 .L28942: .data.w .L28941 3016 .endo .L28942 3017 .section ".ghcalltbl","" 0000014c 00000000* 3018 .L28944: .data.w .L28943 3019 .endo .L28944 3020 .section ".ghrettbl","" 00000084 00000000* 3021 .L28946: .data.w .L28945 3022 .endo .L28946 3023 .section ".ghcalltbl","" 00000150 00000000* 3024 .L28948: .data.w .L28947 3025 .endo .L28948 3026 .section ".ghrettbl","" 00000088 00000000* 3027 .L28950: .data.w .L28949 3028 .endo .L28950 3029 .section ".mcal_code","ax" 3030 .assert 0x0 + (Spi_HWUnitQueueArray - Spi_ConfigPtr) +0 == 20 3031 .assert 0x0 + (Spi_ConfigPtr - Spi_ConfigPtr) +0 == 0 3032 ..gh.f.f.1.a.1.e.20: 3033 .endo ..gh.f.f.1.a.1.e.20 3034 Spi_MainFunction_Handling:: 00001448 b510 3035 push {r4,lr} 0000144a f2400400* 3036 movw r4,%lo(Spi_ConfigPtr) 0000144e f2c00400* 3037 movt r4,%hi(Spi_ConfigPtr) 00001452 6820 3038 ldr r0,[r4] 00001454 2800 3039 cmp r0,0 00001456 bf08 3040 it eq 3041 .L29574: 3042 00001458 bd10 3043 pop {r4,pc} 0000145a 69c0 3044 ldr r0,[r0,28] 0000145c 6801 3045 ldr r1,[r0] 0000145e b149* 3046 cbz r1,.L29322 00001460 6889 3047 ldr r1,[r1,8] 00001462 b939* 3048 cbnz r1,.L29322 00001464 6aa1 3049 ldr r1,[r4,40] 00001466 2902 3050 cmp r1,2 00001468 d104* 3051 bne .L29322 0000146a 2000 3052 movs r0,0 3053 .L29576: 3054 0000146c f000f800* 3055 bl Spi_Drvw_PollAsyncTransmit 00001470 6820 3056 ldr r0,[r4] 00001472 69c0 3057 ldr r0,[r0,28] 3058 .L29322: 00001474 6840 3059 ldr r0,[r0,4] 00001476 2800 3060 cmp r0,0 00001478 bf08 3061 it eq 3062 .L29578: 3063 0000147a bd10 3064 pop {r4,pc} 0000147c 6880 3065 ldr r0,[r0,8] 0000147e 2800 3066 cmp r0,0 00001480 bf18 3067 it ne 3068 .L29580: Page 52 objs\release\Spi.s 3069 00001482 bd10 3070 pop {r4,pc} 00001484 6c60 3071 ldr r0,[r4,68] 00001486 2802 3072 cmp r0,2 00001488 bf18 3073 it ne 3074 .L29582: 3075 0000148a bd10 3076 pop {r4,pc} 0000148c 2001 3077 movs r0,1 0000148e e8bd4010 3078 pop {r4,lr} 3079 .L29584: 3080 00001492 f000b800* 3081 b Spi_Drvw_PollAsyncTransmit 3082 .endf Spi_MainFunction_Handling 3083 3084 .section ".ghrettbl","" 0000008c 00000000* 3085 .L29575: .data.w .L29574 3086 .endo .L29575 3087 .section ".ghcalltbl","" 00000154 00000000* 3088 .L29577: .data.w .L29576 3089 .endo .L29577 3090 .section ".ghrettbl","" 00000090 00000000* 3091 .L29579: .data.w .L29578 3092 .endo .L29579 00000094 00000000* 3093 .L29581: .data.w .L29580 3094 .endo .L29581 00000098 00000000* 3095 .L29583: .data.w .L29582 3096 .endo .L29583 3097 .section ".ghtailcalltbl","" 00000028 00000000* 3098 .L29585: .data.w .L29584 3099 .endo .L29585 3100 .section ".mcal_code","ax" 3101 .assert 0x0 + (Spi_ConfigPtr - Spi_ConfigPtr) +0 == 0 3102 .assert 0x0 + (Spi_HWUnitQueueArray - Spi_ConfigPtr) +0 == 20 3103 ..gh.f.f.1.a.1.e.21: 3104 .endo ..gh.f.f.1.a.1.e.21 3105 Spi_ChannelEndCallback:: 00001496 e92d4ff0 3106 push {r4-fp,lr} 0000149a f2400600* 3107 movw r6,%lo(Spi_ConfigPtr) 0000149e f2c00600* 3108 movt r6,%hi(Spi_ConfigPtr) 000014a2 6837 3109 ldr r7,[r6] 000014a4 b084 3110 sub sp,sp,16 000014a6 f1060a14 3111 add r10,r6,20 000014aa ebc000c0 3112 rsb r0,r0,r0 lsl 3 000014ae eb0a0280 3113 add r2,r10,r0 lsl 2 000014b2 8b50 3114 ldrh r0,[r2,26] 000014b4 693b 3115 ldr r3,[r7,16] 000014b6 2901 3116 cmp r1,1 000014b8 f853b020 3117 ldr.w fp,[r3,r0 lsl 2] 000014bc d011* 3118 beq .L29590 000014be 2502 3119 movs r5,2 000014c0 f89b201c 3120 ldrb r2,[fp,28] 000014c4 f8db7018 3121 ldr.w r7,[fp,24] 000014c8 f88d2007 3122 strb r2,[sp,7] 000014cc ebc200c2 3123 rsb r0,r2,r2 lsl 3 000014d0 eb0a0480 3124 add r4,r10,r0 lsl 2 3125 .L32384: 3126 000014d4 f000f800* 3127 bl SchM_Enter_Spi_UpdateJobState 000014d8 6838 3128 ldr r0,[r7] 000014da bb78* 3129 cbnz r0,.L29601 Page 53 objs\release\Spi.s 3130 .L29640: 3131 .L32386: 3132 000014dc f000f800* 3133 bl SchM_Exit_Spi_UpdateJobState 000014e0 e199* 3134 b .L29586 3135 .L29590: 000014e2 7e11 3136 ldrb r1,[r2,24] 000014e4 f89b3000 3137 ldrb r3,[fp] 000014e8 2500 3138 movs r5,0 000014ea 1c48 3139 adds r0,r1,1 000014ec 4298 3140 cmp r0,r3 000014ee d216* 3141 bhs .L29600 000014f0 7610 3142 strb r0,[r2,24] 000014f2 fa5ffc80 3143 uxtb r12,r0 000014f6 9500 3144 str r5,[sp] 000014f8 1e58 3145 subs r0,r3,1 000014fa 4584 3146 cmp r12,r0 000014fc f8db0020 3147 ldr.w r0,[fp,32] 00001500 6801 3148 ldr r1,[r0] 00001502 f8db0004 3149 ldr.w r0,[fp,4] 00001506 462a 3150 cpy r2,r5 00001508 68fd 3151 ldr r5,[r7,12] 0000150a f810000c 3152 ldrb r0,[r0,r12] 0000150e bf0c 3153 ite eq 00001510 2301 3154 mov r3,1 00001512 2300 3155 mov r3,0 00001514 f8550020 3156 ldr.w r0,[r5,r0 lsl 2] 3157 .L32388: 3158 00001518 f000f800* 3159 bl Spi_Drvw_TransmitChannel 0000151c e17b* 3160 b .L29586 3161 .L29600: 0000151e f89b201c 3162 ldrb r2,[fp,28] 00001522 f8db7018 3163 ldr.w r7,[fp,24] 00001526 f88d2007 3164 strb r2,[sp,7] 0000152a ebc200c2 3165 rsb r0,r2,r2 lsl 3 0000152e eb0a0480 3166 add r4,r10,r0 lsl 2 3167 .L32390: 3168 00001532 f000f800* 3169 bl SchM_Enter_Spi_UpdateJobState 00001536 6838 3170 ldr r0,[r7] 00001538 2800 3171 cmp r0,0 0000153a d0cf* 3172 beq .L29640 3173 .L29601: 0000153c 687a 3174 ldr r2,[r7,4] 0000153e 2a00 3175 cmp r2,0 00001540 d0cc* 3176 beq .L29640 00001542 603d 3177 str r5,[r7] 00001544 2000 3178 movs r0,0 00001546 f8db9014 3179 ldr.w r9,[fp,20] 0000154a f8d28004 3180 ldr.w r8,[r2,4] 0000154e 6078 3181 str r0,[r7,4] 00001550 4615 3182 cpy r5,r2 3183 .L32392: 3184 00001552 f000f800* 3185 bl SchM_Exit_Spi_UpdateJobState 00001556 f8db0008 3186 ldr.w r0,[fp,8] 0000155a 2800 3187 cmp r0,0 0000155c bf18 3188 it ne 3189 .L32394: 3190 Page 54 objs\release\Spi.s 0000155e 4780 3191 blx r0 00001560 6828 3192 ldr r0,[r5] 00001562 f2400b00* 3193 movw fp,%lo(Spi_JobStateArray) 00001566 f2c00b00* 3194 movt fp,%hi(Spi_JobStateArray) 0000156a 2803 3195 cmp r0,3 0000156c d014* 3196 beq .L30161 0000156e 6839 3197 ldr r1,[r7] 00001570 2902 3198 cmp r1,2 00001572 d10f* 3199 bne .L29608 00001574 6029 3200 str r1,[r5] 00001576 f8b80000 3201 ldrh r0,[r8] 0000157a 89a9 3202 ldrh r1,[r5,12] 0000157c 1a41 3203 subs r1,r0,r1 0000157e b289 3204 uxth r1,r1 00001580 eba00c01 3205 sub r12,r0,r1 00001584 4281 3206 cmp r1,r0 00001586 bf28 3207 it hs 00001588 f04f0c00 3208 mov r12,0 0000158c ea5f07dc 3209 lsrs r7,r12,3 00001590 d064* 3210 beq .L30160 00001592 e00f* 3211 b .L30267 3212 .L29608: 00001594 2802 3213 cmp r0,2 00001596 d177* 3214 bne .L29615 3215 .L30161: 00001598 f8b80000 3216 ldrh r0,[r8] 0000159c 89a9 3217 ldrh r1,[r5,12] 0000159e 1a41 3218 subs r1,r0,r1 000015a0 b289 3219 uxth r1,r1 000015a2 eba00c01 3220 sub r12,r0,r1 000015a6 4281 3221 cmp r1,r0 000015a8 bf28 3222 it hs 000015aa f04f0c00 3223 mov r12,0 000015ae ea5f07dc 3224 lsrs r7,r12,3 000015b2 d053* 3225 beq .L30160 3226 .L30267: 000015b4 2600 3227 movs r6,0 000015b6 040d 3228 lsls r5,r1,16 000015b8 f8d82008 3229 ldr.w r2,[r8,8] 3230 .L30166: 000015bc 0c2b 3231 lsrs r3,r5,16 000015be 0058 3232 lsls r0,r3,1 000015c0 f1030e01 3233 add lr,r3,1 000015c4 ea4f0e4e 3234 lsl lr,lr,1 000015c8 1c99 3235 adds r1,r3,2 000015ca 0049 3236 lsls r1,r1,1 000015cc f830a002 3237 ldrh r10,[r0,r2] 000015d0 f83ee002 3238 ldrh lr,[lr,r2] 000015d4 5a89 3239 ldrh r1,[r1,r2] 000015d6 ebca0a8a 3240 rsb r10,r10,r10 lsl 2 000015da ebce0e8e 3241 rsb lr,lr,lr lsl 2 000015de ebc10181 3242 rsb r1,r1,r1 lsl 2 000015e2 eb0b0a8a 3243 add r10,fp,r10 lsl 2 000015e6 f8ca6004 3244 str r6,[r10,4] 000015ea eb0b0a81 3245 add r10,fp,r1 lsl 2 000015ee 1cd9 3246 adds r1,r3,3 000015f0 0049 3247 lsls r1,r1,1 000015f2 5a89 3248 ldrh r1,[r1,r2] 000015f4 eb0b0e8e 3249 add lr,fp,lr lsl 2 000015f8 f8ce6004 3250 str r6,[lr,4] 000015fc ebc10181 3251 rsb r1,r1,r1 lsl 2 Page 55 objs\release\Spi.s 00001600 eb0b0e81 3252 add lr,fp,r1 lsl 2 00001604 1d19 3253 adds r1,r3,4 00001606 0049 3254 lsls r1,r1,1 00001608 5a89 3255 ldrh r1,[r1,r2] 0000160a f8ca6004 3256 str r6,[r10,4] 0000160e ebc10181 3257 rsb r1,r1,r1 lsl 2 00001612 eb0b0a81 3258 add r10,fp,r1 lsl 2 00001616 1d59 3259 adds r1,r3,5 00001618 0049 3260 lsls r1,r1,1 0000161a 5a89 3261 ldrh r1,[r1,r2] 0000161c f5052500 3262 add r5,r5,1<<19 00001620 f8ce6004 3263 str r6,[lr,4] 00001624 ebc10181 3264 rsb r1,r1,r1 lsl 2 00001628 eb0b0e81 3265 add lr,fp,r1 lsl 2 0000162c 1d99 3266 adds r1,r3,6 0000162e 0049 3267 lsls r1,r1,1 00001630 1ddb 3268 adds r3,r3,7 00001632 005b 3269 lsls r3,r3,1 00001634 1e7f 3270 subs r7,r7,1 00001636 5a89 3271 ldrh r1,[r1,r2] 00001638 5a9b 3272 ldrh r3,[r3,r2] 0000163a f8ca6004 3273 str r6,[r10,4] 0000163e ebc10181 3274 rsb r1,r1,r1 lsl 2 00001642 ebc30383 3275 rsb r3,r3,r3 lsl 2 00001646 eb0b0083 3276 add r0,fp,r3 lsl 2 0000164a f8ce6004 3277 str r6,[lr,4] 0000164e eb0b0a81 3278 add r10,fp,r1 lsl 2 00001652 f8ca6004 3279 str r6,[r10,4] 00001656 6046 3280 str r6,[r0,4] 00001658 d1b0* 3281 bne .L30166 0000165a 0c29 3282 lsrs r1,r5,16 3283 .L30160: 0000165c f01c0007 3284 ands r0,r12,7 00001660 d00c* 3285 beq .L29612 00001662 f8d82008 3286 ldr.w r2,[r8,8] 00001666 eb020241 3287 add r2,r2,r1 lsl 1 3288 .L30163: 0000166a f8321b02 3289 ldrh r1,[r2],2 0000166e 1e40 3290 subs r0,r0,1 00001670 ebc10181 3291 rsb r1,r1,r1 lsl 2 00001674 eb0b0181 3292 add r1,fp,r1 lsl 2 00001678 604f 3293 str r7,[r1,4] 0000167a d1f6* 3294 bne .L30163 3295 .L29612: 0000167c f8d8000c 3296 ldr.w r0,[r8,12] 00001680 2800 3297 cmp r0,0 00001682 f04080c2* 3298 bne .L29638 00001686 e0c2* 3299 b .L29639 3300 .L29615: 00001688 89a9 3301 ldrh r1,[r5,12] 0000168a 2900 3302 cmp r1,0 0000168c f00080b9* 3303 beq .L29637 00001690 68a8 3304 ldr r0,[r5,8] 00001692 1c80 3305 adds r0,r0,2 00001694 8807 3306 ldrh r7,[r0] 00001696 60a8 3307 str r0,[r5,8] 00001698 1e48 3308 subs r0,r1,1 0000169a 81a8 3309 strh r0,[r5,12] 0000169c 6830 3310 ldr r0,[r6] 0000169e 6901 3311 ldr r1,[r0,16] 000016a0 f8515027 3312 ldr.w r5,[r1,r7 lsl 2] Page 56 objs\release\Spi.s 000016a4 f89d2007 3313 ldrb r2,[sp,7] 000016a8 7f29 3314 ldrb r1,[r5,28] 000016aa 428a 3315 cmp r2,r1 000016ac d04e* 3316 beq .L29626 000016ae ebc101c1 3317 rsb r1,r1,r1 lsl 3 000016b2 eb0a0681 3318 add r6,r10,r1 lsl 2 3319 .L32396: 3320 000016b6 f000f800* 3321 bl SchM_Enter_Spi_UpdateAsyncHWUnitQueue 000016ba 6970 3322 ldr r0,[r6,20] 000016bc 2801 3323 cmp r0,1 000016be d031* 3324 beq .L29624 000016c0 f9950010 3325 ldrsb r0,[r5,16] 000016c4 eb060240 3326 add r2,r6,r0 lsl 1 000016c8 f8321f08 3327 ldrh r1,[r2,8]! 000016cc f64f73ff 3328 mov r3,0xffff 000016d0 4299 3329 cmp r1,r3 000016d2 d10e* 3330 bne .L29620 000016d4 0041 3331 lsls r1,r0,1 000016d6 538f 3332 strh r7,[r1,r6] 000016d8 8017 3333 strh r7,[r2] 000016da ebc70287 3334 rsb r2,r7,r7 lsl 2 000016de eb0b0182 3335 add r1,fp,r2 lsl 2 000016e2 f04f32ff 3336 mov r2,-1 000016e6 810a 3337 strh r2,[r1,8] 000016e8 f9961010 3338 ldrsb r1,[r6,16] 000016ec 4281 3339 cmp r1,r0 000016ee da61* 3340 bge .L29633 000016f0 e010* 3341 b .L29622 3342 .L29620: 000016f2 ebc10181 3343 rsb r1,r1,r1 lsl 2 000016f6 eb0b0181 3344 add r1,fp,r1 lsl 2 000016fa 810f 3345 strh r7,[r1,8] 000016fc 8017 3346 strh r7,[r2] 000016fe ebc70287 3347 rsb r2,r7,r7 lsl 2 00001702 eb0b0182 3348 add r1,fp,r2 lsl 2 00001706 f04f32ff 3349 mov r2,-1 0000170a 810a 3350 strh r2,[r1,8] 0000170c f9961010 3351 ldrsb r1,[r6,16] 00001710 4281 3352 cmp r1,r0 00001712 da4f* 3353 bge .L29633 3354 .L29622: 00001714 7430 3355 strb r0,[r6,16] 3356 .L32398: 3357 00001716 f000f800* 3358 bl SchM_Exit_Spi_UpdateAsyncHWUnitQueue 0000171a 4649 3359 mov r1,r9 0000171c 4620 3360 cpy r0,r4 3361 .L32400: 3362 0000171e f7fefcf5* 3363 bl Spi_StartNextJob 00001722 e078* 3364 b .L29586 3365 .L29624: 00001724 2002 3366 movs r0,2 00001726 6170 3367 str r0,[r6,20] 00001728 2101 3368 movs r1,1 0000172a 8377 3369 strh r7,[r6,26] 0000172c ebc70087 3370 rsb r0,r7,r7 lsl 2 00001730 f84b1020 3371 str r1,[fp,r0 lsl 2] 00001734 2000 3372 movs r0,0 00001736 7630 3373 strb r0,[r6,24] Page 57 objs\release\Spi.s 3374 .L32402: 3375 00001738 f000f800* 3376 bl SchM_Exit_Spi_UpdateAsyncHWUnitQueue 0000173c 4628 3377 cpy r0,r5 3378 .L32404: 3379 0000173e f7fefd6c* 3380 bl Spi_TransferAsyncJob 00001742 4649 3381 mov r1,r9 00001744 4620 3382 cpy r0,r4 3383 .L32406: 3384 00001746 f7fefce1* 3385 bl Spi_StartNextJob 0000174a e064* 3386 b .L29586 3387 .L29626: 0000174c f8980010 3388 ldrb r0,[r8,16] 00001750 2801 3389 cmp r0,1 00001752 d14a* 3390 bne .L29636 3391 .L32408: 3392 00001754 f000f800* 3393 bl SchM_Enter_Spi_UpdateAsyncHWUnitQueue 00001758 6960 3394 ldr r0,[r4,20] 0000175a 2801 3395 cmp r0,1 0000175c d031* 3396 beq .L29634 0000175e f9950010 3397 ldrsb r0,[r5,16] 00001762 eb040240 3398 add r2,r4,r0 lsl 1 00001766 f8321f08 3399 ldrh r1,[r2,8]! 0000176a f64f73ff 3400 mov r3,0xffff 0000176e 4299 3401 cmp r1,r3 00001770 d10e* 3402 bne .L29630 00001772 0041 3403 lsls r1,r0,1 00001774 530f 3404 strh r7,[r1,r4] 00001776 8017 3405 strh r7,[r2] 00001778 ebc70287 3406 rsb r2,r7,r7 lsl 2 0000177c eb0b0182 3407 add r1,fp,r2 lsl 2 00001780 f04f32ff 3408 mov r2,-1 00001784 810a 3409 strh r2,[r1,8] 00001786 f9941010 3410 ldrsb r1,[r4,16] 0000178a 4281 3411 cmp r1,r0 0000178c da12* 3412 bge .L29633 0000178e e010* 3413 b .L29632 3414 .L29630: 00001790 ebc10181 3415 rsb r1,r1,r1 lsl 2 00001794 eb0b0181 3416 add r1,fp,r1 lsl 2 00001798 810f 3417 strh r7,[r1,8] 0000179a 8017 3418 strh r7,[r2] 0000179c ebc70287 3419 rsb r2,r7,r7 lsl 2 000017a0 eb0b0182 3420 add r1,fp,r2 lsl 2 000017a4 f04f32ff 3421 mov r2,-1 000017a8 810a 3422 strh r2,[r1,8] 000017aa f9941010 3423 ldrsb r1,[r4,16] 000017ae 4281 3424 cmp r1,r0 000017b0 da00* 3425 bge .L29633 3426 .L29632: 000017b2 7420 3427 strb r0,[r4,16] 3428 .L29633: 3429 .L32410: 3430 000017b4 f000f800* 3431 bl SchM_Exit_Spi_UpdateAsyncHWUnitQueue 000017b8 4649 3432 mov r1,r9 000017ba 4620 3433 cpy r0,r4 3434 .L32412: Page 58 objs\release\Spi.s 3435 000017bc f7fefca6* 3436 bl Spi_StartNextJob 000017c0 e029* 3437 b .L29586 3438 .L29634: 000017c2 2002 3439 movs r0,2 000017c4 6160 3440 str r0,[r4,20] 000017c6 2101 3441 movs r1,1 000017c8 8367 3442 strh r7,[r4,26] 000017ca ebc70087 3443 rsb r0,r7,r7 lsl 2 000017ce f84b1020 3444 str r1,[fp,r0 lsl 2] 000017d2 2000 3445 movs r0,0 000017d4 7620 3446 strb r0,[r4,24] 3447 .L32414: 3448 000017d6 f000f800* 3449 bl SchM_Exit_Spi_UpdateAsyncHWUnitQueue 000017da 4628 3450 cpy r0,r5 3451 .L32416: 3452 000017dc f7fefd1d* 3453 bl Spi_TransferAsyncJob 000017e0 4649 3454 mov r1,r9 000017e2 4620 3455 cpy r0,r4 3456 .L32418: 3457 000017e4 f7fefc92* 3458 bl Spi_StartNextJob 000017e8 e015* 3459 b .L29586 3460 .L29636: 000017ea ebc70087 3461 rsb r0,r7,r7 lsl 2 000017ee 2101 3462 movs r1,1 000017f0 8367 3463 strh r7,[r4,26] 000017f2 f84b1020 3464 str r1,[fp,r0 lsl 2] 000017f6 2000 3465 movs r0,0 000017f8 7620 3466 strb r0,[r4,24] 000017fa 4628 3467 cpy r0,r5 3468 .L32420: 3469 000017fc f7fefd0d* 3470 bl Spi_TransferAsyncJob 00001800 e009* 3471 b .L29586 3472 .L29637: 00001802 6029 3473 str r1,[r5] 00001804 f8d8000c 3474 ldr.w r0,[r8,12] 00001808 2800 3475 cmp r0,0 3476 .L29638: 0000180a bf18 3477 it ne 3478 .L32422: 3479 0000180c 4780 3480 blx r0 3481 .L29639: 0000180e 4649 3482 mov r1,r9 00001810 4620 3483 cpy r0,r4 3484 .L32424: 3485 00001812 f7fefc7b* 3486 bl Spi_StartNextJob 3487 .L29586: 00001816 b004 3488 add sp,sp,16 3489 .L32426: 3490 00001818 e8bd8ff0 3491 pop {r4-fp,pc} 3492 .endf Spi_ChannelEndCallback 3493 ;ChannelIndex r4 local 3494 ;NumberOfChannels r3 local 3495 ;IsLastChannel r3 local Page 59 objs\release\Spi.s 3496 ;JobCfg fp local 3497 ;JobResult r5 local 3498 ;HWUnit [sp,7] local 3499 ;HWUnitQueue r4 local 3500 ;JobState r7 local 3501 ;SequenceState r5 local 3502 ;SeqCfgPtr r8 local 3503 ;CurrentJobCfg r5 local 3504 ;JobId r7 local 3505 ;CoreId r9 local 3506 ;TotalJobs r0 local 3507 ;Index r1 local 3508 ;HWUnitQueue r6 local 3509 ;Priority r0 local 3510 ;JobListTail r2 local 3511 ;Priority r0 local 3512 ;JobListTail r2 local 3513 3514 ;HwUnit r0 param 3515 ;JobResultOK r1 param 3516 3517 .section ".ghcalltbl","" 00000158 00000000* 3518 .L32385: .data.w .L32384 3519 .endo .L32385 0000015c 00000000* 3520 .L32387: .data.w .L32386 3521 .endo .L32387 00000160 00000000* 3522 .L32389: .data.w .L32388 3523 .endo .L32389 00000164 00000000* 3524 .L32391: .data.w .L32390 3525 .endo .L32391 00000168 00000000* 3526 .L32393: .data.w .L32392 3527 .endo .L32393 0000016c 00000000* 3528 .L32395: .data.w .L32394 3529 .endo .L32395 00000170 00000000* 3530 .L32397: .data.w .L32396 3531 .endo .L32397 00000174 00000000* 3532 .L32399: .data.w .L32398 3533 .endo .L32399 00000178 00000000* 3534 .L32401: .data.w .L32400 3535 .endo .L32401 0000017c 00000000* 3536 .L32403: .data.w .L32402 3537 .endo .L32403 00000180 00000000* 3538 .L32405: .data.w .L32404 3539 .endo .L32405 00000184 00000000* 3540 .L32407: .data.w .L32406 3541 .endo .L32407 00000188 00000000* 3542 .L32409: .data.w .L32408 3543 .endo .L32409 0000018c 00000000* 3544 .L32411: .data.w .L32410 3545 .endo .L32411 00000190 00000000* 3546 .L32413: .data.w .L32412 3547 .endo .L32413 00000194 00000000* 3548 .L32415: .data.w .L32414 3549 .endo .L32415 00000198 00000000* 3550 .L32417: .data.w .L32416 3551 .endo .L32417 0000019c 00000000* 3552 .L32419: .data.w .L32418 3553 .endo .L32419 000001a0 00000000* 3554 .L32421: .data.w .L32420 3555 .endo .L32421 000001a4 00000000* 3556 .L32423: .data.w .L32422 Page 60 objs\release\Spi.s 3557 .endo .L32423 000001a8 00000000* 3558 .L32425: .data.w .L32424 3559 .endo .L32425 3560 .section ".ghrettbl","" 0000009c 00000000* 3561 .L32427: .data.w .L32426 3562 .endo .L32427 3563 .section ".mcal_code","ax" 3564 ;Spi_ConfigPtr Spi_ConfigPtr static 3565 ;Spi_SequenceStateArray Spi_SequenceStateArray static 3566 ;Spi_HWUnitQueueArray Spi_HWUnitQueueArray static 3567 ;Spi_SeqUsedHWUnits Spi_SeqUsedHWUnits static 3568 ;Spi_SyncHWUnitsBusyStatus Spi_SyncHWUnitsBusyStatus static 3569 3570 .section ".mcal_bss","awb" 00000094 00000000 3571 Spi_JobStateArray:: .space 48 00000098 00000000 0000009c 00000000 000000a0 00000000 000000a4 00000000 000000a8 00000000 000000ac 00000000 000000b0 00000000 000000b4 00000000 000000b8 00000000 000000bc 00000000 000000c0 00000000 3572 .endo Spi_JobStateArray 000000c4 00000000 3573 Spi_ChannelStateArray:: .space 16 000000c8 00000000 000000cc 00000000 000000d0 00000000 3574 .endo Spi_ChannelStateArray 3575 .ghsnote info, 27, 3, 640 3576 .section ".mcal_code","ax"