Page 1 objs\release\Can.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=Can.c -o objs\release\Can.o -list=objs\release\Can.lst objs\release\Can.s Original File: objs\release\Can.s Source File: Can.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\Can_ZX_K14xM\Src\Can.c -o objs\release\Can.o 45 ;Source File: ..\..\..\MCAL\Can_ZX_K14xM\Src\Can.c 46 ;Directory: 47 ; D:\AUTOMFL\AutoSAR\ZHIXIN\MCAL_Capri(1.2.0)\Project\Capri\MultiProject 48 ;Compile Date: Mon Dec 18 00:01:45 2023 49 ;Host OS: Win64 50 ;Version: C-ARM 2021.1.4 RELEASE VERSION Page 2 objs\release\Can.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 Can_CheckInitialized: 00000000 b510 61 push {r4,lr} 00000002 f2400200* 62 movw r2,%lo(Can_DriverStatus) 00000006 f2c00200* 63 movt r2,%hi(Can_DriverStatus) 0000000a 6811 64 ldr r1,[r2] 0000000c 000c 65 movs r4,r1 0000000e bf1c 66 itt ne 00000010 2001 67 mov r0,1 68 .L2138: 69 00000012 bd10 70 pop {r4,pc} 00000014 4602 71 cpy r2,r0 00000016 2305 72 movs r3,5 00000018 205c 73 movs r0,92 74 .L2140: 75 0000001a f000f800* 76 bl Det_ReportError 0000001e 4620 77 cpy r0,r4 78 .L2142: 79 00000020 bd10 80 pop {r4,pc} 81 .endf Can_CheckInitialized 82 ;CheckStatus r4 local 83 84 ;ServiceId r0 param 85 86 .section ".mcal_bss","awb" 87 .align 4 00000000 00000000 88 Can_DriverStatus: .space 4 89 .endo Can_DriverStatus 90 .section ".ghrettbl","" 91 .align 4 00000000 00000000* 92 .L2139: .data.w .L2138 93 .endo .L2139 94 .section ".ghcalltbl","" 95 .align 4 00000000 00000000* 96 .L2141: .data.w .L2140 97 .endo .L2141 98 .section ".ghrettbl","" 00000004 00000000* 99 .L2143: .data.w .L2142 100 .endo .L2143 101 .section ".mcal_code","ax" 102 ..gh.f.f.1.a.1.e.1: 103 .endo ..gh.f.f.1.a.1.e.1 104 Can_CheckController: 00000022 b500 105 push {lr} 00000024 f2400c00* 106 movw r12,%lo(Can_ConfigPtr) 00000028 f2c00c00* 107 movt r12,%hi(Can_ConfigPtr) 0000002c f8dc3000 108 ldr.w r3,[r12] 00000030 689b 109 ldr r3,[r3,8] 00000032 4299 110 cmp r1,r3 00000034 bf3c 111 itt lo Page 3 objs\release\Can.s 00000036 2001 112 mov r0,1 113 .L2266: 114 00000038 bd00 115 pop {pc} 0000003a 4602 116 cpy r2,r0 0000003c 2304 117 movs r3,4 0000003e 2100 118 movs r1,0 00000040 205c 119 movs r0,92 120 .L2268: 121 00000042 f000f800* 122 bl Det_ReportError 00000046 2000 123 movs r0,0 124 .L2270: 125 00000048 bd00 126 pop {pc} 127 .endf Can_CheckController 128 ;CheckStatus r0 local 129 130 ;ServiceId r2 param 131 ;Controller r1 param 132 133 .section ".mcal_bss","awb" 00000004 00000000 134 Can_ConfigPtr: .space 4 135 .endo Can_ConfigPtr 136 .section ".ghrettbl","" 00000008 00000000* 137 .L2267: .data.w .L2266 138 .endo .L2267 139 .section ".ghcalltbl","" 00000004 00000000* 140 .L2269: .data.w .L2268 141 .endo .L2269 142 .section ".ghrettbl","" 0000000c 00000000* 143 .L2271: .data.w .L2270 144 .endo .L2271 145 .section ".mcal_code","ax" 146 ..gh.f.f.1.a.1.e.2: 147 .endo ..gh.f.f.1.a.1.e.2 148 Can_CheckGetControllerErrorCounter: 0000004a 4602 149 cpy r2,r0 0000004c 2001 150 movs r0,1 0000004e 2900 151 cmp r1,0 00000050 bf18 152 it ne 153 .L2402: 154 00000052 4770 155 ret 00000054 b500 156 push {lr} 00000056 4603 157 cpy r3,r0 00000058 205c 158 movs r0,92 159 .L2404: 160 0000005a f000f800* 161 bl Det_ReportError 0000005e 2000 162 movs r0,0 00000060 f85deb04 163 ldr.w lr,[sp],4 164 .L2406: 165 00000064 4770 166 ret 167 .endf Can_CheckGetControllerErrorCounter 168 ;CheckStatus r0 local 169 170 ;ServiceId r2 param 171 ;ErrorCounterPtr r1 param 172 Page 4 objs\release\Can.s 173 .section ".bss","awb" 174 .L2359: 175 .endo .L2359 176 .section ".ghrettbl","" 00000010 00000000* 177 .L2403: .data.w .L2402 178 .endo .L2403 179 .section ".ghcalltbl","" 00000008 00000000* 180 .L2405: .data.w .L2404 181 .endo .L2405 182 .section ".ghrettbl","" 00000014 00000000* 183 .L2407: .data.w .L2406 184 .endo .L2407 185 .section ".mcal_code","ax" 186 .assert 0x0 + (Can_ControllerConfigPtr - Can_InterruptEnableStatus) +0 == 4 187 .assert 0x0 + (Can_InterruptEnableStatus - Can_InterruptEnableStatus) +0 == 0 188 ..gh.f.f.1.a.1.e.3: 189 .endo ..gh.f.f.1.a.1.e.3 190 Can_SetControllerToStopMode: 00000066 e92d44f0 191 push {r4-r7,r10,lr} 0000006a f2400200* 192 movw r2,%lo(Can_InterruptEnableStatus) 0000006e f2c00200* 193 movt r2,%hi(Can_InterruptEnableStatus) 00000072 f8d2a004 194 ldr.w r10,[r2,4] 00000076 7810 195 ldrb r0,[r2] 00000078 460e 196 cpy r6,r1 0000007a 2801 197 cmp r0,1 0000007c d133* 198 bne .L2410 0000007e 4608 199 cpy r0,r1 200 .L3456: 201 00000080 f000f800* 202 bl Can_Drv_DisableInterrupts 00000084 f89a000c 203 ldrb r0,[r10,12] 00000088 2801 204 cmp r0,1 0000008a d104* 205 bne .L2412 0000008c 4630 206 cpy r0,r6 0000008e 2200 207 movs r2,0 00000090 2101 208 movs r1,1 209 .L3458: 210 00000092 f000f800* 211 bl Can_Drv_ConfigErrorInterrupt 212 .L2412: 00000096 f8da0034 213 ldr.w r0,[r10,52] 0000009a f4102f00 214 tst r0,1<<19 0000009e d006* 215 beq .L2414 000000a0 4630 216 cpy r0,r6 000000a2 2200 217 movs r2,0 000000a4 210a 218 movs r1,10 219 .L3460: 220 000000a6 f000f800* 221 bl Can_Drv_ConfigErrorInterrupt 000000aa f8da0034 222 ldr.w r0,[r10,52] 223 .L2414: 000000ae f4102f80 224 tst r0,1<<18 000000b2 d006* 225 beq .L2416 000000b4 4630 226 cpy r0,r6 000000b6 2200 227 movs r2,0 000000b8 210b 228 movs r1,11 229 .L3462: 230 000000ba f000f800* 231 bl Can_Drv_ConfigErrorInterrupt 000000be f8da0034 232 ldr.w r0,[r10,52] 233 .L2416: Page 5 objs\release\Can.s 000000c2 f4103f80 234 tst r0,1<<16 000000c6 d004* 235 beq .L2418 000000c8 4630 236 cpy r0,r6 000000ca 2200 237 movs r2,0 000000cc 210c 238 movs r1,12 239 .L3464: 240 000000ce f000f800* 241 bl Can_Drv_ConfigErrorInterrupt 242 .L2418: 000000d2 f8da0008 243 ldr.w r0,[r10,8] 000000d6 f0100f02 244 tst r0,2 000000da d104* 245 bne .L2410 000000dc 4630 246 cpy r0,r6 000000de 2200 247 movs r2,0 000000e0 4611 248 cpy r1,r2 249 .L3466: 250 000000e2 f000f800* 251 bl Can_Drv_ConfigErrorInterrupt 252 .L2410: 000000e6 f89a0020 253 ldrb r0,[r10,32] 000000ea 2700 254 movs r7,0 000000ec 4287 255 cmp r7,r0 000000ee d22b* 256 bhs .L2422 257 .L2424: 000000f0 f8da2024 258 ldr.w r2,[r10,36] 000000f4 0e39 259 lsrs r1,r7,24 000000f6 f8525021 260 ldr.w r5,[r2,r1 lsl 2] 000000fa 69a9 261 ldr r1,[r5,24] 000000fc 2901 262 cmp r1,1 000000fe d118* 263 bne .L2426 00000100 7c2a 264 ldrb r2,[r5,16] 00000102 2400 265 movs r4,0 00000104 4294 266 cmp r4,r2 00000106 d21a* 267 bhs .L2425 268 .L2431: 00000108 7f29 269 ldrb r1,[r5,28] 0000010a 4630 270 cpy r0,r6 0000010c eb016114 271 add r1,r1,r4 lsr 24 00000110 b2c9 272 uxtb r1,r1 273 .L3468: 274 00000112 f000f800* 275 bl Can_Drv_AbortTransfer 00000116 7c2a 276 ldrb r2,[r5,16] 00000118 f1047480 277 add r4,r4,1<<24 0000011c ebb26f14 278 cmp r2,r4 lsr 24 00000120 d8f2* 279 bhi .L2431 00000122 f89a0020 280 ldrb r0,[r10,32] 00000126 f1077780 281 add r7,r7,1<<24 0000012a ebb06f17 282 cmp r0,r7 lsr 24 0000012e d8df* 283 bhi .L2424 00000130 e00a* 284 b .L2422 285 .L2426: 00000132 4630 286 cpy r0,r6 00000134 7f29 287 ldrb r1,[r5,28] 288 .L3470: 289 00000136 f000f800* 290 bl Can_Drv_AbortTransfer 0000013a f89a0020 291 ldrb r0,[r10,32] 292 .L2425: 0000013e f1077780 293 add r7,r7,1<<24 00000142 ebb06f17 294 cmp r0,r7 lsr 24 Page 6 objs\release\Can.s 00000146 d8d3* 295 bhi .L2424 296 .L2422: 00000148 4630 297 cpy r0,r6 298 .L3472: 299 0000014a f000f800* 300 bl Can_Drv_SetStopMode 0000014e b2c0 301 uxtb r0,r0 302 .L3474: 303 00000150 e8bd84f0 304 pop {r4-r7,r10,pc} 305 .endf Can_SetControllerToStopMode 306 ;HwObjIdx r1 local 307 ;CanHwObjPtr r5 local 308 ;IdIndex r1 local 309 ;ConfigPtr r10 local 310 311 ;ControllerId none param 312 ;HwChannel r6 param 313 314 .section ".mcal_bss","awb" 00000008 00 315 Can_InterruptEnableStatus: .space 1 316 .endo Can_InterruptEnableStatus 00000009 000000 317 .space 3 0000000c 00000000 318 Can_ControllerConfigPtr: .space 4 319 .endo Can_ControllerConfigPtr 320 .section ".ghcalltbl","" 0000000c 00000000* 321 .L3457: .data.w .L3456 322 .endo .L3457 00000010 00000000* 323 .L3459: .data.w .L3458 324 .endo .L3459 00000014 00000000* 325 .L3461: .data.w .L3460 326 .endo .L3461 00000018 00000000* 327 .L3463: .data.w .L3462 328 .endo .L3463 0000001c 00000000* 329 .L3465: .data.w .L3464 330 .endo .L3465 00000020 00000000* 331 .L3467: .data.w .L3466 332 .endo .L3467 00000024 00000000* 333 .L3469: .data.w .L3468 334 .endo .L3469 00000028 00000000* 335 .L3471: .data.w .L3470 336 .endo .L3471 0000002c 00000000* 337 .L3473: .data.w .L3472 338 .endo .L3473 339 .section ".ghrettbl","" 00000018 00000000* 340 .L3475: .data.w .L3474 341 .endo .L3475 342 .section ".mcal_code","ax" 343 .assert 0x0 + (Can_ControllerConfigPtr - Can_ControllerConfigPtr) +0 == 0 344 .assert 0x0 + (Can_HwObjectConfigPtr - Can_ControllerConfigPtr) +0 == 4 345 ..gh.f.f.1.a.1.e.4: 346 .endo ..gh.f.f.1.a.1.e.4 347 Can_ParseRxData: 00000154 e92d44f0 348 push {r4-r7,r10,lr} 00000158 9d06 349 ldr r5,[sp,24] 0000015a 4614 350 cpy r4,r2 0000015c 461f 351 cpy r7,r3 0000015e f2400200* 352 movw r2,%lo(Can_ControllerConfigPtr) 00000162 f2c00200* 353 movt r2,%hi(Can_ControllerConfigPtr) 00000166 f852ab04 354 ldr.w r10,[r2],4 0000016a f8526021 355 ldr.w r6,[r2,r1 lsl 2] Page 7 objs\release\Can.s 0000016e e8950003 356 ldm r5,{r0-r1} 00000172 4602 357 cpy r2,r0 00000174 f4121f00 358 tst r2,1<<21 00000178 bf18 359 it ne 0000017a f0414100 360 orr r1,r1,1<<31 0000017e 69b0 361 ldr r0,[r6,24] 00000180 6021 362 str r1,[r4] 00000182 b960* 363 cbnz r0,.L3480 00000184 f0026270 364 and r2,r2,15<<24 00000188 f1b26fc0 365 cmp r2,3<<25 0000018c d107* 366 bne .L3480 0000018e 2301 367 movs r3,1 00000190 2208 368 movs r2,8 00000192 4601 369 cpy r1,r0 00000194 205c 370 movs r0,92 371 .L3798: 372 00000196 f000f800* 373 bl Det_ReportRuntimeError 0000019a 6821 374 ldr r1,[r4] 0000019c 69b0 375 ldr r0,[r6,24] 376 .L3480: 0000019e 2802 377 cmp r0,2 000001a0 bf1c 378 itt ne 000001a2 6828 379 ldr r0,[r5] 000001a4 f0104f00 380 tst r0,1<<31 000001a8 d002* 381 beq .L3484 000001aa f0414180 382 orr r1,r1,1<<30 000001ae 6021 383 str r1,[r4] 384 .L3484: 000001b0 f1050308 385 add r3,r5,8 000001b4 f8952048 386 ldrb r2,[r5,72] 000001b8 7b30 387 ldrb r0,[r6,12] 388 .L3800: 389 000001ba f000f800* 390 bl CAN_LPduRxFunc 000001be 2801 391 cmp r0,1 000001c0 bf18 392 it ne 393 .L3802: 394 000001c2 e8bd84f0 395 pop {r4-r7,r10,pc} 000001c6 7b30 396 ldrb r0,[r6,12] 000001c8 7120 397 strb r0,[r4,4] 000001ca f89a0000 398 ldrb r0,[r10] 000001ce 7160 399 strb r0,[r4,5] 000001d0 f8950048 400 ldrb r0,[r5,72] 000001d4 4639 401 cpy r1,r7 000001d6 60b8 402 str r0,[r7,8] 000001d8 f1050008 403 add r0,r5,8 000001dc 6038 404 str r0,[r7] 000001de 4620 405 cpy r0,r4 000001e0 e8bd44f0 406 pop {r4-r7,r10,lr} 407 .L3804: 408 000001e4 f000b800* 409 b CanIf_RxIndication 410 .endf Can_ParseRxData 411 ;ConfigPtr r10 local 412 ;HwConfigPtr r6 local 413 414 ;ControllerId none param 415 ;HwObjId r1 param 416 ;CanHwObjPtr r4 param Page 8 objs\release\Can.s 417 ;CanIfPduInfoPtr r7 param 418 ;MsgBufPtr r5 param 419 420 .section ".mcal_bss","awb" 00000010 00000000 421 Can_HwObjectConfigPtr: .space 16 00000014 00000000 00000018 00000000 0000001c 00000000 422 .endo Can_HwObjectConfigPtr 423 .section ".ghcalltbl","" 00000030 00000000* 424 .L3799: .data.w .L3798 425 .endo .L3799 00000034 00000000* 426 .L3801: .data.w .L3800 427 .endo .L3801 428 .section ".ghrettbl","" 0000001c 00000000* 429 .L3803: .data.w .L3802 430 .endo .L3803 431 .section ".ghtailcalltbl","" 432 .align 4 00000000 00000000* 433 .L3805: .data.w .L3804 434 .endo .L3805 435 .section ".mcal_code","ax" 436 .assert 0x0 + (Can_ControllerConfigPtr - Can_ControllerConfigPtr) +0 == 0 437 .assert 0x0 + (Can_HwToMapMbIndex - Can_ControllerConfigPtr) +0 == 20 438 ..gh.f.f.1.a.1.e.5: 439 .endo ..gh.f.f.1.a.1.e.5 440 Can_ProcessRxMsgBuffer: 000001e8 b570 441 push {r4-r6,lr} 000001ea b086 442 sub sp,sp,24 000001ec 460d 443 cpy r5,r1 000001ee f2400600* 444 movw r6,%lo(Can_ControllerConfigPtr) 000001f2 f2c00600* 445 movt r6,%hi(Can_ControllerConfigPtr) 000001f6 eb0311c0 446 add r1,r3,r0 lsl 7 000001fa f8564b14 447 ldr.w r4,[r6],20 000001fe 5c71 448 ldrb r1,[r6,r1] 00000200 29ff 449 cmp r1,255 00000202 d048* 450 beq .L3806 00000204 eb021641 451 add r6,r2,r1 lsl 5 00000208 7b71 452 ldrb r1,[r6,13] 0000020a 2900 453 cmp r1,0 0000020c d143* 454 bne .L3806 0000020e 69b1 455 ldr r1,[r6,24] 00000210 b9b1* 456 cbnz r1,.L3811 00000212 f2400300* 457 movw r3,%lo(Can_State) 00000216 f2c00300* 458 movt r3,%hi(Can_State) 0000021a 7f31 459 ldrb r1,[r6,28] 0000021c 681a 460 ldr r2,[r3] 0000021e ab01 461 add r3,sp,4 00000220 eb010181 462 add r1,r1,r1 lsl 2 00000224 f8521021 463 ldr.w r1,[r2,r1 lsl 2] 00000228 aa04 464 add r2,sp,16 0000022a 9100 465 str r1,[sp] 0000022c 7b31 466 ldrb r1,[r6,12] 467 .L4200: 468 0000022e f7ffff91* 469 bl Can_ParseRxData 00000232 4628 470 cpy r0,r5 00000234 2200 471 movs r2,0 00000236 7b73 472 ldrb r3,[r6,13] 00000238 7f31 473 ldrb r1,[r6,28] 474 .L4202: Page 9 objs\release\Can.s 475 0000023a f000f800* 476 bl Can_Drv_Receive 0000023e e02a* 477 b .L3806 478 .L3811: 00000240 2902 479 cmp r1,2 00000242 d128* 480 bne .L3806 00000244 2b07 481 cmp r3,7 00000246 d105* 482 bne .L3816 00000248 6860 483 ldr r0,[r4,4] 0000024a 6880 484 ldr r0,[r0,8] 0000024c 2800 485 cmp r0,0 0000024e bf18 486 it ne 487 .L4204: 488 00000250 4780 489 blx r0 00000252 e020* 490 b .L3806 491 .L3816: 00000254 2b06 492 cmp r3,6 00000256 d105* 493 bne .L3821 00000258 6860 494 ldr r0,[r4,4] 0000025a 68c0 495 ldr r0,[r0,12] 0000025c 2800 496 cmp r0,0 0000025e bf18 497 it ne 498 .L4206: 499 00000260 4780 500 blx r0 00000262 e018* 501 b .L3806 502 .L3821: 00000264 f2400300* 503 movw r3,%lo(Can_State) 00000268 f2c00300* 504 movt r3,%hi(Can_State) 0000026c 7f31 505 ldrb r1,[r6,28] 0000026e 681a 506 ldr r2,[r3] 00000270 ab01 507 add r3,sp,4 00000272 eb010181 508 add r1,r1,r1 lsl 2 00000276 f8521021 509 ldr.w r1,[r2,r1 lsl 2] 0000027a aa04 510 add r2,sp,16 0000027c 9100 511 str r1,[sp] 0000027e 7b31 512 ldrb r1,[r6,12] 513 .L4208: 514 00000280 f7ffff68* 515 bl Can_ParseRxData 00000284 6860 516 ldr r0,[r4,4] 00000286 6900 517 ldr r0,[r0,16] 00000288 2800 518 cmp r0,0 0000028a bf18 519 it ne 520 .L4210: 521 0000028c 4780 522 blx r0 0000028e 4628 523 cpy r0,r5 00000290 2100 524 movs r1,0 525 .L4212: 526 00000292 f000f800* 527 bl Can_Drv_RxFIFO 528 .L3806: 00000296 b006 529 add sp,sp,24 530 .L4214: 531 00000298 bd70 532 pop {r4-r6,pc} 533 .endf Can_ProcessRxMsgBuffer 534 ;ConfigPtr r4 local 535 ;CanMsgBuf r1 local Page 10 objs\release\Can.s 536 ;HwInfo [sp,16] local 537 ;PduInfo [sp,4] local 538 ;HwObjIndex r1 local 539 ;HwObjPtr r6 local 540 ;TempHwObj r1 local 541 542 ;ControllerId r0 param 543 ;HwChannel r5 param 544 ;HwConfigPtr r2 param 545 ;MbIdx r3 param 546 547 .section ".mcal_const","a" 548 .align 4 549 Can_State: 00000000 00000000* 550 .data.w Can_Status0 551 .endo Can_State 552 .section ".mcal_bss","awb" 00000020 00000000 553 Can_HwToMapMbIndex: .space 128 00000024 00000000 00000028 00000000 0000002c 00000000 00000030 00000000 00000034 00000000 00000038 00000000 0000003c 00000000 00000040 00000000 00000044 00000000 00000048 00000000 0000004c 00000000 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 0000008c 00000000 00000090 00000000 00000094 00000000 00000098 00000000 0000009c 00000000 554 .endo Can_HwToMapMbIndex 555 .section ".ghcalltbl","" 00000038 00000000* 556 .L4201: .data.w .L4200 557 .endo .L4201 0000003c 00000000* 558 .L4203: .data.w .L4202 559 .endo .L4203 00000040 00000000* 560 .L4205: .data.w .L4204 561 .endo .L4205 00000044 00000000* 562 .L4207: .data.w .L4206 563 .endo .L4207 00000048 00000000* 564 .L4209: .data.w .L4208 565 .endo .L4209 Page 11 objs\release\Can.s 0000004c 00000000* 566 .L4211: .data.w .L4210 567 .endo .L4211 00000050 00000000* 568 .L4213: .data.w .L4212 569 .endo .L4213 570 .section ".ghrettbl","" 00000020 00000000* 571 .L4215: .data.w .L4214 572 .endo .L4215 573 .section ".mcal_bss","awb" 000000a0 00000000 574 Can_Status0: .space 1304 000000a4 00000000 000000a8 00000000 000000ac 00000000 000000b0 00000000 000000b4 00000000 000000b8 00000000 000000bc 00000000 000000c0 00000000 000000c4 00000000 000000c8 00000000 000000cc 00000000 000000d0 00000000 000000d4 00000000 000000d8 00000000 000000dc 00000000 000000e0 00000000 000000e4 00000000 000000e8 00000000 000000ec 00000000 000000f0 00000000 000000f4 00000000 000000f8 00000000 000000fc 00000000 00000100 00000000 00000104 00000000 00000108 00000000 0000010c 00000000 00000110 00000000 00000114 00000000 00000118 00000000 0000011c 00000000 00000120 00000000 00000124 00000000 00000128 00000000 0000012c 00000000 00000130 00000000 00000134 00000000 00000138 00000000 0000013c 00000000 00000140 00000000 00000144 00000000 00000148 00000000 0000014c 00000000 00000150 00000000 00000154 00000000 00000158 00000000 0000015c 00000000 00000160 00000000 00000164 00000000 00000168 00000000 0000016c 00000000 00000170 00000000 Page 12 objs\release\Can.s 00000174 00000000 00000178 00000000 0000017c 00000000 00000180 00000000 00000184 00000000 00000188 00000000 0000018c 00000000 00000190 00000000 00000194 00000000 00000198 00000000 0000019c 00000000 575 .endo Can_Status0 576 .section ".mcal_code","ax" 577 .assert 0x0 + (Can_ControllerState - Can_DriverStatus) +0 == 1472 578 .assert 0x0 + (Can_ConfigPtr - Can_DriverStatus) +0 == 4 579 .assert 0x0 + (Can_DriverStatus - Can_DriverStatus) +0 == 0 580 .assert 0x0 + (Can_ControllerConfigPtr - Can_DriverStatus) +0 == 12 581 .assert 0x0 + (Can_HwObjectConfigPtr - Can_DriverStatus) +0 == 16 582 .assert 0x0 + (Can_InterruptEnableStatus - Can_DriverStatus) +0 == 8 583 .assert 0x0 + (Can_HwToMapMbIndex - Can_DriverStatus) +0 == 32 584 .assert 0x0 + (Can_BaudrateIdConfig - Can_DriverStatus) +0 == 1466 585 .assert 0x0 + (Can_DisableInterruptLevel - Can_DriverStatus) +0 == 1468 586 .assert 0x0 + (Can_EccInjectionStatus - Can_DriverStatus) +0 == 1464 587 ..gh.f.f.1.a.1.e.6: 588 .endo ..gh.f.f.1.a.1.e.6 589 Can_Init:: 0000029a e92d4ff0 590 push {r4-fp,lr} 0000029e f2404114 591 mov r1,0x0414 000002a2 ebad0d01 592 sub sp,sp,r1 000002a6 f2400b00* 593 movw fp,%lo(Can_DriverStatus) 000002aa f2c00b00* 594 movt fp,%hi(Can_DriverStatus) 000002ae f8db1000 595 ldr.w r1,[fp] 000002b2 b131* 596 cbz r1,.L4224 000002b4 2306 597 movs r3,6 000002b6 2200 598 movs r2,0 000002b8 4611 599 cpy r1,r2 000002ba 205c 600 movs r0,92 601 .L9583: 602 000002bc f000f800* 603 bl Det_ReportError 000002c0 e285* 604 b .L4216 605 .L4224: 000002c2 b128* 606 cbz r0,.L4219 000002c4 2309 607 movs r3,9 000002c6 460a 608 cpy r2,r1 000002c8 205c 609 movs r0,92 610 .L9585: 611 000002ca f000f800* 612 bl Det_ReportError 000002ce e27e* 613 b .L4216 614 .L4219: 000002d0 f2400100* 615 movw r1,%lo(Can_PreDefinedConfigPtr) 000002d4 f2c00100* 616 movt r1,%hi(Can_PreDefinedConfigPtr) 000002d8 680b 617 ldr r3,[r1] 000002da 689d 618 ldr r5,[r3,8] 000002dc f8cb3004 619 str r3,[fp,4] 000002e0 42a8 620 cmp r0,r5 000002e2 d211* 621 bhs .L4243 000002e4 69dc 622 ldr r4,[r3,28] 623 .L4234: 000002e6 f8541020 624 ldr.w r1,[r4,r0 lsl 2] Page 13 objs\release\Can.s 000002ea b149* 625 cbz r1,.L4238 000002ec f8db15c0 626 ldr.w r1,[fp,1472] 000002f0 b131* 627 cbz r1,.L4238 000002f2 2306 628 movs r3,6 000002f4 2200 629 movs r2,0 000002f6 4611 630 cpy r1,r2 000002f8 205c 631 movs r0,92 632 .L9587: 633 000002fa f000f800* 634 bl Det_ReportError 000002fe e266* 635 b .L4216 636 .L4238: 00000300 1c40 637 adds r0,r0,1 00000302 b2c0 638 uxtb r0,r0 00000304 42a8 639 cmp r0,r5 00000306 d3ee* 640 blo .L4234 641 .L4243: 00000308 2201 642 movs r2,1 0000030a f04f0900 643 mov r9,0 0000030e 45a9 644 cmp r9,r5 00000310 f0808246* 645 bhs .L4299 646 .L4244: 00000314 69dc 647 ldr r4,[r3,28] 00000316 fa5ff089 648 uxtb r0,r9 0000031a f8544020 649 ldr.w r4,[r4,r0 lsl 2] 0000031e 2c00 650 cmp r4,0 00000320 f0008235* 651 beq .L4297 00000324 78e0 652 ldrb r0,[r4,3] 00000326 2801 653 cmp r0,1 00000328 f0408231* 654 bne .L4297 0000032c 8b20 655 ldrh r0,[r4,24] 0000032e f8ab05ba 656 strh r0,[fp,1466] 00000332 6aa1 657 ldr r1,[r4,40] 00000334 f8cb400c 658 str r4,[fp,12] 00000338 2000 659 movs r0,0 0000033a f88b05b8 660 strb r0,[fp,1464] 0000033e 78a7 661 ldrb r7,[r4,2] 00000340 f8cb05bc 662 str r0,[fp,1468] 00000344 f2400000* 663 movw r0,%lo(Can_State) 00000348 f2c00000* 664 movt r0,%hi(Can_State) 0000034c 680a 665 ldr r2,[r1] 0000034e 6801 666 ldr r1,[r0] 00000350 4638 667 cpy r0,r7 668 .L9589: 669 00000352 f000f800* 670 bl Can_Drv_Init 00000356 f88d0003 671 strb r0,[sp,3] 0000035a 0600 672 lsls r0,r0,24 0000035c f040820e* 673 bne .L4294 00000360 4638 674 cpy r0,r7 675 .L9591: 676 00000362 f000f800* 677 bl Can_Drv_DisableMbInterrupts 00000366 2201 678 movs r2,1 00000368 8b21 679 ldrh r1,[r4,24] 0000036a 69e0 680 ldr r0,[r4,28] 0000036c f88b2008 681 strb r2,[fp,8] 00000370 ebc10181 682 rsb r1,r1,r1 lsl 2 00000374 f8101031 683 ldrb r1,[r0,r1 lsl 3] 00000378 4638 684 cpy r0,r7 685 .L9593: Page 14 objs\release\Can.s 686 0000037a f000f800* 687 bl Can_Drv_SetTxArbitrationDelay 0000037e 2208 688 movs r2,8 00000380 f10b0120 689 add r1,fp,32 00000384 fa5ff389 690 uxtb r3,r9 00000388 f04f35ff 691 mov r5,-1 0000038c eb0113c3 692 add r3,r1,r3 lsl 7 693 .L5073: 00000390 f8035b10 694 strb r5,[r3],16 00000394 f8035c0f 695 strb r5,[r3,-15] 00000398 f8035c0e 696 strb r5,[r3,-14] 0000039c f8035c0d 697 strb r5,[r3,-13] 000003a0 f8035c0c 698 strb r5,[r3,-12] 000003a4 f8035c0b 699 strb r5,[r3,-11] 000003a8 f8035c0a 700 strb r5,[r3,-10] 000003ac f8035c09 701 strb r5,[r3,-9] 000003b0 f8035c08 702 strb r5,[r3,-8] 000003b4 f8035c07 703 strb r5,[r3,-7] 000003b8 f8035c06 704 strb r5,[r3,-6] 000003bc f8035c05 705 strb r5,[r3,-5] 000003c0 f8035c04 706 strb r5,[r3,-4] 000003c4 f8035c03 707 strb r5,[r3,-3] 000003c8 f8035c02 708 strb r5,[r3,-2] 000003cc f8035c01 709 strb r5,[r3,-1] 000003d0 1e52 710 subs r2,r2,1 000003d2 d1dd* 711 bne .L5073 000003d4 f8940020 712 ldrb r0,[r4,32] 000003d8 4282 713 cmp r2,r0 000003da d250* 714 bhs .L4259 000003dc 6a63 715 ldr r3,[r4,36] 000003de 4696 716 mov lr,r2 000003e0 9303 717 str r3,[sp,12] 718 .L4251: 000003e2 f8ddc00c 719 ldr.w r12,[sp,12] 000003e6 ea4f621e 720 lsr r2,lr,24 000003ea f85c3022 721 ldr.w r3,[r12,r2 lsl 2] 000003ee 699c 722 ldr r4,[r3,24] 000003f0 7b1d 723 ldrb r5,[r3,12] 000003f2 f2400c00* 724 movw r12,%lo(Can_HwObjectConfigPtr) 000003f6 f2c00c00* 725 movt r12,%hi(Can_HwObjectConfigPtr) 000003fa 1e64 726 subs r4,r4,1 000003fc f84c3025 727 str r3,[r12,r5 lsl 2] 00000400 d308* 728 blo .L4252 00000402 d013* 729 beq .L4253 00000404 2c01 730 cmp r4,1 00000406 d02b* 731 beq .L4256 00000408 f10e7e80 732 add lr,lr,1<<24 0000040c ebb06f1e 733 cmp r0,lr lsr 24 00000410 d8e7* 734 bhi .L4251 00000412 e034* 735 b .L4259 736 .L4252: 00000414 7f1b 737 ldrb r3,[r3,28] 00000416 fa5ff289 738 uxtb r2,r9 0000041a f10e7e80 739 add lr,lr,1<<24 0000041e ebb06f1e 740 cmp r0,lr lsr 24 00000422 eb0312c2 741 add r2,r3,r2 lsl 7 00000426 548d 742 strb r5,[r1,r2] 00000428 d8db* 743 bhi .L4251 0000042a e028* 744 b .L4259 745 .L4253: 0000042c f893c010 746 ldrb r12,[r3,16] Page 15 objs\release\Can.s 00000430 2200 747 movs r2,0 00000432 4562 748 cmp r2,r12 00000434 d21e* 749 bhs .L4258 00000436 fa5ff689 750 uxtb r6,r9 0000043a 01f6 751 lsls r6,r6,7 0000043c f893a01c 752 ldrb r10,[r3,28] 753 .L4255: 00000440 eb06030a 754 add r3,r6,r10 00000444 eb036312 755 add r3,r3,r2 lsr 24 00000448 f1027280 756 add r2,r2,1<<24 0000044c 54cd 757 strb r5,[r1,r3] 0000044e ebbc6f12 758 cmp r12,r2 lsr 24 00000452 d8f5* 759 bhi .L4255 00000454 f10e7e80 760 add lr,lr,1<<24 00000458 ebb06f1e 761 cmp r0,lr lsr 24 0000045c d8c1* 762 bhi .L4251 0000045e e00e* 763 b .L4259 764 .L4256: 00000460 7f1b 765 ldrb r3,[r3,28] 00000462 fa5ffc89 766 uxtb r12,r9 00000466 eb0312cc 767 add r2,r3,r12 lsl 7 0000046a 548d 768 strb r5,[r1,r2] 0000046c eb0112cc 769 add r2,r1,r12 lsl 7 00000470 7195 770 strb r5,[r2,6] 00000472 71d5 771 strb r5,[r2,7] 772 .L4258: 00000474 f10e7e80 773 add lr,lr,1<<24 00000478 ebb06f1e 774 cmp r0,lr lsr 24 0000047c d8b1* 775 bhi .L4251 776 .L4259: 0000047e f8db400c 777 ldr.w r4,[fp,12] 00000482 4638 778 cpy r0,r7 00000484 2101 779 movs r1,1 00000486 9404 780 str r4,[sp,16] 781 .L9595: 782 00000488 f000f800* 783 bl Can_Drv_SetRxMaskType 0000048c f8941020 784 ldrb r1,[r4,32] 00000490 2200 785 movs r2,0 00000492 428a 786 cmp r2,r1 00000494 f080816f* 787 bhs .L4293 00000498 9201 788 str r2,[sp,4] 789 .L4260: 0000049a 9e04 790 ldr r6,[sp,16] 0000049c f8dda004 791 ldr.w r10,[sp,4] 000004a0 6a72 792 ldr r2,[r6,36] 000004a2 ea4f601a 793 lsr r0,r10,24 000004a6 f8525020 794 ldr.w r5,[r2,r0 lsl 2] 000004aa 69a8 795 ldr r0,[r5,24] 000004ac b9d0* 796 cbnz r0,.L4265 000004ae 68a8 797 ldr r0,[r5,8] 000004b0 6969 798 ldr r1,[r5,20] 000004b2 0004 799 movs r4,r0 000004b4 bf18 800 it ne 000004b6 2401 801 mov r4,1 000004b8 4622 802 cpy r2,r4 000004ba 4638 803 cpy r0,r7 000004bc 680b 804 ldr r3,[r1] 000004be 7f29 805 ldrb r1,[r5,28] 806 .L9597: 807 Page 16 objs\release\Can.s 000004c0 f000f800* 808 bl Can_Drv_ConfigRxMb 000004c4 6969 809 ldr r1,[r5,20] 000004c6 7f2a 810 ldrb r2,[r5,28] 000004c8 684b 811 ldr r3,[r1,4] 000004ca 4638 812 cpy r0,r7 000004cc 4621 813 cpy r1,r4 814 .L9599: 815 000004ce f000f800* 816 bl Can_Drv_SetRxIndividualMask 000004d2 f10a7280 817 add r2,r10,1<<24 000004d6 f8961020 818 ldrb r1,[r6,32] 000004da 9201 819 str r2,[sp,4] 000004dc ebb16f12 820 cmp r1,r2 lsr 24 000004e0 d8db* 821 bhi .L4260 000004e2 e148* 822 b .L4293 823 .L4265: 000004e4 2802 824 cmp r0,2 000004e6 f040813e* 825 bne .L4292 000004ea f8db100c 826 ldr.w r1,[fp,12] 000004ee 9a01 827 ldr r2,[sp,4] 000004f0 9102 828 str r1,[sp,8] 000004f2 6a49 829 ldr r1,[r1,36] 000004f4 0e10 830 lsrs r0,r2,24 000004f6 2400 831 movs r4,0 000004f8 4626 832 cpy r6,r4 000004fa f44f6280 833 mov r2,1<<10 000004fe f8515020 834 ldr.w r5,[r1,r0 lsl 2] 00000502 a805 835 add r0,sp,20 00000504 f2400100* 836 movw r1,%lo(____UNNAMED_1_static_in_Can_SetControllerFifoFilter) 00000508 f2c00100* 837 movt r1,%hi(____UNNAMED_1_static_in_Can_SetControllerFifoFilter) 838 .L9601: 839 0000050c f000f800* 840 bl memcpy 00000510 7caa 841 ldrb r2,[r5,18] 00000512 46a2 842 mov r10,r4 00000514 0890 843 lsrs r0,r2,2 00000516 1d81 844 adds r1,r0,6 00000518 2920 845 cmp r1,32 0000051a d804* 846 bhi .L4268 0000051c 4688 847 mov r8,r1 0000051e 428c 848 cmp r4,r1 00000520 f08080a8* 849 bhs .L4988 00000524 e0a2* 850 b .L4283 851 .L4268: 00000526 f04f0820 852 mov r8,32 0000052a 4611 853 cpy r1,r2 0000052c 428c 854 cmp r4,r1 0000052e f08080a1* 855 bhs .L4988 856 .L4270: 00000532 f8db200c 857 ldr.w r2,[fp,12] 00000536 6853 858 ldr r3,[r2,4] 00000538 681b 859 ldr r3,[r3] 0000053a 2400 860 movs r4,0 0000053c 4638 861 cpy r0,r7 0000053e 4622 862 cpy r2,r4 00000540 1e5b 863 subs r3,r3,1 00000542 d30e* 864 blo .L4271 00000544 d02f* 865 beq .L4274 00000546 2b01 866 cmp r3,1 00000548 d056* 867 beq .L4277 0000054a 2603 868 movs r6,3 Page 17 objs\release\Can.s 0000054c 4651 869 mov r1,r10 870 .L9603: 871 0000054e f000f800* 872 bl Can_Drv_SetRxFifoIndividualMask 00000552 f10a0a01 873 add r10,r10,1 00000556 fa5ffa8a 874 uxtb r10,r10 0000055a 45c2 875 cmp r10,r8 0000055c f080808a* 876 bhs .L4988 00000560 e084* 877 b .L4283 878 .L4271: 00000562 460c 879 cpy r4,r1 00000564 4616 880 cpy r6,r2 00000566 6969 881 ldr r1,[r5,20] 00000568 68aa 882 ldr r2,[r5,8] 0000056a eb0101ca 883 add r1,r1,r10 lsl 3 0000056e 6849 884 ldr r1,[r1,4] 00000570 b162* 885 cbz r2,.L4273 00000572 0049 886 lsls r1,r1,1 00000574 f0414240 887 orr r2,r1,3<<30 00000578 4651 888 mov r1,r10 889 .L9605: 890 0000057a f000f800* 891 bl Can_Drv_SetRxFifoIndividualMask 0000057e f10a0a01 892 add r10,r10,1 00000582 fa5ffa8a 893 uxtb r10,r10 00000586 45c2 894 cmp r10,r8 00000588 d274* 895 bhs .L4988 0000058a e06f* 896 b .L4283 897 .L4273: 0000058c 04c9 898 lsls r1,r1,19 0000058e f0414240 899 orr r2,r1,3<<30 00000592 4651 900 mov r1,r10 901 .L9607: 902 00000594 f000f800* 903 bl Can_Drv_SetRxFifoIndividualMask 00000598 f10a0a01 904 add r10,r10,1 0000059c fa5ffa8a 905 uxtb r10,r10 000005a0 45c2 906 cmp r10,r8 000005a2 d267* 907 bhs .L4988 000005a4 e062* 908 b .L4283 909 .L4274: 000005a6 696a 910 ldr r2,[r5,20] 000005a8 004c 911 lsls r4,r1,1 000005aa eb02130a 912 add r3,r2,r10 lsl 4 000005ae 68aa 913 ldr r2,[r5,8] 000005b0 6859 914 ldr r1,[r3,4] 000005b2 68db 915 ldr r3,[r3,12] 000005b4 b2e4 916 uxtb r4,r4 000005b6 2601 917 movs r6,1 000005b8 b17a* 918 cbz r2,.L4276 000005ba 0bc9 919 lsrs r1,r1,15 000005bc 0409 920 lsls r1,r1,16 000005be f0414140 921 orr r1,r1,3<<30 000005c2 ea4132d3 922 orr r2,r1,r3 lsr 15 000005c6 4651 923 mov r1,r10 924 .L9609: 925 000005c8 f000f800* 926 bl Can_Drv_SetRxFifoIndividualMask 000005cc f10a0a01 927 add r10,r10,1 000005d0 fa5ffa8a 928 uxtb r10,r10 000005d4 45c2 929 cmp r10,r8 Page 18 objs\release\Can.s 000005d6 d24d* 930 bhs .L4988 000005d8 e048* 931 b .L4283 932 .L4276: 000005da 04c9 933 lsls r1,r1,19 000005dc f0414140 934 orr r1,r1,3<<30 000005e0 ea4102c3 935 orr r2,r1,r3 lsl 3 000005e4 4651 936 mov r1,r10 937 .L9611: 938 000005e6 f000f800* 939 bl Can_Drv_SetRxFifoIndividualMask 000005ea f10a0a01 940 add r10,r10,1 000005ee fa5ffa8a 941 uxtb r10,r10 000005f2 45c2 942 cmp r10,r8 000005f4 d23e* 943 bhs .L4988 000005f6 e039* 944 b .L4283 945 .L4277: 000005f8 696a 946 ldr r2,[r5,20] 000005fa f8d5c008 947 ldr.w r12,[r5,8] 000005fe 008c 948 lsls r4,r1,2 00000600 b2e4 949 uxtb r4,r4 00000602 2602 950 movs r6,2 00000604 eb021e4a 951 add lr,r2,r10 lsl 5 00000608 f1bc0f00 952 cmp r12,0 0000060c f8de1004 953 ldr.w r1,[lr,4] 00000610 f8de200c 954 ldr.w r2,[lr,12] 00000614 f8de3014 955 ldr.w r3,[lr,20] 00000618 f8dee01c 956 ldr.w lr,[lr,28] 0000061c d013* 957 beq .L4279 0000061e 0d49 958 lsrs r1,r1,21 00000620 0d52 959 lsrs r2,r2,21 00000622 0412 960 lsls r2,r2,16 00000624 ea426101 961 orr r1,r2,r1 lsl 24 00000628 0d5a 962 lsrs r2,r3,21 0000062a ea412102 963 orr r1,r1,r2 lsl 8 0000062e ea41525e 964 orr r2,r1,lr lsr 21 00000632 4651 965 mov r1,r10 966 .L9613: 967 00000634 f000f800* 968 bl Can_Drv_SetRxFifoIndividualMask 00000638 f10a0a01 969 add r10,r10,1 0000063c fa5ffa8a 970 uxtb r10,r10 00000640 45c2 971 cmp r10,r8 00000642 d217* 972 bhs .L4988 00000644 e012* 973 b .L4283 974 .L4279: 00000646 08c9 975 lsrs r1,r1,3 00000648 08d2 976 lsrs r2,r2,3 0000064a 0412 977 lsls r2,r2,16 0000064c ea426101 978 orr r1,r2,r1 lsl 24 00000650 08da 979 lsrs r2,r3,3 00000652 ea412102 980 orr r1,r1,r2 lsl 8 00000656 ea4102de 981 orr r2,r1,lr lsr 3 0000065a 4651 982 mov r1,r10 983 .L9615: 984 0000065c f000f800* 985 bl Can_Drv_SetRxFifoIndividualMask 00000660 f10a0a01 986 add r10,r10,1 00000664 fa5ffa8a 987 uxtb r10,r10 00000668 45c2 988 cmp r10,r8 0000066a d203* 989 bhs .L4988 990 .L4283: Page 19 objs\release\Can.s 0000066c 7ca9 991 ldrb r1,[r5,18] 0000066e 458a 992 cmp r10,r1 00000670 f4ffaf5f* 993 blo .L4270 994 .L4988: 00000674 9802 995 ldr r0,[sp,8] 00000676 6841 996 ldr r1,[r0,4] 00000678 4638 997 cpy r0,r7 0000067a 6849 998 ldr r1,[r1,4] 999 .L9617: 1000 0000067c f000f800* 1001 bl Can_Drv_SetRxFifoGlobalMask 00000680 2100 1002 movs r1,0 00000682 4622 1003 cpy r2,r4 00000684 ea5f0ed2 1004 lsrs lr,r2,3 00000688 d04d* 1005 beq .L4987 0000068a 68a8 1006 ldr r0,[r5,8] 0000068c 696c 1007 ldr r4,[r5,20] 0000068e ab11 1008 add r3,sp,68 00000690 468a 1009 mov r10,r1 00000692 ea4f01ce 1010 lsl r1,lr,3 00000696 2800 1011 cmp r0,0 00000698 bf14 1012 ite ne 0000069a f04f0c01 1013 mov r12,1 0000069e f04f0c00 1014 mov r12,0 1015 .L4993: 000006a2 f8540b40 1016 ldr.w r0,[r4],64 000006a6 f803cc2f 1017 strb r12,[r3,-47] 000006aa f803ac30 1018 strb r10,[r3,-48] 000006ae f1be0e01 1019 subs lr,lr,1 000006b2 f8430c2c 1020 str r0,[r3,-44] 000006b6 f8540c38 1021 ldr.w r0,[r4,-56] 000006ba f803cc27 1022 strb r12,[r3,-39] 000006be f803ac28 1023 strb r10,[r3,-40] 000006c2 f8430c24 1024 str r0,[r3,-36] 000006c6 f8540c30 1025 ldr.w r0,[r4,-48] 000006ca f803cc1f 1026 strb r12,[r3,-31] 000006ce f803ac20 1027 strb r10,[r3,-32] 000006d2 f8430c1c 1028 str r0,[r3,-28] 000006d6 f8540c28 1029 ldr.w r0,[r4,-40] 000006da f803cc17 1030 strb r12,[r3,-23] 000006de f803ac18 1031 strb r10,[r3,-24] 000006e2 f8430c14 1032 str r0,[r3,-20] 000006e6 f8540c20 1033 ldr.w r0,[r4,-32] 000006ea f803cc0f 1034 strb r12,[r3,-15] 000006ee f803ac10 1035 strb r10,[r3,-16] 000006f2 f8430c0c 1036 str r0,[r3,-12] 000006f6 f8540c18 1037 ldr.w r0,[r4,-24] 000006fa f803cc07 1038 strb r12,[r3,-7] 000006fe f803ac08 1039 strb r10,[r3,-8] 00000702 f8430c04 1040 str r0,[r3,-4] 00000706 f8540c10 1041 ldr.w r0,[r4,-16] 0000070a f883c001 1042 strb r12,[r3,1] 0000070e 6058 1043 str r0,[r3,4] 00000710 f803ab40 1044 strb r10,[r3],64 00000714 f8540c08 1045 ldr.w r0,[r4,-8] 00000718 f803cc37 1046 strb r12,[r3,-55] 0000071c f803ac38 1047 strb r10,[r3,-56] 00000720 f8430c34 1048 str r0,[r3,-52] 00000724 d1bd* 1049 bne .L4993 1050 .L4987: 00000726 f0120407 1051 ands r4,r2,7 Page 20 objs\release\Can.s 0000072a d014* 1052 beq .L4290 0000072c 68aa 1053 ldr r2,[r5,8] 0000072e f10d0c14 1054 add r12,sp,20 00000732 eb0c03c1 1055 add r3,r12,r1 lsl 3 00000736 ea5f0c02 1056 movs r12,r2 0000073a bf18 1057 it ne 0000073c f04f0c01 1058 mov r12,1 00000740 696a 1059 ldr r2,[r5,20] 1060 .L4990: 00000742 f8520031 1061 ldr.w r0,[r2,r1 lsl 3] 00000746 f883c001 1062 strb r12,[r3,1] 0000074a 1c49 1063 adds r1,r1,1 0000074c 1e64 1064 subs r4,r4,1 0000074e 6058 1065 str r0,[r3,4] 00000750 f803eb08 1066 strb lr,[r3],8 00000754 d1f5* 1067 bne .L4990 1068 .L4290: 00000756 aa05 1069 add r2,sp,20 00000758 4631 1070 cpy r1,r6 0000075a 4638 1071 cpy r0,r7 1072 .L9619: 1073 0000075c f000f800* 1074 bl Can_Drv_ConfigRxFifo 00000760 9a04 1075 ldr r2,[sp,16] 00000762 f8921020 1076 ldrb r1,[r2,32] 1077 .L4292: 00000766 9a01 1078 ldr r2,[sp,4] 00000768 f1027280 1079 add r2,r2,1<<24 0000076c 9201 1080 str r2,[sp,4] 0000076e ebb16f12 1081 cmp r1,r2 lsr 24 00000772 f63fae92* 1082 bhi .L4260 1083 .L4293: 00000776 4638 1084 cpy r0,r7 1085 .L9621: 1086 00000778 f000f800* 1087 bl Can_Drv_SetStopMode 1088 .L4294: 0000077c f89d2003 1089 ldrb r2,[sp,3] 00000780 b962* 1090 cbnz r2,.L4298 00000782 f8db3004 1091 ldr.w r3,[fp,4] 00000786 2002 1092 movs r0,2 00000788 f8cb05c0 1093 str r0,[fp,1472] 0000078c 689d 1094 ldr r5,[r3,8] 1095 .L4297: 0000078e f1090901 1096 add r9,r9,1 00000792 fa5ff089 1097 uxtb r0,r9 00000796 42a8 1098 cmp r0,r5 00000798 f4ffadbc* 1099 blo .L4244 1100 .L4298: 0000079c 2a01 1101 cmp r2,1 0000079e d113* 1102 bne .L4304 1103 .L4299: 000007a0 f8db3004 1104 ldr.w r3,[fp,4] 000007a4 6898 1105 ldr r0,[r3,8] 000007a6 2100 1106 movs r1,0 000007a8 4281 1107 cmp r1,r0 000007aa d210* 1108 bhs .L4216 000007ac 69db 1109 ldr r3,[r3,28] 1110 .L4300: 000007ae 0e0a 1111 lsrs r2,r1,24 000007b0 f8532022 1112 ldr.w r2,[r3,r2 lsl 2] Page 21 objs\release\Can.s 000007b4 b112* 1113 cbz r2,.L4303 000007b6 2200 1114 movs r2,0 000007b8 f8cb25c0 1115 str r2,[fp,1472] 1116 .L4303: 000007bc f1017180 1117 add r1,r1,1<<24 000007c0 ebb06f11 1118 cmp r0,r1 lsr 24 000007c4 d8f3* 1119 bhi .L4300 000007c6 e002* 1120 b .L4216 1121 .L4304: 000007c8 2001 1122 movs r0,1 000007ca f8cb0000 1123 str r0,[fp] 1124 .L4216: 000007ce f2404014 1125 mov r0,0x0414 000007d2 4485 1126 add sp,sp,r0 1127 .L9623: 1128 000007d4 e8bd8ff0 1129 pop {r4-fp,pc} 1130 .endf Can_Init 1131 ;Index r0 local 1132 ;Index r9 local 1133 ;ReturnVal r2 local 1134 ;CanCtrlPtr r4 local 1135 ;HwChannel r7 local 1136 ;ReturnVal [sp,3] local 1137 ;HwObjectRefIndex r2 local 1138 ;ObjIndex r2 local 1139 ;CanHwObjectPtr r3 local 1140 ;TempCanObjectType r4 local 1141 ;ConfigPtr [sp,16] local 1142 ;HwObjIndex r2 local 1143 ;CanHwObjPtr r5 local 1144 ;CanMsgIdType r4 local 1145 ;ConfigPtr [sp,8] local 1146 ;FilterIdx r10 local 1147 ;HwFilterCount r4 local 1148 ;HwConfigPtr r5 local 1149 ;FifoFilterRffn r8 local 1150 ;ElementFormat r6 local 1151 ;RxFifoFilters [sp,20] local 1152 ;HwFilterCount r4 local 1153 ;HwFilterMask r2 local 1154 ;TempRxFifoType r3 local 1155 1156 ;Config r0 param 1157 1158 .section ".mcal_bss","awb" 000005b8 00 1159 Can_EccInjectionStatus: .space 1 1160 .endo Can_EccInjectionStatus 000005b9 00 1161 .space 1 000005ba 0000 1162 Can_BaudrateIdConfig: .space 2 1163 .endo Can_BaudrateIdConfig 000005bc 00000000 1164 Can_DisableInterruptLevel: .space 4 1165 .endo Can_DisableInterruptLevel 000005c0 00000000 1166 Can_ControllerState: .space 4 1167 .endo Can_ControllerState 1168 .section ".rodata","a" 1169 .align 4 00000000 00000000 1170 ____UNNAMED_1_static_in_Can_SetControllerFifoFilter: .space 1024 00000004 00000000 00000008 00000000 0000000c 00000000 Page 22 objs\release\Can.s 00000010 00000000 00000014 00000000 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 0000004c 00000000 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 0000008c 00000000 00000090 00000000 00000094 00000000 00000098 00000000 0000009c 00000000 000000a0 00000000 000000a4 00000000 000000a8 00000000 000000ac 00000000 000000b0 00000000 000000b4 00000000 000000b8 00000000 000000bc 00000000 000000c0 00000000 000000c4 00000000 000000c8 00000000 000000cc 00000000 000000d0 00000000 000000d4 00000000 000000d8 00000000 000000dc 00000000 000000e0 00000000 000000e4 00000000 000000e8 00000000 000000ec 00000000 000000f0 00000000 000000f4 00000000 000000f8 00000000 000000fc 00000000 1171 .endo ____UNNAMED_1_static_in_Can_SetControllerFifoFilter Page 23 objs\release\Can.s 1172 .section ".ghcalltbl","" 00000054 00000000* 1173 .L9584: .data.w .L9583 1174 .endo .L9584 00000058 00000000* 1175 .L9586: .data.w .L9585 1176 .endo .L9586 0000005c 00000000* 1177 .L9588: .data.w .L9587 1178 .endo .L9588 00000060 00000000* 1179 .L9590: .data.w .L9589 1180 .endo .L9590 00000064 00000000* 1181 .L9592: .data.w .L9591 1182 .endo .L9592 00000068 00000000* 1183 .L9594: .data.w .L9593 1184 .endo .L9594 0000006c 00000000* 1185 .L9596: .data.w .L9595 1186 .endo .L9596 00000070 00000000* 1187 .L9598: .data.w .L9597 1188 .endo .L9598 00000074 00000000* 1189 .L9600: .data.w .L9599 1190 .endo .L9600 00000078 00000000* 1191 .L9602: .data.w .L9601 1192 .endo .L9602 0000007c 00000000* 1193 .L9604: .data.w .L9603 1194 .endo .L9604 00000080 00000000* 1195 .L9606: .data.w .L9605 1196 .endo .L9606 00000084 00000000* 1197 .L9608: .data.w .L9607 1198 .endo .L9608 00000088 00000000* 1199 .L9610: .data.w .L9609 1200 .endo .L9610 0000008c 00000000* 1201 .L9612: .data.w .L9611 1202 .endo .L9612 00000090 00000000* 1203 .L9614: .data.w .L9613 1204 .endo .L9614 00000094 00000000* 1205 .L9616: .data.w .L9615 1206 .endo .L9616 00000098 00000000* 1207 .L9618: .data.w .L9617 1208 .endo .L9618 0000009c 00000000* 1209 .L9620: .data.w .L9619 1210 .endo .L9620 000000a0 00000000* 1211 .L9622: .data.w .L9621 1212 .endo .L9622 1213 .section ".ghrettbl","" 00000024 00000000* 1214 .L9624: .data.w .L9623 1215 .endo .L9624 1216 .section ".mcal_code","ax" 1217 .assert 0x0 + (Can_ConfigPtr - Can_DriverStatus) +0 == 4 1218 .assert 0x0 + (Can_ControllerState - Can_DriverStatus) +0 == 1472 1219 .assert 0x0 + (Can_DriverStatus - Can_DriverStatus) +0 == 0 1220 ..gh.f.f.1.a.1.e.7: 1221 .endo ..gh.f.f.1.a.1.e.7 1222 Can_DeInit:: 000007d8 b570 1223 push {r4-r6,lr} 000007da f2400400* 1224 movw r4,%lo(Can_DriverStatus) 000007de f2c00400* 1225 movt r4,%hi(Can_DriverStatus) 000007e2 6821 1226 ldr r1,[r4] 000007e4 2000 1227 movs r0,0 000007e6 2901 1228 cmp r1,1 000007e8 d007* 1229 beq .L9633 000007ea 4602 1230 cpy r2,r0 000007ec 2306 1231 movs r3,6 000007ee 4601 1232 cpy r1,r0 Page 24 objs\release\Can.s 000007f0 205c 1233 movs r0,92 000007f2 e8bd4070 1234 pop {r4-r6,lr} 1235 .L10461: 1236 000007f6 f000b800* 1237 b Det_ReportError 1238 .L9633: 000007fa 6861 1239 ldr r1,[r4,4] 000007fc 688a 1240 ldr r2,[r1,8] 000007fe 4290 1241 cmp r0,r2 00000800 d214* 1242 bhs .L9628 00000802 69cd 1243 ldr r5,[r1,28] 1244 .L9634: 00000804 f8553020 1245 ldr.w r3,[r5,r0 lsl 2] 00000808 b15b* 1246 cbz r3,.L9638 0000080a f8d435c0 1247 ldr.w r3,[r4,1472] 0000080e 2b01 1248 cmp r3,1 00000810 d107* 1249 bne .L9638 00000812 2210 1250 movs r2,16 00000814 2306 1251 movs r3,6 00000816 2100 1252 movs r1,0 00000818 205c 1253 movs r0,92 0000081a e8bd4070 1254 pop {r4-r6,lr} 1255 .L10463: 1256 0000081e f000b800* 1257 b Det_ReportError 1258 .L9638: 00000822 688b 1259 ldr r3,[r1,8] 00000824 1c40 1260 adds r0,r0,1 00000826 b2c0 1261 uxtb r0,r0 00000828 4298 1262 cmp r0,r3 0000082a d3eb* 1263 blo .L9634 1264 .L9628: 0000082c 2600 1265 movs r6,0 0000082e 6026 1266 str r6,[r4] 00000830 4296 1267 cmp r6,r2 00000832 d214* 1268 bhs .L9641 00000834 4635 1269 cpy r5,r6 1270 .L9643: 00000836 69cb 1271 ldr r3,[r1,28] 00000838 0e28 1272 lsrs r0,r5,24 0000083a f8530020 1273 ldr.w r0,[r3,r0 lsl 2] 0000083e b148* 1274 cbz r0,.L9644 00000840 78c3 1275 ldrb r3,[r0,3] 00000842 2b01 1276 cmp r3,1 00000844 d106* 1277 bne .L9644 00000846 7880 1278 ldrb r0,[r0,2] 00000848 f8c465c0 1279 str r6,[r4,1472] 1280 .L10465: 1281 0000084c f000f800* 1282 bl Can_Drv_Deinit 00000850 6861 1283 ldr r1,[r4,4] 00000852 688a 1284 ldr r2,[r1,8] 1285 .L9644: 00000854 f1057580 1286 add r5,r5,1<<24 00000858 ebb26f15 1287 cmp r2,r5 lsr 24 0000085c d8eb* 1288 bhi .L9643 1289 .L9641: 0000085e 6066 1290 str r6,[r4,4] 1291 .L10467: 1292 00000860 bd70 1293 pop {r4-r6,pc} Page 25 objs\release\Can.s 1294 .endf Can_DeInit 1295 ;CtrlId r0 local 1296 ;CanCtrlPtr r0 local 1297 ;CtrlId r0 local 1298 1299 .section ".ghtailcalltbl","" 00000004 00000000* 1300 .L10462: .data.w .L10461 1301 .endo .L10462 00000008 00000000* 1302 .L10464: .data.w .L10463 1303 .endo .L10464 1304 .section ".ghcalltbl","" 000000a4 00000000* 1305 .L10466: .data.w .L10465 1306 .endo .L10466 1307 .section ".ghrettbl","" 00000028 00000000* 1308 .L10468: .data.w .L10467 1309 .endo .L10468 1310 .section ".mcal_code","ax" 1311 .assert 0x0 + (Can_ControllerState - Can_ConfigPtr) +0 == 1468 1312 .assert 0x0 + (Can_InterruptEnableStatus - Can_ConfigPtr) +0 == 4 1313 .assert 0x0 + (Can_ControllerConfigPtr - Can_ConfigPtr) +0 == 8 1314 .assert 0x0 + (Can_ConfigPtr - Can_ConfigPtr) +0 == 0 1315 ..gh.f.f.1.a.1.e.8: 1316 .endo ..gh.f.f.1.a.1.e.8 1317 Can_SetControllerMode:: 00000862 e92d4df0 1318 push {r4-r8,r10-fp,lr} 00000866 b081 1319 sub sp,sp,4 00000868 4607 1320 cpy r7,r0 0000086a 460c 1321 cpy r4,r1 0000086c 2601 1322 movs r6,1 0000086e 2003 1323 movs r0,3 1324 .L12281: 1325 00000870 f7fffbc6* 1326 bl Can_CheckInitialized 00000874 2801 1327 cmp r0,1 00000876 f0408111* 1328 bne .L10471 0000087a 4639 1329 cpy r1,r7 0000087c 2003 1330 movs r0,3 1331 .L12283: 1332 0000087e f7fffbd0* 1333 bl Can_CheckController 00000882 2801 1334 cmp r0,1 00000884 f040810a* 1335 bne .L10471 00000888 f2400500* 1336 movw r5,%lo(Can_ConfigPtr) 0000088c f2c00500* 1337 movt r5,%hi(Can_ConfigPtr) 00000890 6828 1338 ldr r0,[r5] 00000892 69c1 1339 ldr r1,[r0,28] 00000894 f8510027 1340 ldr.w r0,[r1,r7 lsl 2] 00000898 1e61 1341 subs r1,r4,1 0000089a 4680 1342 mov r8,r0 0000089c f0c080f8* 1343 blo .L10523 000008a0 d00c* 1344 beq .L10478 000008a2 2902 1345 cmp r1,2 000008a4 f0c080c1* 1346 blo .L10512 000008a8 f00080d9* 1347 beq .L10517 000008ac 2304 1348 movs r3,4 000008ae 2203 1349 movs r2,3 000008b0 2100 1350 movs r1,0 000008b2 205c 1351 movs r0,92 1352 .L12285: 1353 000008b4 f000f800* 1354 bl Det_ReportError Page 26 objs\release\Can.s 000008b8 4630 1355 cpy r0,r6 000008ba e0f0* 1356 b .L10469 1357 .L10478: 000008bc f8d505bc 1358 ldr.w r0,[r5,1468] 000008c0 2802 1359 cmp r0,2 000008c2 d007* 1360 beq .L10480 000008c4 2306 1361 movs r3,6 000008c6 2203 1362 movs r2,3 000008c8 2100 1363 movs r1,0 000008ca 205c 1364 movs r0,92 1365 .L12287: 1366 000008cc f000f800* 1367 bl Det_ReportError 000008d0 4630 1368 cpy r0,r6 000008d2 e0e4* 1369 b .L10469 1370 .L10480: 000008d4 f8d5a008 1371 ldr.w r10,[r5,8] 000008d8 f8984002 1372 ldrb r4,[r8,2] 000008dc f89a1020 1373 ldrb r1,[r10,32] 000008e0 f04f0b00 1374 mov fp,0 000008e4 458b 1375 cmp fp,r1 000008e6 d24d* 1376 bhs .L10494 1377 .L10484: 000008e8 f8da1024 1378 ldr.w r1,[r10,36] 000008ec ea4f601b 1379 lsr r0,fp,24 000008f0 f8517020 1380 ldr.w r7,[r1,r0 lsl 2] 000008f4 69b9 1381 ldr r1,[r7,24] 000008f6 68b8 1382 ldr r0,[r7,8] 000008f8 0002 1383 movs r2,r0 000008fa bf18 1384 it ne 000008fc 2201 1385 mov r2,1 000008fe b929* 1386 cbnz r1,.L10486 00000900 6978 1387 ldr r0,[r7,20] 00000902 7f39 1388 ldrb r1,[r7,28] 00000904 6803 1389 ldr r3,[r0] 00000906 4620 1390 cpy r0,r4 1391 .L12289: 1392 00000908 f000f800* 1393 bl Can_Drv_ConfigRxMb 1394 .L10486: 0000090c 7b78 1395 ldrb r0,[r7,13] 0000090e bb80* 1396 cbnz r0,.L10493 00000910 69b8 1397 ldr r0,[r7,24] 00000912 1e00 1398 subs r0,r0,0 00000914 d009* 1399 beq .L10488 00000916 2802 1400 cmp r0,2 00000918 d015* 1401 beq .L10489 0000091a f89a1020 1402 ldrb r1,[r10,32] 0000091e f10b7b80 1403 add fp,fp,1<<24 00000922 ebb16f1b 1404 cmp r1,fp lsr 24 00000926 d8df* 1405 bhi .L10484 00000928 e02a* 1406 b .L11282 1407 .L10488: 0000092a 4620 1408 cpy r0,r4 0000092c 2300 1409 movs r3,0 0000092e 461a 1410 cpy r2,r3 00000930 7f39 1411 ldrb r1,[r7,28] 1412 .L12291: 1413 00000932 f000f800* 1414 bl Can_Drv_Receive 00000936 f89a1020 1415 ldrb r1,[r10,32] Page 27 objs\release\Can.s 0000093a f10b7b80 1416 add fp,fp,1<<24 0000093e ebb16f1b 1417 cmp r1,fp lsr 24 00000942 d8d1* 1418 bhi .L10484 00000944 e01c* 1419 b .L11282 1420 .L10489: 00000946 f8da0028 1421 ldr.w r0,[r10,40] 0000094a 6801 1422 ldr r1,[r0] 0000094c 68c9 1423 ldr r1,[r1,12] 0000094e 4620 1424 cpy r0,r4 00000950 2901 1425 cmp r1,1 00000952 d10b* 1426 bne .L10491 00000954 f8da1030 1427 ldr.w r1,[r10,48] 1428 .L12293: 1429 00000958 f000f800* 1430 bl Can_Drv_RxFIFO 0000095c f89a1020 1431 ldrb r1,[r10,32] 00000960 f10b7b80 1432 add fp,fp,1<<24 00000964 ebb16f1b 1433 cmp r1,fp lsr 24 00000968 d8be* 1434 bhi .L10484 0000096a e009* 1435 b .L11282 1436 .L10491: 0000096c 2100 1437 movs r1,0 1438 .L12295: 1439 0000096e f000f800* 1440 bl Can_Drv_RxFIFO 1441 .L10493: 00000972 f89a1020 1442 ldrb r1,[r10,32] 00000976 f10b7b80 1443 add fp,fp,1<<24 0000097a ebb16f1b 1444 cmp r1,fp lsr 24 0000097e d8b3* 1445 bhi .L10484 1446 .L11282: 00000980 f8d5a008 1447 ldr.w r10,[r5,8] 1448 .L10494: 00000984 4620 1449 cpy r0,r4 1450 .L12297: 1451 00000986 f000f800* 1452 bl Can_Drv_SetStartMode 0000098a 4607 1453 cpy r7,r0 0000098c f2400106 1454 movw r1,6 00000990 f2c0013b 1455 movt r1,59 00000994 4620 1456 cpy r0,r4 1457 .L12299: 1458 00000996 f000f800* 1459 bl Can_Drv_ClearErrorStatus 0000099a 7928 1460 ldrb r0,[r5,4] 0000099c 2801 1461 cmp r0,1 0000099e d133* 1462 bne .L10506 000009a0 f89a000c 1463 ldrb r0,[r10,12] 000009a4 2801 1464 cmp r0,1 000009a6 d104* 1465 bne .L10497 000009a8 4620 1466 cpy r0,r4 000009aa 4632 1467 cpy r2,r6 000009ac 4631 1468 cpy r1,r6 1469 .L12301: 1470 000009ae f000f800* 1471 bl Can_Drv_ConfigErrorInterrupt 1472 .L10497: 000009b2 f8da0034 1473 ldr.w r0,[r10,52] 000009b6 f4102f00 1474 tst r0,1<<19 000009ba d006* 1475 beq .L10499 000009bc 4620 1476 cpy r0,r4 Page 28 objs\release\Can.s 000009be 4632 1477 cpy r2,r6 000009c0 210a 1478 movs r1,10 1479 .L12303: 1480 000009c2 f000f800* 1481 bl Can_Drv_ConfigErrorInterrupt 000009c6 f8da0034 1482 ldr.w r0,[r10,52] 1483 .L10499: 000009ca f4102f80 1484 tst r0,1<<18 000009ce d006* 1485 beq .L10501 000009d0 4620 1486 cpy r0,r4 000009d2 4632 1487 cpy r2,r6 000009d4 210b 1488 movs r1,11 1489 .L12305: 1490 000009d6 f000f800* 1491 bl Can_Drv_ConfigErrorInterrupt 000009da f8da0034 1492 ldr.w r0,[r10,52] 1493 .L10501: 000009de f4103f80 1494 tst r0,1<<16 000009e2 d004* 1495 beq .L10503 000009e4 4620 1496 cpy r0,r4 000009e6 4632 1497 cpy r2,r6 000009e8 210c 1498 movs r1,12 1499 .L12307: 1500 000009ea f000f800* 1501 bl Can_Drv_ConfigErrorInterrupt 1502 .L10503: 000009ee f8da0008 1503 ldr.w r0,[r10,8] 000009f2 f0100f02 1504 tst r0,2 000009f6 d104* 1505 bne .L10505 000009f8 4620 1506 cpy r0,r4 000009fa 4632 1507 cpy r2,r6 000009fc 2100 1508 movs r1,0 1509 .L12309: 1510 000009fe f000f800* 1511 bl Can_Drv_ConfigErrorInterrupt 1512 .L10505: 00000a02 4620 1513 cpy r0,r4 1514 .L12311: 1515 00000a04 f000f800* 1516 bl Can_Drv_EnableInterrupts 1517 .L10506: 00000a08 b91f* 1518 cbnz r7,.L10508 00000a0a 4620 1519 cpy r0,r4 1520 .L12313: 1521 00000a0c f000f800* 1522 bl Can_Drv_ManualBusOffRecovery 00000a10 4607 1523 cpy r7,r0 1524 .L10508: 00000a12 b2ff 1525 uxtb r7,r7 00000a14 2f00 1526 cmp r7,0 00000a16 d141* 1527 bne .L10471 00000a18 4631 1528 cpy r1,r6 00000a1a f8c565bc 1529 str r6,[r5,1468] 00000a1e f8980001 1530 ldrb r0,[r8,1] 1531 .L12315: 1532 00000a22 f000f800* 1533 bl CanIf_ControllerModeIndication 00000a26 4638 1534 cpy r0,r7 00000a28 e039* 1535 b .L10469 1536 .L10512: 00000a2a 4604 1537 cpy r4,r0 Page 29 objs\release\Can.s 00000a2c f8d505bc 1538 ldr.w r0,[r5,1468] 00000a30 1e40 1539 subs r0,r0,1 00000a32 d312* 1540 blo .L10516 00000a34 d004* 1541 beq .L10513 00000a36 2802 1542 cmp r0,2 00000a38 bf88 1543 it hi 00000a3a 4630 1544 mov r0,r6 00000a3c d82f* 1545 bhi .L10469 00000a3e e004* 1546 b .L10515 1547 .L10513: 00000a40 78a1 1548 ldrb r1,[r4,2] 00000a42 7820 1549 ldrb r0,[r4] 1550 .L12317: 1551 00000a44 f7fffb0f* 1552 bl Can_SetControllerToStopMode 00000a48 b938* 1553 cbnz r0,.L10516 1554 .L10515: 00000a4a 2102 1555 movs r1,2 00000a4c f8c515bc 1556 str r1,[r5,1468] 00000a50 7860 1557 ldrb r0,[r4,1] 1558 .L12319: 1559 00000a52 f000f800* 1560 bl CanIf_ControllerModeIndication 00000a56 2000 1561 movs r0,0 00000a58 e021* 1562 b .L10469 1563 .L10516: 00000a5a 4630 1564 cpy r0,r6 00000a5c e01f* 1565 b .L10469 1566 .L10517: 00000a5e 4604 1567 cpy r4,r0 00000a60 f8d505bc 1568 ldr.w r0,[r5,1468] 00000a64 2802 1569 cmp r0,2 00000a66 d107* 1570 bne .L10519 00000a68 2103 1571 movs r1,3 00000a6a f8c515bc 1572 str r1,[r5,1468] 00000a6e 7860 1573 ldrb r0,[r4,1] 1574 .L12321: 1575 00000a70 f000f800* 1576 bl CanIf_ControllerModeIndication 00000a74 2000 1577 movs r0,0 00000a76 e012* 1578 b .L10469 1579 .L10519: 00000a78 2803 1580 cmp r0,3 00000a7a bf08 1581 it eq 00000a7c 2000 1582 mov r0,0 00000a7e d00e* 1583 beq .L10469 00000a80 2306 1584 movs r3,6 00000a82 2203 1585 movs r2,3 00000a84 2100 1586 movs r1,0 00000a86 205c 1587 movs r0,92 1588 .L12323: 1589 00000a88 f000f800* 1590 bl Det_ReportError 00000a8c 4630 1591 cpy r0,r6 00000a8e e006* 1592 b .L10469 1593 .L10523: 00000a90 2304 1594 movs r3,4 00000a92 2203 1595 movs r2,3 00000a94 2100 1596 movs r1,0 00000a96 205c 1597 movs r0,92 1598 .L12325: Page 30 objs\release\Can.s 1599 00000a98 f000f800* 1600 bl Det_ReportError 1601 .L10471: 00000a9c 4630 1602 cpy r0,r6 1603 .L10469: 00000a9e b001 1604 add sp,sp,4 1605 .L12327: 1606 00000aa0 e8bd8df0 1607 pop {r4-r8,r10-fp,pc} 1608 .endf Can_SetControllerMode 1609 ;ReturnStatus r6 local 1610 ;CanCtrlPtr r8 local 1611 ;ReturnStatus r6 local 1612 ;HwChannel r4 local 1613 ;ConfigPtr r10 local 1614 ;HwObjIdx r0 local 1615 ;CanHwObjPtr r7 local 1616 ;CanMsgIdType r2 local 1617 ;ReturnVal r7 local 1618 ;ConfigPtr r10 local 1619 ;CanCtrlPtr r4 local 1620 ;ReturnStatus r6 local 1621 ;CanCtrlPtr r4 local 1622 ;ReturnStatus r6 local 1623 1624 ;Controller r7 param 1625 ;Transition r4 param 1626 1627 .section ".ghcalltbl","" 000000a8 00000000* 1628 .L12282: .data.w .L12281 1629 .endo .L12282 000000ac 00000000* 1630 .L12284: .data.w .L12283 1631 .endo .L12284 000000b0 00000000* 1632 .L12286: .data.w .L12285 1633 .endo .L12286 000000b4 00000000* 1634 .L12288: .data.w .L12287 1635 .endo .L12288 000000b8 00000000* 1636 .L12290: .data.w .L12289 1637 .endo .L12290 000000bc 00000000* 1638 .L12292: .data.w .L12291 1639 .endo .L12292 000000c0 00000000* 1640 .L12294: .data.w .L12293 1641 .endo .L12294 000000c4 00000000* 1642 .L12296: .data.w .L12295 1643 .endo .L12296 000000c8 00000000* 1644 .L12298: .data.w .L12297 1645 .endo .L12298 000000cc 00000000* 1646 .L12300: .data.w .L12299 1647 .endo .L12300 000000d0 00000000* 1648 .L12302: .data.w .L12301 1649 .endo .L12302 000000d4 00000000* 1650 .L12304: .data.w .L12303 1651 .endo .L12304 000000d8 00000000* 1652 .L12306: .data.w .L12305 1653 .endo .L12306 000000dc 00000000* 1654 .L12308: .data.w .L12307 1655 .endo .L12308 000000e0 00000000* 1656 .L12310: .data.w .L12309 1657 .endo .L12310 000000e4 00000000* 1658 .L12312: .data.w .L12311 1659 .endo .L12312 Page 31 objs\release\Can.s 000000e8 00000000* 1660 .L12314: .data.w .L12313 1661 .endo .L12314 000000ec 00000000* 1662 .L12316: .data.w .L12315 1663 .endo .L12316 000000f0 00000000* 1664 .L12318: .data.w .L12317 1665 .endo .L12318 000000f4 00000000* 1666 .L12320: .data.w .L12319 1667 .endo .L12320 000000f8 00000000* 1668 .L12322: .data.w .L12321 1669 .endo .L12322 000000fc 00000000* 1670 .L12324: .data.w .L12323 1671 .endo .L12324 00000100 00000000* 1672 .L12326: .data.w .L12325 1673 .endo .L12326 1674 .section ".ghrettbl","" 0000002c 00000000* 1675 .L12328: .data.w .L12327 1676 .endo .L12328 1677 .section ".mcal_code","ax" 1678 .assert 0x0 + (Can_InterruptEnableStatus - Can_ConfigPtr) +0 == 4 1679 .assert 0x0 + (Can_ConfigPtr - Can_ConfigPtr) +0 == 0 1680 .assert 0x0 + (Can_DisableInterruptLevel - Can_ConfigPtr) +0 == 1464 1681 .assert 0x0 + (Can_ControllerConfigPtr - Can_ConfigPtr) +0 == 8 1682 ..gh.f.f.1.a.1.e.9: 1683 .endo ..gh.f.f.1.a.1.e.9 1684 Can_DisableControllerInterrupts:: 00000aa4 b570 1685 push {r4-r6,lr} 00000aa6 4604 1686 cpy r4,r0 00000aa8 2004 1687 movs r0,4 1688 .L12722: 1689 00000aaa f7fffaa9* 1690 bl Can_CheckInitialized 00000aae 2801 1691 cmp r0,1 00000ab0 bf18 1692 it ne 1693 .L12724: 1694 00000ab2 bd70 1695 pop {r4-r6,pc} 00000ab4 4621 1696 cpy r1,r4 00000ab6 2004 1697 movs r0,4 1698 .L12726: 1699 00000ab8 f7fffab3* 1700 bl Can_CheckController 00000abc 2801 1701 cmp r0,1 00000abe bf18 1702 it ne 1703 .L12728: 1704 00000ac0 bd70 1705 pop {r4-r6,pc} 00000ac2 f2400500* 1706 movw r5,%lo(Can_ConfigPtr) 00000ac6 f2c00500* 1707 movt r5,%hi(Can_ConfigPtr) 00000aca 6828 1708 ldr r0,[r5] 00000acc 69c1 1709 ldr r1,[r0,28] 00000ace f8514024 1710 ldr.w r4,[r1,r4 lsl 2] 1711 .L12730: 1712 00000ad2 f000f800* 1713 bl SchM_Enter_Can_DisableIntGlobal 00000ad6 f8d505b8 1714 ldr.w r0,[r5,1464] 00000ada 1c40 1715 adds r0,r0,1 00000adc f8c505b8 1716 str r0,[r5,1464] 1717 .L12732: 1718 00000ae0 f000f800* 1719 bl SchM_Exit_Can_DisableIntGlobal 00000ae4 78a4 1720 ldrb r4,[r4,2] Page 32 objs\release\Can.s 00000ae6 68ae 1721 ldr r6,[r5,8] 00000ae8 7928 1722 ldrb r0,[r5,4] 00000aea 2801 1723 cmp r0,1 00000aec bf18 1724 it ne 1725 .L12734: 1726 00000aee bd70 1727 pop {r4-r6,pc} 00000af0 4620 1728 cpy r0,r4 1729 .L12736: 1730 00000af2 f000f800* 1731 bl Can_Drv_DisableInterrupts 00000af6 7b30 1732 ldrb r0,[r6,12] 00000af8 2801 1733 cmp r0,1 00000afa d104* 1734 bne .L12340 00000afc 4620 1735 cpy r0,r4 00000afe 2200 1736 movs r2,0 00000b00 2101 1737 movs r1,1 1738 .L12738: 1739 00000b02 f000f800* 1740 bl Can_Drv_ConfigErrorInterrupt 1741 .L12340: 00000b06 6b70 1742 ldr r0,[r6,52] 00000b08 f4102f00 1743 tst r0,1<<19 00000b0c d005* 1744 beq .L12342 00000b0e 4620 1745 cpy r0,r4 00000b10 2200 1746 movs r2,0 00000b12 210a 1747 movs r1,10 1748 .L12740: 1749 00000b14 f000f800* 1750 bl Can_Drv_ConfigErrorInterrupt 00000b18 6b70 1751 ldr r0,[r6,52] 1752 .L12342: 00000b1a f4102f80 1753 tst r0,1<<18 00000b1e d005* 1754 beq .L12344 00000b20 4620 1755 cpy r0,r4 00000b22 2200 1756 movs r2,0 00000b24 210b 1757 movs r1,11 1758 .L12742: 1759 00000b26 f000f800* 1760 bl Can_Drv_ConfigErrorInterrupt 00000b2a 6b70 1761 ldr r0,[r6,52] 1762 .L12344: 00000b2c f4103f80 1763 tst r0,1<<16 00000b30 d004* 1764 beq .L12346 00000b32 4620 1765 cpy r0,r4 00000b34 2200 1766 movs r2,0 00000b36 210c 1767 movs r1,12 1768 .L12744: 1769 00000b38 f000f800* 1770 bl Can_Drv_ConfigErrorInterrupt 1771 .L12346: 00000b3c 68b0 1772 ldr r0,[r6,8] 00000b3e f0100f02 1773 tst r0,2 00000b42 d104* 1774 bne .L12348 00000b44 4620 1775 cpy r0,r4 00000b46 2200 1776 movs r2,0 00000b48 4611 1777 cpy r1,r2 1778 .L12746: 1779 00000b4a f000f800* 1780 bl Can_Drv_ConfigErrorInterrupt 1781 .L12348: Page 33 objs\release\Can.s 00000b4e 2000 1782 movs r0,0 00000b50 7128 1783 strb r0,[r5,4] 1784 .L12748: 1785 00000b52 bd70 1786 pop {r4-r6,pc} 1787 .endf Can_DisableControllerInterrupts 1788 ;CanCtrlPtr r4 local 1789 ;HwChannel r4 local 1790 ;ConfigPtr r6 local 1791 1792 ;Controller r4 param 1793 1794 .section ".ghcalltbl","" 00000104 00000000* 1795 .L12723: .data.w .L12722 1796 .endo .L12723 1797 .section ".ghrettbl","" 00000030 00000000* 1798 .L12725: .data.w .L12724 1799 .endo .L12725 1800 .section ".ghcalltbl","" 00000108 00000000* 1801 .L12727: .data.w .L12726 1802 .endo .L12727 1803 .section ".ghrettbl","" 00000034 00000000* 1804 .L12729: .data.w .L12728 1805 .endo .L12729 1806 .section ".ghcalltbl","" 0000010c 00000000* 1807 .L12731: .data.w .L12730 1808 .endo .L12731 00000110 00000000* 1809 .L12733: .data.w .L12732 1810 .endo .L12733 1811 .section ".ghrettbl","" 00000038 00000000* 1812 .L12735: .data.w .L12734 1813 .endo .L12735 1814 .section ".ghcalltbl","" 00000114 00000000* 1815 .L12737: .data.w .L12736 1816 .endo .L12737 00000118 00000000* 1817 .L12739: .data.w .L12738 1818 .endo .L12739 0000011c 00000000* 1819 .L12741: .data.w .L12740 1820 .endo .L12741 00000120 00000000* 1821 .L12743: .data.w .L12742 1822 .endo .L12743 00000124 00000000* 1823 .L12745: .data.w .L12744 1824 .endo .L12745 00000128 00000000* 1825 .L12747: .data.w .L12746 1826 .endo .L12747 1827 .section ".ghrettbl","" 0000003c 00000000* 1828 .L12749: .data.w .L12748 1829 .endo .L12749 1830 .section ".mcal_code","ax" 1831 .assert 0x0 + (Can_InterruptEnableStatus - Can_ConfigPtr) +0 == 4 1832 .assert 0x0 + (Can_ControllerConfigPtr - Can_ConfigPtr) +0 == 8 1833 .assert 0x0 + (Can_DisableInterruptLevel - Can_ConfigPtr) +0 == 1464 1834 .assert 0x0 + (Can_ConfigPtr - Can_ConfigPtr) +0 == 0 1835 ..gh.f.f.1.a.1.e.10: 1836 .endo ..gh.f.f.1.a.1.e.10 1837 Can_EnableControllerInterrupts:: 00000b54 b570 1838 push {r4-r6,lr} 00000b56 4604 1839 cpy r4,r0 00000b58 2005 1840 movs r0,5 1841 .L13224: 1842 Page 34 objs\release\Can.s 00000b5a f7fffa51* 1843 bl Can_CheckInitialized 00000b5e 2801 1844 cmp r0,1 00000b60 bf18 1845 it ne 1846 .L13226: 1847 00000b62 bd70 1848 pop {r4-r6,pc} 00000b64 4621 1849 cpy r1,r4 00000b66 2005 1850 movs r0,5 1851 .L13228: 1852 00000b68 f7fffa5b* 1853 bl Can_CheckController 00000b6c 2801 1854 cmp r0,1 00000b6e bf18 1855 it ne 1856 .L13230: 1857 00000b70 bd70 1858 pop {r4-r6,pc} 00000b72 f2400500* 1859 movw r5,%lo(Can_ConfigPtr) 00000b76 f2c00500* 1860 movt r5,%hi(Can_ConfigPtr) 00000b7a 6828 1861 ldr r0,[r5] 00000b7c 69c1 1862 ldr r1,[r0,28] 00000b7e f8514024 1863 ldr.w r4,[r1,r4 lsl 2] 1864 .L13232: 1865 00000b82 f000f800* 1866 bl SchM_Enter_Can_DisableIntGlobal 00000b86 f8d505b8 1867 ldr.w r0,[r5,1464] 00000b8a 1e40 1868 subs r0,r0,1 00000b8c bf28 1869 it hs 00000b8e f8c505b8 1870 str r0,[r5,1464] 1871 .L13234: 1872 00000b92 f000f800* 1873 bl SchM_Exit_Can_DisableIntGlobal 00000b96 f8d505b8 1874 ldr.w r0,[r5,1464] 00000b9a 2800 1875 cmp r0,0 00000b9c bf18 1876 it ne 1877 .L13236: 1878 00000b9e bd70 1879 pop {r4-r6,pc} 00000ba0 78a4 1880 ldrb r4,[r4,2] 00000ba2 68ae 1881 ldr r6,[r5,8] 00000ba4 7928 1882 ldrb r0,[r5,4] 00000ba6 2800 1883 cmp r0,0 00000ba8 bf18 1884 it ne 1885 .L13238: 1886 00000baa bd70 1887 pop {r4-r6,pc} 00000bac 4620 1888 cpy r0,r4 1889 .L13240: 1890 00000bae f000f800* 1891 bl Can_Drv_EnableInterrupts 00000bb2 7b30 1892 ldrb r0,[r6,12] 00000bb4 2801 1893 cmp r0,1 00000bb6 d104* 1894 bne .L12765 00000bb8 4620 1895 cpy r0,r4 00000bba 2201 1896 movs r2,1 00000bbc 4611 1897 cpy r1,r2 1898 .L13242: 1899 00000bbe f000f800* 1900 bl Can_Drv_ConfigErrorInterrupt 1901 .L12765: 00000bc2 6b70 1902 ldr r0,[r6,52] 00000bc4 f4102f00 1903 tst r0,1<<19 Page 35 objs\release\Can.s 00000bc8 d005* 1904 beq .L12767 00000bca 4620 1905 cpy r0,r4 00000bcc 2201 1906 movs r2,1 00000bce 210a 1907 movs r1,10 1908 .L13244: 1909 00000bd0 f000f800* 1910 bl Can_Drv_ConfigErrorInterrupt 00000bd4 6b70 1911 ldr r0,[r6,52] 1912 .L12767: 00000bd6 f4102f80 1913 tst r0,1<<18 00000bda d005* 1914 beq .L12769 00000bdc 4620 1915 cpy r0,r4 00000bde 2201 1916 movs r2,1 00000be0 210b 1917 movs r1,11 1918 .L13246: 1919 00000be2 f000f800* 1920 bl Can_Drv_ConfigErrorInterrupt 00000be6 6b70 1921 ldr r0,[r6,52] 1922 .L12769: 00000be8 f4103f80 1923 tst r0,1<<16 00000bec d004* 1924 beq .L12771 00000bee 4620 1925 cpy r0,r4 00000bf0 2201 1926 movs r2,1 00000bf2 210c 1927 movs r1,12 1928 .L13248: 1929 00000bf4 f000f800* 1930 bl Can_Drv_ConfigErrorInterrupt 1931 .L12771: 00000bf8 68b0 1932 ldr r0,[r6,8] 00000bfa f0100f02 1933 tst r0,2 00000bfe d104* 1934 bne .L12773 00000c00 4620 1935 cpy r0,r4 00000c02 2201 1936 movs r2,1 00000c04 2100 1937 movs r1,0 1938 .L13250: 1939 00000c06 f000f800* 1940 bl Can_Drv_ConfigErrorInterrupt 1941 .L12773: 00000c0a 2001 1942 movs r0,1 00000c0c 7128 1943 strb r0,[r5,4] 1944 .L13252: 1945 00000c0e bd70 1946 pop {r4-r6,pc} 1947 .endf Can_EnableControllerInterrupts 1948 ;CanCtrlPtr r4 local 1949 ;HwChannel r4 local 1950 ;ConfigPtr r6 local 1951 1952 ;Controller r4 param 1953 1954 .section ".ghcalltbl","" 0000012c 00000000* 1955 .L13225: .data.w .L13224 1956 .endo .L13225 1957 .section ".ghrettbl","" 00000040 00000000* 1958 .L13227: .data.w .L13226 1959 .endo .L13227 1960 .section ".ghcalltbl","" 00000130 00000000* 1961 .L13229: .data.w .L13228 1962 .endo .L13229 1963 .section ".ghrettbl","" 00000044 00000000* 1964 .L13231: .data.w .L13230 Page 36 objs\release\Can.s 1965 .endo .L13231 1966 .section ".ghcalltbl","" 00000134 00000000* 1967 .L13233: .data.w .L13232 1968 .endo .L13233 00000138 00000000* 1969 .L13235: .data.w .L13234 1970 .endo .L13235 1971 .section ".ghrettbl","" 00000048 00000000* 1972 .L13237: .data.w .L13236 1973 .endo .L13237 0000004c 00000000* 1974 .L13239: .data.w .L13238 1975 .endo .L13239 1976 .section ".ghcalltbl","" 0000013c 00000000* 1977 .L13241: .data.w .L13240 1978 .endo .L13241 00000140 00000000* 1979 .L13243: .data.w .L13242 1980 .endo .L13243 00000144 00000000* 1981 .L13245: .data.w .L13244 1982 .endo .L13245 00000148 00000000* 1983 .L13247: .data.w .L13246 1984 .endo .L13247 0000014c 00000000* 1985 .L13249: .data.w .L13248 1986 .endo .L13249 00000150 00000000* 1987 .L13251: .data.w .L13250 1988 .endo .L13251 1989 .section ".ghrettbl","" 00000050 00000000* 1990 .L13253: .data.w .L13252 1991 .endo .L13253 1992 .section ".mcal_code","ax" 1993 .assert 0x0 + (Can_ConfigPtr - Can_ConfigPtr) +0 == 0 1994 .assert 0x0 + (Can_ControllerConfigPtr - Can_ConfigPtr) +0 == 8 1995 ..gh.f.f.1.a.1.e.11: 1996 .endo ..gh.f.f.1.a.1.e.11 1997 Can_GetControllerErrorState:: 00000c10 e92d44f0 1998 push {r4-r7,r10,lr} 00000c14 4605 1999 cpy r5,r0 00000c16 460f 2000 cpy r7,r1 00000c18 2401 2001 movs r4,1 00000c1a 2011 2002 movs r0,17 2003 .L13981: 2004 00000c1c f7fff9f0* 2005 bl Can_CheckInitialized 00000c20 2801 2006 cmp r0,1 00000c22 d139* 2007 bne .L13256 00000c24 4629 2008 cpy r1,r5 00000c26 2011 2009 movs r0,17 2010 .L13983: 2011 00000c28 f7fff9fb* 2012 bl Can_CheckController 00000c2c 2801 2013 cmp r0,1 00000c2e d133* 2014 bne .L13256 00000c30 0039 2015 movs r1,r7 00000c32 d107* 2016 bne .L13261 00000c34 4603 2017 cpy r3,r0 00000c36 2211 2018 movs r2,17 00000c38 205c 2019 movs r0,92 2020 .L13985: 2021 00000c3a f000f800* 2022 bl Det_ReportError 00000c3e 4620 2023 cpy r0,r4 2024 .L13987: 2025 Page 37 objs\release\Can.s 00000c40 e8bd84f0 2026 pop {r4-r7,r10,pc} 2027 .L13261: 00000c44 f2400100* 2028 movw r1,%lo(Can_ConfigPtr) 00000c48 f2c00100* 2029 movt r1,%hi(Can_ConfigPtr) 00000c4c 6808 2030 ldr r0,[r1] 00000c4e 69c2 2031 ldr r2,[r0,28] 00000c50 f8520025 2032 ldr.w r0,[r2,r5 lsl 2] 00000c54 f8d1a008 2033 ldr.w r10,[r1,8] 00000c58 7886 2034 ldrb r6,[r0,2] 00000c5a 4630 2035 cpy r0,r6 2036 .L13989: 2037 00000c5c f000f800* 2038 bl Can_Drv_GetControllerRxErrorCounter 00000c60 4604 2039 cpy r4,r0 00000c62 4630 2040 cpy r0,r6 2041 .L13991: 2042 00000c64 f000f800* 2043 bl Can_Drv_GetControllerTxErrorCounter 00000c68 4605 2044 cpy r5,r0 00000c6a 4630 2045 cpy r0,r6 2046 .L13993: 2047 00000c6c f000f800* 2048 bl Can_Drv_GetControllerErrorState 00000c70 0006 2049 movs r6,r0 00000c72 bf04 2050 itt eq 00000c74 6038 2051 str r0,[r7] 2052 .L13995: 2053 00000c76 e8bd84f0 2054 pop {r4-r7,r10,pc} 00000c7a 2e01 2055 cmp r6,1 00000c7c d109* 2056 bne .L13274 00000c7e b2aa 2057 uxth r2,r5 00000c80 b2a1 2058 uxth r1,r4 00000c82 f89a0001 2059 ldrb r0,[r10,1] 2060 .L13997: 2061 00000c86 f000f800* 2062 bl CanIf_ControllerErrorStatePassive 00000c8a 603e 2063 str r6,[r7] 00000c8c 2000 2064 movs r0,0 2065 .L13999: 2066 00000c8e e8bd84f0 2067 pop {r4-r7,r10,pc} 2068 .L13274: 00000c92 2002 2069 movs r0,2 00000c94 6038 2070 str r0,[r7] 00000c96 2400 2071 movs r4,0 2072 .L13256: 00000c98 4620 2073 cpy r0,r4 2074 .L14001: 2075 00000c9a e8bd84f0 2076 pop {r4-r7,r10,pc} 2077 .endf Can_GetControllerErrorState 2078 ;ReturnStatus r4 local 2079 ;HwChannel r6 local 2080 ;ReturnVal r6 local 2081 ;ConfigPtr r10 local 2082 ;Temp r6 local 2083 ;RxCount r4 local 2084 ;TxCount r5 local 2085 2086 ;Controller r5 param Page 38 objs\release\Can.s 2087 ;ErrorStatePtr r7 param 2088 2089 .section ".ghcalltbl","" 00000154 00000000* 2090 .L13982: .data.w .L13981 2091 .endo .L13982 00000158 00000000* 2092 .L13984: .data.w .L13983 2093 .endo .L13984 0000015c 00000000* 2094 .L13986: .data.w .L13985 2095 .endo .L13986 2096 .section ".ghrettbl","" 00000054 00000000* 2097 .L13988: .data.w .L13987 2098 .endo .L13988 2099 .section ".ghcalltbl","" 00000160 00000000* 2100 .L13990: .data.w .L13989 2101 .endo .L13990 00000164 00000000* 2102 .L13992: .data.w .L13991 2103 .endo .L13992 00000168 00000000* 2104 .L13994: .data.w .L13993 2105 .endo .L13994 2106 .section ".ghrettbl","" 00000058 00000000* 2107 .L13996: .data.w .L13995 2108 .endo .L13996 2109 .section ".ghcalltbl","" 0000016c 00000000* 2110 .L13998: .data.w .L13997 2111 .endo .L13998 2112 .section ".ghrettbl","" 0000005c 00000000* 2113 .L14000: .data.w .L13999 2114 .endo .L14000 00000060 00000000* 2115 .L14002: .data.w .L14001 2116 .endo .L14002 2117 .section ".mcal_code","ax" 2118 ..gh.f.f.1.a.1.e.12: 2119 .endo ..gh.f.f.1.a.1.e.12 2120 Can_GetControllerRxErrorCounter:: 00000c9e b570 2121 push {r4-r6,lr} 00000ca0 4604 2122 cpy r4,r0 00000ca2 460e 2123 cpy r6,r1 00000ca4 2501 2124 movs r5,1 00000ca6 2030 2125 movs r0,48 2126 .L14177: 2127 00000ca8 f7fff9aa* 2128 bl Can_CheckInitialized 00000cac 2801 2129 cmp r0,1 00000cae d118* 2130 bne .L14005 00000cb0 4621 2131 cpy r1,r4 00000cb2 2030 2132 movs r0,48 2133 .L14179: 2134 00000cb4 f7fff9b5* 2135 bl Can_CheckController 00000cb8 2801 2136 cmp r0,1 00000cba d112* 2137 bne .L14005 00000cbc 4631 2138 cpy r1,r6 00000cbe 2030 2139 movs r0,48 2140 .L14181: 2141 00000cc0 f7fff9c3* 2142 bl Can_CheckGetControllerErrorCounter 00000cc4 2801 2143 cmp r0,1 00000cc6 d10c* 2144 bne .L14005 00000cc8 f2400100* 2145 movw r1,%lo(Can_ConfigPtr) 00000ccc f2c00100* 2146 movt r1,%hi(Can_ConfigPtr) 00000cd0 6808 2147 ldr r0,[r1] Page 39 objs\release\Can.s 00000cd2 69c1 2148 ldr r1,[r0,28] 00000cd4 f8510024 2149 ldr.w r0,[r1,r4 lsl 2] 00000cd8 7880 2150 ldrb r0,[r0,2] 2151 .L14183: 2152 00000cda f000f800* 2153 bl Can_Drv_GetControllerRxErrorCounter 00000cde 7030 2154 strb r0,[r6] 00000ce0 2500 2155 movs r5,0 2156 .L14005: 00000ce2 4628 2157 cpy r0,r5 2158 .L14185: 2159 00000ce4 bd70 2160 pop {r4-r6,pc} 2161 .endf Can_GetControllerRxErrorCounter 2162 ;ReturnStatus r5 local 2163 ;CanCtrlPtr r0 local 2164 2165 ;Controller r4 param 2166 ;RxErrorCounterPtr r6 param 2167 2168 .section ".ghcalltbl","" 00000170 00000000* 2169 .L14178: .data.w .L14177 2170 .endo .L14178 00000174 00000000* 2171 .L14180: .data.w .L14179 2172 .endo .L14180 00000178 00000000* 2173 .L14182: .data.w .L14181 2174 .endo .L14182 0000017c 00000000* 2175 .L14184: .data.w .L14183 2176 .endo .L14184 2177 .section ".ghrettbl","" 00000064 00000000* 2178 .L14186: .data.w .L14185 2179 .endo .L14186 2180 .section ".mcal_code","ax" 2181 ..gh.f.f.1.a.1.e.13: 2182 .endo ..gh.f.f.1.a.1.e.13 2183 Can_GetControllerTxErrorCounter:: 00000ce6 b570 2184 push {r4-r6,lr} 00000ce8 4604 2185 cpy r4,r0 00000cea 460e 2186 cpy r6,r1 00000cec 2501 2187 movs r5,1 00000cee 2031 2188 movs r0,49 2189 .L14369: 2190 00000cf0 f7fff986* 2191 bl Can_CheckInitialized 00000cf4 2801 2192 cmp r0,1 00000cf6 d118* 2193 bne .L14189 00000cf8 4621 2194 cpy r1,r4 00000cfa 2031 2195 movs r0,49 2196 .L14371: 2197 00000cfc f7fff991* 2198 bl Can_CheckController 00000d00 2801 2199 cmp r0,1 00000d02 d112* 2200 bne .L14189 00000d04 4631 2201 cpy r1,r6 00000d06 2031 2202 movs r0,49 2203 .L14373: 2204 00000d08 f7fff99f* 2205 bl Can_CheckGetControllerErrorCounter 00000d0c 2801 2206 cmp r0,1 00000d0e d10c* 2207 bne .L14189 00000d10 f2400100* 2208 movw r1,%lo(Can_ConfigPtr) Page 40 objs\release\Can.s 00000d14 f2c00100* 2209 movt r1,%hi(Can_ConfigPtr) 00000d18 6808 2210 ldr r0,[r1] 00000d1a 69c1 2211 ldr r1,[r0,28] 00000d1c f8510024 2212 ldr.w r0,[r1,r4 lsl 2] 00000d20 7880 2213 ldrb r0,[r0,2] 2214 .L14375: 2215 00000d22 f000f800* 2216 bl Can_Drv_GetControllerTxErrorCounter 00000d26 7030 2217 strb r0,[r6] 00000d28 2500 2218 movs r5,0 2219 .L14189: 00000d2a 4628 2220 cpy r0,r5 2221 .L14377: 2222 00000d2c bd70 2223 pop {r4-r6,pc} 2224 .endf Can_GetControllerTxErrorCounter 2225 ;ReturnStatus r5 local 2226 ;CanCtrlPtr r0 local 2227 2228 ;Controller r4 param 2229 ;TxErrorCounterPtr r6 param 2230 2231 .section ".ghcalltbl","" 00000180 00000000* 2232 .L14370: .data.w .L14369 2233 .endo .L14370 00000184 00000000* 2234 .L14372: .data.w .L14371 2235 .endo .L14372 00000188 00000000* 2236 .L14374: .data.w .L14373 2237 .endo .L14374 0000018c 00000000* 2238 .L14376: .data.w .L14375 2239 .endo .L14376 2240 .section ".ghrettbl","" 00000068 00000000* 2241 .L14378: .data.w .L14377 2242 .endo .L14378 2243 .section ".mcal_code","ax" 2244 ..gh.f.f.1.a.1.e.14: 2245 .endo ..gh.f.f.1.a.1.e.14 2246 Can_GetControllerMode:: 00000d2e b570 2247 push {r4-r6,lr} 00000d30 4606 2248 cpy r6,r0 00000d32 460d 2249 cpy r5,r1 00000d34 2401 2250 movs r4,1 00000d36 2012 2251 movs r0,18 2252 .L14597: 2253 00000d38 f7fff962* 2254 bl Can_CheckInitialized 00000d3c 2801 2255 cmp r0,1 00000d3e d114* 2256 bne .L14379 00000d40 4631 2257 cpy r1,r6 00000d42 2012 2258 movs r0,18 2259 .L14599: 2260 00000d44 f7fff96d* 2261 bl Can_CheckController 00000d48 2801 2262 cmp r0,1 00000d4a d10e* 2263 bne .L14379 00000d4c 0029 2264 movs r1,r5 00000d4e d105* 2265 bne .L14386 00000d50 4603 2266 cpy r3,r0 00000d52 2212 2267 movs r2,18 00000d54 205c 2268 movs r0,92 2269 .L14601: Page 41 objs\release\Can.s 2270 00000d56 f000f800* 2271 bl Det_ReportError 00000d5a e006* 2272 b .L14379 2273 .L14386: 00000d5c f2400100* 2274 movw r1,%lo(Can_ControllerState) 00000d60 f2c00100* 2275 movt r1,%hi(Can_ControllerState) 00000d64 6808 2276 ldr r0,[r1] 00000d66 2400 2277 movs r4,0 00000d68 6028 2278 str r0,[r5] 2279 .L14379: 00000d6a 4620 2280 cpy r0,r4 2281 .L14603: 2282 00000d6c bd70 2283 pop {r4-r6,pc} 2284 .endf Can_GetControllerMode 2285 ;ReturnStatus r4 local 2286 2287 ;Controller r6 param 2288 ;ControllerModePtr r5 param 2289 2290 .section ".ghcalltbl","" 00000190 00000000* 2291 .L14598: .data.w .L14597 2292 .endo .L14598 00000194 00000000* 2293 .L14600: .data.w .L14599 2294 .endo .L14600 00000198 00000000* 2295 .L14602: .data.w .L14601 2296 .endo .L14602 2297 .section ".ghrettbl","" 0000006c 00000000* 2298 .L14604: .data.w .L14603 2299 .endo .L14604 2300 .section ".mcal_code","ax" 2301 .assert 0x0 + (Can_TxPduId - Can_ConfigPtr) +0 == 1472 2302 .assert 0x0 + (Can_HwObjectConfigPtr - Can_ConfigPtr) +0 == 12 2303 .assert 0x0 + (Can_ControllerState - Can_ConfigPtr) +0 == 1468 2304 .assert 0x0 + (Can_BaudrateIdConfig - Can_ConfigPtr) +0 == 1462 2305 .assert 0x0 + (Can_ConfigPtr - Can_ConfigPtr) +0 == 0 2306 ..gh.f.f.1.a.1.e.15: 2307 .endo ..gh.f.f.1.a.1.e.15 2308 Can_Write:: 00000d6e e92d4ff0 2309 push {r4-fp,lr} 00000d72 b086 2310 sub sp,sp,24 00000d74 4680 2311 mov r8,r0 00000d76 4605 2312 cpy r5,r0 00000d78 460e 2313 cpy r6,r1 00000d7a 2401 2314 movs r4,1 00000d7c 2006 2315 movs r0,6 2316 .L15667: 2317 00000d7e f7fff93f* 2318 bl Can_CheckInitialized 00000d82 2801 2319 cmp r0,1 00000d84 f040809f* 2320 bne .L14605 00000d88 f2400b00* 2321 movw fp,%lo(Can_ConfigPtr) 00000d8c f2c00b00* 2322 movt fp,%hi(Can_ConfigPtr) 00000d90 f8db2000 2323 ldr.w r2,[fp] 00000d94 6911 2324 ldr r1,[r2,16] 00000d96 428d 2325 cmp r5,r1 00000d98 d204* 2326 bhs .L14615 00000d9a 7911 2327 ldrb r1,[r2,4] 00000d9c fa5ff088 2328 uxtb r0,r8 00000da0 4288 2329 cmp r0,r1 00000da2 d206* 2330 bhs .L14616 Page 42 objs\release\Can.s 2331 .L14615: 00000da4 2302 2332 movs r3,2 00000da6 2206 2333 movs r2,6 00000da8 2100 2334 movs r1,0 00000daa 205c 2335 movs r0,92 2336 .L15669: 2337 00000dac f000f800* 2338 bl Det_ReportError 00000db0 e089* 2339 b .L14605 2340 .L14616: 00000db2 0031 2341 movs r1,r6 00000db4 d105* 2342 bne .L14610 00000db6 4623 2343 cpy r3,r4 00000db8 2206 2344 movs r2,6 00000dba 205c 2345 movs r0,92 2346 .L15671: 2347 00000dbc f000f800* 2348 bl Det_ReportError 00000dc0 e081* 2349 b .L14605 2350 .L14610: 00000dc2 6951 2351 ldr r1,[r2,20] 00000dc4 fa5ff088 2352 uxtb r0,r8 00000dc8 69d3 2353 ldr r3,[r2,28] 00000dca 5c09 2354 ldrb r1,[r1,r0] 00000dcc f8531021 2355 ldr.w r1,[r3,r1 lsl 2] 00000dd0 2900 2356 cmp r1,0 00000dd2 d078* 2357 beq .L14605 00000dd4 6992 2358 ldr r2,[r2,24] 00000dd6 f8bb35b6 2359 ldrh r3,[fp,1462] 00000dda eb021740 2360 add r7,r2,r0 lsl 5 00000dde 78b2 2361 ldrb r2,[r6,2] 00000de0 69c8 2362 ldr r0,[r1,28] 00000de2 ebc30383 2363 rsb r3,r3,r3 lsl 2 00000de6 eb0003c3 2364 add r3,r0,r3 lsl 3 00000dea 7a9b 2365 ldrb r3,[r3,10] 00000dec 2b01 2366 cmp r3,1 00000dee d113* 2367 bne .L14632 00000df0 7c7b 2368 ldrb r3,[r7,17] 00000df2 429a 2369 cmp r2,r3 00000df4 d812* 2370 bhi .L14635 00000df6 2a08 2371 cmp r2,8 00000df8 d903* 2372 bls .L14636 00000dfa 6873 2373 ldr r3,[r6,4] 00000dfc f0134f80 2374 tst r3,1<<30 00000e00 d00c* 2375 beq .L14635 2376 .L14636: 00000e02 68b3 2377 ldr r3,[r6,8] 00000e04 b98b* 2378 cbnz r3,.L14624 00000e06 7bbb 2379 ldrb r3,[r7,14] 00000e08 b97b* 2380 cbnz r3,.L14624 00000e0a 4623 2381 cpy r3,r4 00000e0c 2206 2382 movs r2,6 00000e0e 2100 2383 movs r1,0 00000e10 205c 2384 movs r0,92 2385 .L15673: 2386 00000e12 f000f800* 2387 bl Det_ReportError 00000e16 e056* 2388 b .L14605 2389 .L14632: 00000e18 2a08 2390 cmp r2,8 00000e1a d9f2* 2391 bls .L14636 Page 43 objs\release\Can.s 2392 .L14635: 00000e1c 2303 2393 movs r3,3 00000e1e 2206 2394 movs r2,6 00000e20 2100 2395 movs r1,0 00000e22 205c 2396 movs r0,92 2397 .L15675: 2398 00000e24 f000f800* 2399 bl Det_ReportError 00000e28 e04d* 2400 b .L14605 2401 .L14624: 00000e2a f8db35bc 2402 ldr.w r3,[fp,1468] 00000e2e 2b01 2403 cmp r3,1 00000e30 d149* 2404 bne .L14605 00000e32 f8919000 2405 ldrb r9,[r1] 00000e36 f891a002 2406 ldrb r10,[r1,2] 00000e3a f2400000* 2407 movw r0,%lo(Can_HwObjectConfigPtr) 00000e3e f2c00000* 2408 movt r0,%hi(Can_HwObjectConfigPtr) 00000e42 fa5ff188 2409 uxtb r1,r8 00000e46 f8407021 2410 str r7,[r0,r1 lsl 2] 00000e4a 69b9 2411 ldr r1,[r7,24] 00000e4c 2901 2412 cmp r1,1 00000e4e d137* 2413 bne .L14653 00000e50 6871 2414 ldr r1,[r6,4] 00000e52 f88d2010 2415 strb r2,[sp,16] 00000e56 0fc9 2416 lsrs r1,r1,31 00000e58 9103 2417 str r1,[sp,12] 00000e5a 2500 2418 movs r5,0 00000e5c f88d5011 2419 strb r5,[sp,17] 2420 .L14646: 00000e60 7f39 2421 ldrb r1,[r7,28] 00000e62 0e2c 2422 lsrs r4,r5,24 00000e64 4650 2423 mov r0,r10 00000e66 4421 2424 add r1,r1,r4 00000e68 b2c9 2425 uxtb r1,r1 2426 .L15677: 2427 00000e6a f000f800* 2428 bl Can_Drv_GetTransferStatus 00000e6e b9d8* 2429 cbnz r0,.L14648 00000e70 7f39 2430 ldrb r1,[r7,28] 00000e72 8830 2431 ldrh r0,[r6] 00000e74 f8d6c008 2432 ldr.w r12,[r6,8] 00000e78 f50b63b8 2433 add r3,fp,0x05c0 00000e7c 4421 2434 add r1,r1,r4 00000e7e b2c9 2435 uxtb r1,r1 00000e80 eb0112c9 2436 add r2,r1,r9 lsl 7 00000e84 0052 2437 lsls r2,r2,1 00000e86 52d0 2438 strh r0,[r2,r3] 00000e88 fa5ff288 2439 uxtb r2,r8 00000e8c 6873 2440 ldr r3,[r6,4] 00000e8e e88d1008 2441 stm sp,{r3,r12} 00000e92 f2400000* 2442 movw r0,%lo(Can_HwObjectConfigPtr) 00000e96 f2c00000* 2443 movt r0,%hi(Can_HwObjectConfigPtr) 00000e9a f8503022 2444 ldr.w r3,[r0,r2 lsl 2] 00000e9e aa03 2445 add r2,sp,12 00000ea0 4650 2446 mov r0,r10 00000ea2 7b5b 2447 ldrb r3,[r3,13] 2448 .L15679: 2449 00000ea4 f000f800* 2450 bl Can_Drv_SendData 2451 .L14648: 00000ea8 7c3a 2452 ldrb r2,[r7,16] Page 44 objs\release\Can.s 00000eaa f1057580 2453 add r5,r5,1<<24 00000eae ebb26f15 2454 cmp r2,r5 lsr 24 00000eb2 d902* 2455 bls .L14651 00000eb4 b2c1 2456 uxtb r1,r0 00000eb6 2902 2457 cmp r1,2 00000eb8 d0d2* 2458 beq .L14646 2459 .L14651: 00000eba b118* 2460 cbz r0,.L14642 00000ebc b2c1 2461 uxtb r1,r0 00000ebe 2902 2462 cmp r1,2 2463 .L14653: 00000ec0 bf18 2464 it ne 00000ec2 2001 2465 mov r0,1 2466 .L14642: 00000ec4 b2c4 2467 uxtb r4,r0 2468 .L14605: 00000ec6 4620 2469 cpy r0,r4 00000ec8 b006 2470 add sp,sp,24 2471 .L15681: 2472 00000eca e8bd8ff0 2473 pop {r4-fp,pc} 2474 .endf Can_Write 2475 ;ReturnStatus r4 local 2476 ;CanHwObjPtr r7 local 2477 ;CanObjConfigPtr r1 local 2478 ;ControllerId r9 local 2479 ;HwChannel r10 local 2480 ;MessageInfo [sp,12] local 2481 ;ReturnVal r0 local 2482 ;ObjIndx r1 local 2483 2484 ;Hth r8 param 2485 ;PduInfo r6 param 2486 2487 .section ".mcal_bss","awb" 000005c4 00000000 2488 Can_TxPduId: .space 256 000005c8 00000000 000005cc 00000000 000005d0 00000000 000005d4 00000000 000005d8 00000000 000005dc 00000000 000005e0 00000000 000005e4 00000000 000005e8 00000000 000005ec 00000000 000005f0 00000000 000005f4 00000000 000005f8 00000000 000005fc 00000000 00000600 00000000 00000604 00000000 00000608 00000000 0000060c 00000000 00000610 00000000 00000614 00000000 00000618 00000000 0000061c 00000000 00000620 00000000 00000624 00000000 00000628 00000000 Page 45 objs\release\Can.s 0000062c 00000000 00000630 00000000 00000634 00000000 00000638 00000000 0000063c 00000000 00000640 00000000 00000644 00000000 00000648 00000000 0000064c 00000000 00000650 00000000 00000654 00000000 00000658 00000000 0000065c 00000000 00000660 00000000 00000664 00000000 00000668 00000000 0000066c 00000000 00000670 00000000 00000674 00000000 00000678 00000000 0000067c 00000000 00000680 00000000 00000684 00000000 00000688 00000000 0000068c 00000000 00000690 00000000 00000694 00000000 00000698 00000000 0000069c 00000000 000006a0 00000000 000006a4 00000000 000006a8 00000000 000006ac 00000000 000006b0 00000000 000006b4 00000000 000006b8 00000000 000006bc 00000000 000006c0 00000000 2489 .endo Can_TxPduId 2490 .section ".ghcalltbl","" 0000019c 00000000* 2491 .L15668: .data.w .L15667 2492 .endo .L15668 000001a0 00000000* 2493 .L15670: .data.w .L15669 2494 .endo .L15670 000001a4 00000000* 2495 .L15672: .data.w .L15671 2496 .endo .L15672 000001a8 00000000* 2497 .L15674: .data.w .L15673 2498 .endo .L15674 000001ac 00000000* 2499 .L15676: .data.w .L15675 2500 .endo .L15676 000001b0 00000000* 2501 .L15678: .data.w .L15677 2502 .endo .L15678 000001b4 00000000* 2503 .L15680: .data.w .L15679 2504 .endo .L15680 2505 .section ".ghrettbl","" 00000070 00000000* 2506 .L15682: .data.w .L15681 2507 .endo .L15682 2508 .section ".mcal_code","ax" 2509 ..gh.f.f.1.a.1.e.16: 2510 .endo ..gh.f.f.1.a.1.e.16 2511 Can_AbortHwObjectSend:: Page 46 objs\release\Can.s 00000ece b570 2512 push {r4-r6,lr} 00000ed0 4604 2513 cpy r4,r0 00000ed2 2014 2514 movs r0,20 2515 .L16028: 2516 00000ed4 f7fff894* 2517 bl Can_CheckInitialized 00000ed8 2801 2518 cmp r0,1 00000eda bf18 2519 it ne 2520 .L16030: 2521 00000edc bd70 2522 pop {r4-r6,pc} 00000ede f2400200* 2523 movw r2,%lo(Can_ConfigPtr) 00000ee2 f2c00200* 2524 movt r2,%hi(Can_ConfigPtr) 00000ee6 6810 2525 ldr r0,[r2] 00000ee8 6901 2526 ldr r1,[r0,16] 00000eea 428c 2527 cmp r4,r1 00000eec d202* 2528 bhs .L15693 00000eee 7901 2529 ldrb r1,[r0,4] 00000ef0 428c 2530 cmp r4,r1 00000ef2 d207* 2531 bhs .L15688 2532 .L15693: 00000ef4 2302 2533 movs r3,2 00000ef6 2214 2534 movs r2,20 00000ef8 2100 2535 movs r1,0 00000efa 205c 2536 movs r0,92 00000efc e8bd4070 2537 pop {r4-r6,lr} 2538 .L16032: 2539 00000f00 f000b800* 2540 b Det_ReportError 2541 .L15688: 00000f04 6941 2542 ldr r1,[r0,20] 00000f06 69c2 2543 ldr r2,[r0,28] 00000f08 5d09 2544 ldrb r1,[r1,r4] 00000f0a f8521021 2545 ldr.w r1,[r2,r1 lsl 2] 00000f0e 2900 2546 cmp r1,0 00000f10 bf08 2547 it eq 2548 .L16034: 2549 00000f12 bd70 2550 pop {r4-r6,pc} 00000f14 6980 2551 ldr r0,[r0,24] 00000f16 788e 2552 ldrb r6,[r1,2] 00000f18 eb001544 2553 add r5,r0,r4 lsl 5 00000f1c 7c29 2554 ldrb r1,[r5,16] 00000f1e 2400 2555 movs r4,0 00000f20 428c 2556 cmp r4,r1 00000f22 bf28 2557 it hs 2558 .L16036: 2559 00000f24 bd70 2560 pop {r4-r6,pc} 2561 .L15702: 00000f26 7f29 2562 ldrb r1,[r5,28] 00000f28 4630 2563 cpy r0,r6 00000f2a eb016114 2564 add r1,r1,r4 lsr 24 00000f2e b2c9 2565 uxtb r1,r1 2566 .L16038: 2567 00000f30 f000f800* 2568 bl Can_Drv_AbortTransfer 00000f34 7c2a 2569 ldrb r2,[r5,16] 00000f36 f1047480 2570 add r4,r4,1<<24 00000f3a ebb26f14 2571 cmp r2,r4 lsr 24 00000f3e d8f2* 2572 bhi .L15702 Page 47 objs\release\Can.s 2573 .L16040: 2574 00000f40 bd70 2575 pop {r4-r6,pc} 2576 .endf Can_AbortHwObjectSend 2577 ;CanHwObjPtr r5 local 2578 ;CanObjConfigPtr r1 local 2579 ;HwChannel r6 local 2580 ;IdIndex r0 local 2581 2582 ;Hth r4 param 2583 2584 .section ".ghcalltbl","" 000001b8 00000000* 2585 .L16029: .data.w .L16028 2586 .endo .L16029 2587 .section ".ghrettbl","" 00000074 00000000* 2588 .L16031: .data.w .L16030 2589 .endo .L16031 2590 .section ".ghtailcalltbl","" 0000000c 00000000* 2591 .L16033: .data.w .L16032 2592 .endo .L16033 2593 .section ".ghrettbl","" 00000078 00000000* 2594 .L16035: .data.w .L16034 2595 .endo .L16035 0000007c 00000000* 2596 .L16037: .data.w .L16036 2597 .endo .L16037 2598 .section ".ghcalltbl","" 000001bc 00000000* 2599 .L16039: .data.w .L16038 2600 .endo .L16039 2601 .section ".ghrettbl","" 00000080 00000000* 2602 .L16041: .data.w .L16040 2603 .endo .L16041 2604 .section ".mcal_code","ax" 2605 .assert 0x0 + (Can_ConfigPtr - Can_ConfigPtr) +0 == 0 2606 .assert 0x0 + (Can_TxPduId - Can_ConfigPtr) +0 == 1472 2607 .assert 0x0 + (Can_HwObjectConfigPtr - Can_ConfigPtr) +0 == 12 2608 ..gh.f.f.1.a.1.e.17: 2609 .endo ..gh.f.f.1.a.1.e.17 2610 Can_MainFunction_Write:: 00000f42 e92d4ff0 2611 push {r4-fp,lr} 00000f46 f2400a00* 2612 movw r10,%lo(Can_ConfigPtr) 00000f4a f2c00a00* 2613 movt r10,%hi(Can_ConfigPtr) 00000f4e f8da1000 2614 ldr.w r1,[r10] 00000f52 b082 2615 sub sp,sp,8 00000f54 2900 2616 cmp r1,0 00000f56 d059* 2617 beq .L16042 00000f58 7908 2618 ldrb r0,[r1,4] 00000f5a 690a 2619 ldr r2,[r1,16] 00000f5c 4290 2620 cmp r0,r2 00000f5e d255* 2621 bhs .L16042 00000f60 0603 2622 lsls r3,r0,24 00000f62 4699 2623 mov r9,r3 2624 .L16048: 00000f64 6948 2625 ldr r0,[r1,20] 00000f66 0e1b 2626 lsrs r3,r3,24 00000f68 f810b003 2627 ldrb fp,[r0,r3] 00000f6c 69cb 2628 ldr r3,[r1,28] 00000f6e f853002b 2629 ldr.w r0,[r3,fp lsl 2] 00000f72 2800 2630 cmp r0,0 00000f74 d044* 2631 beq .L16046 00000f76 78c3 2632 ldrb r3,[r0,3] 00000f78 2b01 2633 cmp r3,1 Page 48 objs\release\Can.s 00000f7a d141* 2634 bne .L16046 00000f7c f8d1c018 2635 ldr.w r12,[r1,24] 00000f80 ea4f6319 2636 lsr r3,r9,24 00000f84 eb0c1543 2637 add r5,r12,r3 lsl 5 00000f88 7b6b 2638 ldrb r3,[r5,13] 00000f8a 2b01 2639 cmp r3,1 00000f8c d138* 2640 bne .L16046 00000f8e 7887 2641 ldrb r7,[r0,2] 00000f90 7c28 2642 ldrb r0,[r5,16] 00000f92 f10a0c0c 2643 add r12,r10,12 00000f96 ea4f5399 2644 lsr r3,r9,22 00000f9a 2400 2645 movs r4,0 00000f9c 4284 2646 cmp r4,r0 00000f9e f84c5003 2647 str r5,[r12,r3] 00000fa2 d22d* 2648 bhs .L16046 00000fa4 f2400100* 2649 movw r1,%lo(Can_State) 00000fa8 f2c00100* 2650 movt r1,%hi(Can_State) 00000fac f8d18000 2651 ldr.w r8,[r1] 2652 .L16057: 00000fb0 7f29 2653 ldrb r1,[r5,28] 00000fb2 0e26 2654 lsrs r6,r4,24 00000fb4 4431 2655 add r1,r1,r6 00000fb6 eb010281 2656 add r2,r1,r1 lsl 2 00000fba eb080282 2657 add r2,r8,r2 lsl 2 00000fbe 68d2 2658 ldr r2,[r2,12] 00000fc0 2a02 2659 cmp r2,2 00000fc2 d115* 2660 bne .L16061 00000fc4 b2c9 2661 uxtb r1,r1 00000fc6 4638 2662 cpy r0,r7 2663 .L17067: 2664 00000fc8 f000f800* 2665 bl Can_Drv_WriteMainFunction 00000fcc 7f29 2666 ldrb r1,[r5,28] 00000fce 4638 2667 cpy r0,r7 00000fd0 4431 2668 add r1,r1,r6 00000fd2 b2c9 2669 uxtb r1,r1 2670 .L17069: 2671 00000fd4 f000f800* 2672 bl Can_Drv_GetTransferStatus 00000fd8 b948* 2673 cbnz r0,.L16408 00000fda 7f29 2674 ldrb r1,[r5,28] 00000fdc 4431 2675 add r1,r1,r6 00000fde eb0110cb 2676 add r0,r1,fp lsl 7 00000fe2 f50a61b8 2677 add r1,r10,0x05c0 00000fe6 0040 2678 lsls r0,r0,1 00000fe8 5a40 2679 ldrh r0,[r0,r1] 2680 .L17071: 2681 00000fea f000f800* 2682 bl CanIf_TxConfirmation 2683 .L16408: 00000fee 7c28 2684 ldrb r0,[r5,16] 2685 .L16061: 00000ff0 f1047480 2686 add r4,r4,1<<24 00000ff4 ebb06f14 2687 cmp r0,r4 lsr 24 00000ff8 d8da* 2688 bhi .L16057 00000ffa f8da1000 2689 ldr.w r1,[r10] 00000ffe 690a 2690 ldr r2,[r1,16] 2691 .L16046: 00001000 f1097380 2692 add r3,r9,1<<24 00001004 4699 2693 mov r9,r3 00001006 ebb26f13 2694 cmp r2,r3 lsr 24 Page 49 objs\release\Can.s 0000100a d8ab* 2695 bhi .L16048 2696 .L16042: 0000100c b002 2697 add sp,sp,8 2698 .L17073: 2699 0000100e e8bd8ff0 2700 pop {r4-fp,pc} 2701 .endf Can_MainFunction_Write 2702 ;CanObjConfigPtr r0 local 2703 ;CanControllerId fp local 2704 ;HwObjIndex r0 local 2705 ;HwChannel r7 local 2706 ;HwConfigPtr r5 local 2707 ;ObjIndx r3 local 2708 2709 .section ".ghcalltbl","" 000001c0 00000000* 2710 .L17068: .data.w .L17067 2711 .endo .L17068 000001c4 00000000* 2712 .L17070: .data.w .L17069 2713 .endo .L17070 000001c8 00000000* 2714 .L17072: .data.w .L17071 2715 .endo .L17072 2716 .section ".ghrettbl","" 00000084 00000000* 2717 .L17074: .data.w .L17073 2718 .endo .L17074 2719 .section ".mcal_code","ax" 2720 .assert 0x0 + (Can_ConfigPtr - Can_ConfigPtr) +0 == 0 2721 .assert 0x0 + (Can_ControllerConfigPtr - Can_ConfigPtr) +0 == 8 2722 .assert 0x0 + (Can_HwObjectConfigPtr - Can_ConfigPtr) +0 == 12 2723 ..gh.f.f.1.a.1.e.18: 2724 .endo ..gh.f.f.1.a.1.e.18 2725 Can_MainFunction_Read:: 00001012 e92d4cf0 2726 push {r4-r7,r10-fp,lr} 00001016 b0b4 2727 sub sp,sp,208 00001018 f2400200* 2728 movw r2,%lo(Can_ConfigPtr) 0000101c f2c00200* 2729 movt r2,%hi(Can_ConfigPtr) 00001020 6810 2730 ldr r0,[r2] 00001022 2100 2731 movs r1,0 00001024 2800 2732 cmp r0,0 00001026 bf1c 2733 itt ne 00001028 7902 2734 ldrb r2,[r0,4] 0000102a 4291 2735 cmp r1,r2 0000102c f08080bd* 2736 bhs .L17075 00001030 468a 2737 mov r10,r1 2738 .L17081: 00001032 6941 2739 ldr r1,[r0,20] 00001034 ea4f631a 2740 lsr r3,r10,24 00001038 f811b003 2741 ldrb fp,[r1,r3] 0000103c 69c3 2742 ldr r3,[r0,28] 0000103e f853102b 2743 ldr.w r1,[r3,fp lsl 2] 00001042 2900 2744 cmp r1,0 00001044 f00080ab* 2745 beq .L17079 00001048 78cb 2746 ldrb r3,[r1,3] 0000104a 2b01 2747 cmp r3,1 0000104c f04080a7* 2748 bne .L17079 00001050 f8d0c018 2749 ldr.w r12,[r0,24] 00001054 ea4f631a 2750 lsr r3,r10,24 00001058 eb0c1543 2751 add r5,r12,r3 lsl 5 0000105c 7b6b 2752 ldrb r3,[r5,13] 0000105e 2b01 2753 cmp r3,1 00001060 f040809d* 2754 bne .L17079 00001064 ea4f509a 2755 lsr r0,r10,22 Page 50 objs\release\Can.s 00001068 f2400600* 2756 movw r6,%lo(Can_ConfigPtr+12) 0000106c f2c00600* 2757 movt r6,%hi(Can_ConfigPtr+12) 00001070 788c 2758 ldrb r4,[r1,2] 00001072 5035 2759 str r5,[r6,r0] 00001074 4620 2760 cpy r0,r4 2761 .L18863: 2762 00001076 f000f800* 2763 bl Can_Drv_CheckStoppedMode 0000107a 2800 2764 cmp r0,0 0000107c f0408089* 2765 bne .L17802 00001080 69a8 2766 ldr r0,[r5,24] 00001082 bb38* 2767 cbnz r0,.L17093 00001084 ea4f509a 2768 lsr r0,r10,22 00001088 5835 2769 ldr r5,[r6,r0] 0000108a aa20 2770 add r2,sp,128 0000108c 4620 2771 cpy r0,r4 0000108e 7b6b 2772 ldrb r3,[r5,13] 00001090 7f29 2773 ldrb r1,[r5,28] 2774 .L18865: 2775 00001092 f000f800* 2776 bl Can_Drv_Receive 00001096 4620 2777 cpy r0,r4 00001098 7f29 2778 ldrb r1,[r5,28] 2779 .L18867: 2780 0000109a f000f800* 2781 bl Can_Drv_ReadMainFunction 0000109e 4620 2782 cpy r0,r4 000010a0 7f29 2783 ldrb r1,[r5,28] 2784 .L18869: 2785 000010a2 f000f800* 2786 bl Can_Drv_GetTransferStatus 000010a6 2800 2787 cmp r0,0 000010a8 d173* 2788 bne .L17802 000010aa a820 2789 add r0,sp,128 000010ac 9000 2790 str r0,[sp] 000010ae ab1b 2791 add r3,sp,108 000010b0 aa1e 2792 add r2,sp,120 000010b2 ea4f611a 2793 lsr r1,r10,24 000010b6 4658 2794 mov r0,fp 2795 .L18871: 2796 000010b8 f7fff84c* 2797 bl Can_ParseRxData 000010bc f2400100* 2798 movw r1,%lo(Can_ConfigPtr) 000010c0 f2c00100* 2799 movt r1,%hi(Can_ConfigPtr) 000010c4 6808 2800 ldr r0,[r1] 000010c6 7902 2801 ldrb r2,[r0,4] 000010c8 f10a7a80 2802 add r10,r10,1<<24 000010cc ebb26f1a 2803 cmp r2,r10 lsr 24 000010d0 d8af* 2804 bhi .L17081 000010d2 e06a* 2805 b .L17075 2806 .L17093: 000010d4 2802 2807 cmp r0,2 000010d6 d15c* 2808 bne .L17802 000010d8 ea4f509a 2809 lsr r0,r10,22 000010dc f2400100* 2810 movw r1,%lo(Can_ConfigPtr) 000010e0 f2c00100* 2811 movt r1,%hi(Can_ConfigPtr) 000010e4 688d 2812 ldr r5,[r1,8] 000010e6 5836 2813 ldr r6,[r6,r0] 000010e8 4620 2814 cpy r0,r4 000010ea 2105 2815 movs r1,5 2816 .L18873: Page 51 objs\release\Can.s 2817 000010ec f000f800* 2818 bl Can_Drv_GetMbInterruptFlag 000010f0 f8951020 2819 ldrb r1,[r5,32] 000010f4 2700 2820 movs r7,0 000010f6 428f 2821 cmp r7,r1 000010f8 d24b* 2822 bhs .L17802 000010fa e048* 2823 b .L17108 2824 .L17095: 000010fc 4620 2825 cpy r0,r4 000010fe 2106 2826 movs r1,6 2827 .L18875: 2828 00001100 f000f800* 2829 bl Can_Drv_GetMbInterruptFlag 00001104 2801 2830 cmp r0,1 00001106 d108* 2831 bne .L17099 00001108 6868 2832 ldr r0,[r5,4] 0000110a 68c0 2833 ldr r0,[r0,12] 0000110c 2800 2834 cmp r0,0 0000110e bf18 2835 it ne 2836 .L18877: 2837 00001110 4780 2838 blx r0 00001112 4620 2839 cpy r0,r4 00001114 2106 2840 movs r1,6 2841 .L18879: 2842 00001116 f000f800* 2843 bl Can_Drv_ClearMbIntStatus 2844 .L17099: 0000111a 4620 2845 cpy r0,r4 0000111c 2107 2846 movs r1,7 2847 .L18881: 2848 0000111e f000f800* 2849 bl Can_Drv_GetMbInterruptFlag 00001122 2801 2850 cmp r0,1 00001124 d10e* 2851 bne .L17103 00001126 4603 2852 cpy r3,r0 00001128 2208 2853 movs r2,8 0000112a 2100 2854 movs r1,0 0000112c 205c 2855 movs r0,92 2856 .L18883: 2857 0000112e f000f800* 2858 bl Det_ReportRuntimeError 00001132 6868 2859 ldr r0,[r5,4] 00001134 6880 2860 ldr r0,[r0,8] 00001136 2800 2861 cmp r0,0 00001138 bf18 2862 it ne 2863 .L18885: 2864 0000113a 4780 2865 blx r0 0000113c 4620 2866 cpy r0,r4 0000113e 2107 2867 movs r1,7 2868 .L18887: 2869 00001140 f000f800* 2870 bl Can_Drv_ClearMbIntStatus 2871 .L17103: 00001144 a907 2872 add r1,sp,28 00001146 4620 2873 cpy r0,r4 2874 .L18889: 2875 00001148 f000f800* 2876 bl Can_Drv_RxFIFO 0000114c 4620 2877 cpy r0,r4 Page 52 objs\release\Can.s 0000114e 7f31 2878 ldrb r1,[r6,28] 2879 .L18891: 2880 00001150 f000f800* 2881 bl Can_Drv_ReadMainFunction 00001154 4620 2882 cpy r0,r4 00001156 7f31 2883 ldrb r1,[r6,28] 2884 .L18893: 2885 00001158 f000f800* 2886 bl Can_Drv_GetTransferStatus 0000115c b968* 2887 cbnz r0,.L17106 0000115e a807 2888 add r0,sp,28 00001160 9000 2889 str r0,[sp] 00001162 ab02 2890 add r3,sp,8 00001164 aa05 2891 add r2,sp,20 00001166 ea4f611a 2892 lsr r1,r10,24 0000116a 4658 2893 mov r0,fp 2894 .L18895: 2895 0000116c f7fefff2* 2896 bl Can_ParseRxData 00001170 6868 2897 ldr r0,[r5,4] 00001172 6900 2898 ldr r0,[r0,16] 00001174 2800 2899 cmp r0,0 00001176 bf18 2900 it ne 2901 .L18897: 2902 00001178 4780 2903 blx r0 2904 .L17106: 0000117a 4620 2905 cpy r0,r4 0000117c 2105 2906 movs r1,5 2907 .L18899: 2908 0000117e f000f800* 2909 bl Can_Drv_GetMbInterruptFlag 00001182 f8951020 2910 ldrb r1,[r5,32] 00001186 1c7f 2911 adds r7,r7,1 00001188 b2ff 2912 uxtb r7,r7 0000118a 428f 2913 cmp r7,r1 0000118c d201* 2914 bhs .L17802 2915 .L17108: 0000118e 2801 2916 cmp r0,1 00001190 d0b4* 2917 beq .L17095 2918 .L17802: 00001192 f2400100* 2919 movw r1,%lo(Can_ConfigPtr) 00001196 f2c00100* 2920 movt r1,%hi(Can_ConfigPtr) 0000119a 6808 2921 ldr r0,[r1] 0000119c 7902 2922 ldrb r2,[r0,4] 2923 .L17079: 0000119e f10a7a80 2924 add r10,r10,1<<24 000011a2 ebb26f1a 2925 cmp r2,r10 lsr 24 000011a6 f63faf44* 2926 bhi .L17081 2927 .L17075: 000011aa b034 2928 add sp,sp,208 2929 .L18901: 2930 000011ac e8bd8cf0 2931 pop {r4-r7,r10-fp,pc} 2932 .endf Can_MainFunction_Read 2933 ;CanObjConfigPtr r1 local 2934 ;CanControllerId fp local 2935 ;HwObjIndex r1 local 2936 ;HwChannel r4 local 2937 ;HwConfigPtr r5 local 2938 ;CanMsgBuf [sp,128] local Page 53 objs\release\Can.s 2939 ;HwInfo [sp,120] local 2940 ;PduInfo [sp,108] local 2941 ;HwConfigPtr r5 local 2942 ;ConfigPtr r5 local 2943 ;HwConfigPtr r6 local 2944 ;CanMsgBuf [sp,28] local 2945 ;HwInfo [sp,20] local 2946 ;PduInfo [sp,8] local 2947 ;ObjIdx r7 local 2948 ;ReturnVal r0 local 2949 2950 .section ".ghcalltbl","" 000001cc 00000000* 2951 .L18864: .data.w .L18863 2952 .endo .L18864 000001d0 00000000* 2953 .L18866: .data.w .L18865 2954 .endo .L18866 000001d4 00000000* 2955 .L18868: .data.w .L18867 2956 .endo .L18868 000001d8 00000000* 2957 .L18870: .data.w .L18869 2958 .endo .L18870 000001dc 00000000* 2959 .L18872: .data.w .L18871 2960 .endo .L18872 000001e0 00000000* 2961 .L18874: .data.w .L18873 2962 .endo .L18874 000001e4 00000000* 2963 .L18876: .data.w .L18875 2964 .endo .L18876 000001e8 00000000* 2965 .L18878: .data.w .L18877 2966 .endo .L18878 000001ec 00000000* 2967 .L18880: .data.w .L18879 2968 .endo .L18880 000001f0 00000000* 2969 .L18882: .data.w .L18881 2970 .endo .L18882 000001f4 00000000* 2971 .L18884: .data.w .L18883 2972 .endo .L18884 000001f8 00000000* 2973 .L18886: .data.w .L18885 2974 .endo .L18886 000001fc 00000000* 2975 .L18888: .data.w .L18887 2976 .endo .L18888 00000200 00000000* 2977 .L18890: .data.w .L18889 2978 .endo .L18890 00000204 00000000* 2979 .L18892: .data.w .L18891 2980 .endo .L18892 00000208 00000000* 2981 .L18894: .data.w .L18893 2982 .endo .L18894 0000020c 00000000* 2983 .L18896: .data.w .L18895 2984 .endo .L18896 00000210 00000000* 2985 .L18898: .data.w .L18897 2986 .endo .L18898 00000214 00000000* 2987 .L18900: .data.w .L18899 2988 .endo .L18900 2989 .section ".ghrettbl","" 00000088 00000000* 2990 .L18902: .data.w .L18901 2991 .endo .L18902 2992 .section ".mcal_code","ax" 2993 .assert 0x0 + (Can_ConfigPtr - Can_ConfigPtr) +0 == 0 2994 .assert 0x0 + (Can_ControllerState - Can_ConfigPtr) +0 == 1468 2995 .assert 0x0 + (Can_ControllerConfigPtr - Can_ConfigPtr) +0 == 8 2996 ..gh.f.f.1.a.1.e.19: 2997 .endo ..gh.f.f.1.a.1.e.19 2998 Can_MainFunction_Mode:: 000011b0 b570 2999 push {r4-r6,lr} Page 54 objs\release\Can.s 000011b2 f2400400* 3000 movw r4,%lo(Can_ConfigPtr) 000011b6 f2c00400* 3001 movt r4,%hi(Can_ConfigPtr) 000011ba 6821 3002 ldr r1,[r4] 000011bc 2000 3003 movs r0,0 000011be 2900 3004 cmp r1,0 000011c0 bf1c 3005 itt ne 000011c2 688a 3006 ldr r2,[r1,8] 000011c4 4290 3007 cmp r0,r2 000011c6 bf28 3008 it hs 3009 .L19898: 3010 000011c8 bd70 3011 pop {r4-r6,pc} 000011ca 4605 3012 cpy r5,r0 3013 .L18909: 000011cc 69cb 3014 ldr r3,[r1,28] 000011ce 0e28 3015 lsrs r0,r5,24 000011d0 f8530020 3016 ldr.w r0,[r3,r0 lsl 2] 000011d4 b338* 3017 cbz r0,.L18910 000011d6 78c3 3018 ldrb r3,[r0,3] 000011d8 2b01 3019 cmp r3,1 000011da d124* 3020 bne .L18910 000011dc 7880 3021 ldrb r0,[r0,2] 000011de f8d435bc 3022 ldr.w r3,[r4,1468] 000011e2 68a6 3023 ldr r6,[r4,8] 000011e4 2b01 3024 cmp r3,1 000011e6 d110* 3025 bne .L18920 3026 .L19900: 3027 000011e8 f000f800* 3028 bl Can_Drv_CheckStartedMode 000011ec b9c8* 3029 cbnz r0,.L19541 000011ee 2102 3030 movs r1,2 000011f0 f8c415bc 3031 str r1,[r4,1468] 000011f4 7870 3032 ldrb r0,[r6,1] 3033 .L19902: 3034 000011f6 f000f800* 3035 bl CanIf_ControllerModeIndication 000011fa 6821 3036 ldr r1,[r4] 000011fc 688a 3037 ldr r2,[r1,8] 000011fe f1057580 3038 add r5,r5,1<<24 00001202 ebb26f15 3039 cmp r2,r5 lsr 24 00001206 d8e1* 3040 bhi .L18909 3041 .L19904: 3042 00001208 bd70 3043 pop {r4-r6,pc} 3044 .L18920: 0000120a 2b02 3045 cmp r3,2 0000120c d10b* 3046 bne .L18910 3047 .L19906: 3048 0000120e f000f800* 3049 bl Can_Drv_CheckStartedMode 00001212 2801 3050 cmp r0,1 00001214 d105* 3051 bne .L19541 00001216 f8c405bc 3052 str r0,[r4,1468] 0000121a 4601 3053 cpy r1,r0 0000121c 7870 3054 ldrb r0,[r6,1] 3055 .L19908: 3056 0000121e f000f800* 3057 bl CanIf_ControllerModeIndication 3058 .L19541: 00001222 6821 3059 ldr r1,[r4] 00001224 688a 3060 ldr r2,[r1,8] Page 55 objs\release\Can.s 3061 .L18910: 00001226 f1057580 3062 add r5,r5,1<<24 0000122a ebb26f15 3063 cmp r2,r5 lsr 24 0000122e d8cd* 3064 bhi .L18909 3065 .L19910: 3066 00001230 bd70 3067 pop {r4-r6,pc} 3068 .endf Can_MainFunction_Mode 3069 ;CanObjConfigPtr r0 local 3070 ;CanControllerId r0 local 3071 ;HwChannel r0 local 3072 ;ConfigPtr r6 local 3073 3074 .section ".ghrettbl","" 0000008c 00000000* 3075 .L19899: .data.w .L19898 3076 .endo .L19899 3077 .section ".ghcalltbl","" 00000218 00000000* 3078 .L19901: .data.w .L19900 3079 .endo .L19901 0000021c 00000000* 3080 .L19903: .data.w .L19902 3081 .endo .L19903 3082 .section ".ghrettbl","" 00000090 00000000* 3083 .L19905: .data.w .L19904 3084 .endo .L19905 3085 .section ".ghcalltbl","" 00000220 00000000* 3086 .L19907: .data.w .L19906 3087 .endo .L19907 00000224 00000000* 3088 .L19909: .data.w .L19908 3089 .endo .L19909 3090 .section ".ghrettbl","" 00000094 00000000* 3091 .L19911: .data.w .L19910 3092 .endo .L19911 3093 .section ".mcal_code","ax" 3094 .assert 0x0 + (Can_TxPduId - Can_ConfigPtr) +0 == 1472 3095 .assert 0x0 + (Can_HwToMapMbIndex - Can_ConfigPtr) +0 == 28 3096 .assert 0x0 + (Can_ConfigPtr - Can_ConfigPtr) +0 == 0 3097 ..gh.f.f.1.a.1.e.20: 3098 .endo ..gh.f.f.1.a.1.e.20 3099 Can_ProcessMbCommonInterrupt:: 00001232 b570 3100 push {r4-r6,lr} 00001234 460e 3101 cpy r6,r1 00001236 f2400400* 3102 movw r4,%lo(Can_ConfigPtr) 0000123a f2c00400* 3103 movt r4,%hi(Can_ConfigPtr) 0000123e 6821 3104 ldr r1,[r4] 00001240 2900 3105 cmp r1,0 00001242 bf08 3106 it eq 3107 .L20284: 3108 00001244 bd70 3109 pop {r4-r6,pc} 00001246 f8d1c00c 3110 ldr.w r12,[r1,12] 0000124a 69cb 3111 ldr r3,[r1,28] 0000124c f81c0000 3112 ldrb r0,[r12,r0] 00001250 f8535020 3113 ldr.w r5,[r3,r0 lsl 2] 00001254 2d00 3114 cmp r5,0 00001256 bf08 3115 it eq 3116 .L20286: 3117 00001258 bd70 3118 pop {r4-r6,pc} 0000125a 1e52 3119 subs r2,r2,1 0000125c d328* 3120 blo .L19934 0000125e d002* 3121 beq .L19919 Page 56 objs\release\Can.s 00001260 2a01 3122 cmp r2,1 00001262 d01c* 3123 beq .L19921 3124 .L20288: 3125 00001264 bd70 3126 pop {r4-r6,pc} 3127 .L19919: 00001266 7828 3128 ldrb r0,[r5] 00001268 698a 3129 ldr r2,[r1,24] 0000126a eb0611c0 3130 add r1,r6,r0 lsl 7 0000126e f104001c 3131 add r0,r4,28 00001272 5c40 3132 ldrb r0,[r0,r1] 00001274 28ff 3133 cmp r0,255 00001276 bf08 3134 it eq 3135 .L20290: 3136 00001278 bd70 3137 pop {r4-r6,pc} 0000127a eb021040 3138 add r0,r2,r0 lsl 5 0000127e 7b42 3139 ldrb r2,[r0,13] 00001280 2a00 3140 cmp r2,0 00001282 bf18 3141 it ne 3142 .L20292: 3143 00001284 bd70 3144 pop {r4-r6,pc} 00001286 6980 3145 ldr r0,[r0,24] 00001288 2801 3146 cmp r0,1 0000128a bf18 3147 it ne 3148 .L20294: 3149 0000128c bd70 3150 pop {r4-r6,pc} 0000128e 0048 3151 lsls r0,r1,1 00001290 f50461b8 3152 add r1,r4,0x05c0 00001294 5a40 3153 ldrh r0,[r0,r1] 00001296 e8bd4070 3154 pop {r4-r6,lr} 3155 .L20296: 3156 0000129a f000b800* 3157 b CanIf_TxConfirmation 3158 .L19921: 0000129e 2e07 3159 cmp r6,7 000012a0 d106* 3160 bne .L19934 000012a2 4613 3161 cpy r3,r2 000012a4 2208 3162 movs r2,8 000012a6 2100 3163 movs r1,0 000012a8 205c 3164 movs r0,92 3165 .L20298: 3166 000012aa f000f800* 3167 bl Det_ReportRuntimeError 000012ae 6821 3168 ldr r1,[r4] 3169 .L19934: 000012b0 4633 3170 cpy r3,r6 000012b2 698a 3171 ldr r2,[r1,24] 000012b4 78a9 3172 ldrb r1,[r5,2] 000012b6 7828 3173 ldrb r0,[r5] 000012b8 e8bd4070 3174 pop {r4-r6,lr} 3175 .L20300: 3176 000012bc f7febf94* 3177 b Can_ProcessRxMsgBuffer 3178 .endf Can_ProcessMbCommonInterrupt 3179 ;CanObjConfigPtr r5 local 3180 ;HwConfigPtr r2 local 3181 ;HwObjIndex r0 local 3182 Page 57 objs\release\Can.s 3183 ;Id r0 param 3184 ;MbIdx r6 param 3185 ;Type r2 param 3186 3187 .section ".ghrettbl","" 00000098 00000000* 3188 .L20285: .data.w .L20284 3189 .endo .L20285 0000009c 00000000* 3190 .L20287: .data.w .L20286 3191 .endo .L20287 000000a0 00000000* 3192 .L20289: .data.w .L20288 3193 .endo .L20289 000000a4 00000000* 3194 .L20291: .data.w .L20290 3195 .endo .L20291 000000a8 00000000* 3196 .L20293: .data.w .L20292 3197 .endo .L20293 000000ac 00000000* 3198 .L20295: .data.w .L20294 3199 .endo .L20295 3200 .section ".ghtailcalltbl","" 00000010 00000000* 3201 .L20297: .data.w .L20296 3202 .endo .L20297 3203 .section ".ghcalltbl","" 00000228 00000000* 3204 .L20299: .data.w .L20298 3205 .endo .L20299 3206 .section ".ghtailcalltbl","" 00000014 00000000* 3207 .L20301: .data.w .L20300 3208 .endo .L20301 3209 .section ".mcal_code","ax" 3210 .assert 0x0 + (Can_ControllerConfigPtr - Can_ConfigPtr) +0 == 8 3211 .assert 0x0 + (Can_HwToMapMbIndex - Can_ConfigPtr) +0 == 28 3212 .assert 0x0 + (Can_ConfigPtr - Can_ConfigPtr) +0 == 0 3213 ..gh.f.f.1.a.1.e.21: 3214 .endo ..gh.f.f.1.a.1.e.21 3215 Can_ProcessRxFiFoDmaInterrupt:: 000012c0 b5f0 3216 push {r4-r7,lr} 000012c2 460d 3217 cpy r5,r1 000012c4 f2400400* 3218 movw r4,%lo(Can_ConfigPtr) 000012c8 f2c00400* 3219 movt r4,%hi(Can_ConfigPtr) 000012cc 6821 3220 ldr r1,[r4] 000012ce b086 3221 sub sp,sp,24 000012d0 b3a1* 3222 cbz r1,.L20302 000012d2 68cb 3223 ldr r3,[r1,12] 000012d4 69ca 3224 ldr r2,[r1,28] 000012d6 5c18 3225 ldrb r0,[r3,r0] 000012d8 f8526020 3226 ldr.w r6,[r2,r0 lsl 2] 000012dc b376* 3227 cbz r6,.L20302 000012de 2d12 3228 cmp r5,18 000012e0 d106* 3229 bne .L20308 000012e2 2301 3230 movs r3,1 000012e4 2208 3231 movs r2,8 000012e6 2100 3232 movs r1,0 000012e8 205c 3233 movs r0,92 3234 .L20670: 3235 000012ea f000f800* 3236 bl Det_ReportRuntimeError 000012ee 6821 3237 ldr r1,[r4] 3238 .L20308: 000012f0 7830 3239 ldrb r0,[r6] 000012f2 78b7 3240 ldrb r7,[r6,2] 000012f4 698b 3241 ldr r3,[r1,24] 000012f6 68a6 3242 ldr r6,[r4,8] 000012f8 f104021c 3243 add r2,r4,28 Page 58 objs\release\Can.s 000012fc 01c1 3244 lsls r1,r0,7 000012fe 5c8a 3245 ldrb r2,[r1,r2] 00001300 2aff 3246 cmp r2,255 00001302 d01b* 3247 beq .L20302 00001304 eb031442 3248 add r4,r3,r2 lsl 5 00001308 7b61 3249 ldrb r1,[r4,13] 0000130a b9b9* 3250 cbnz r1,.L20302 0000130c 2d11 3251 cmp r5,17 0000130e d10b* 3252 bne .L20316 00001310 6b31 3253 ldr r1,[r6,48] 00001312 ab01 3254 add r3,sp,4 00001314 aa04 3255 add r2,sp,16 00001316 9100 3256 str r1,[sp] 00001318 7b21 3257 ldrb r1,[r4,12] 3258 .L20672: 3259 0000131a f7feff1b* 3260 bl Can_ParseRxData 0000131e 4638 3261 cpy r0,r7 00001320 6b31 3262 ldr r1,[r6,48] 3263 .L20674: 3264 00001322 f000f800* 3265 bl Can_Drv_RxFIFO 00001326 e009* 3266 b .L20302 3267 .L20316: 00001328 2d12 3268 cmp r5,18 0000132a d107* 3269 bne .L20302 0000132c 6af0 3270 ldr r0,[r6,44] 0000132e 2800 3271 cmp r0,0 00001330 bf18 3272 it ne 3273 .L20676: 3274 00001332 4780 3275 blx r0 00001334 4638 3276 cpy r0,r7 00001336 6b31 3277 ldr r1,[r6,48] 3278 .L20678: 3279 00001338 f000f800* 3280 bl Can_Drv_RxFIFO 3281 .L20302: 0000133c b006 3282 add sp,sp,24 3283 .L20680: 3284 0000133e bdf0 3285 pop {r4-r7,pc} 3286 .endf Can_ProcessRxFiFoDmaInterrupt 3287 ;CanObjConfigPtr r6 local 3288 ;ControllerId r0 local 3289 ;HwChannel r7 local 3290 ;HwConfigPtr r3 local 3291 ;ConfigPtr r6 local 3292 ;HwInfo [sp,16] local 3293 ;PduInfo [sp,4] local 3294 ;HwObjIndex r2 local 3295 ;HwObjPtr r4 local 3296 3297 ;Id r0 param 3298 ;IntType r5 param 3299 3300 .section ".ghcalltbl","" 0000022c 00000000* 3301 .L20671: .data.w .L20670 3302 .endo .L20671 00000230 00000000* 3303 .L20673: .data.w .L20672 3304 .endo .L20673 Page 59 objs\release\Can.s 00000234 00000000* 3305 .L20675: .data.w .L20674 3306 .endo .L20675 00000238 00000000* 3307 .L20677: .data.w .L20676 3308 .endo .L20677 0000023c 00000000* 3309 .L20679: .data.w .L20678 3310 .endo .L20679 3311 .section ".ghrettbl","" 000000b0 00000000* 3312 .L20681: .data.w .L20680 3313 .endo .L20681 3314 .section ".mcal_code","ax" 3315 .assert 0x0 + (Can_ControllerState - Can_ConfigPtr) +0 == 1468 3316 .assert 0x0 + (Can_ConfigPtr - Can_ConfigPtr) +0 == 0 3317 ..gh.f.f.1.a.1.e.22: 3318 .endo ..gh.f.f.1.a.1.e.22 3319 Can_ProcessBusOffInterrupt:: 00001340 b530 3320 push {r4-r5,lr} 00001342 f2400400* 3321 movw r4,%lo(Can_ConfigPtr) 00001346 f2c00400* 3322 movt r4,%hi(Can_ConfigPtr) 0000134a 6821 3323 ldr r1,[r4] 0000134c 2900 3324 cmp r1,0 0000134e bf08 3325 it eq 3326 .L20837: 3327 00001350 bd30 3328 pop {r4-r5,pc} 00001352 69ca 3329 ldr r2,[r1,28] 00001354 68c9 3330 ldr r1,[r1,12] 00001356 5c08 3331 ldrb r0,[r1,r0] 00001358 f8525020 3332 ldr.w r5,[r2,r0 lsl 2] 0000135c 2d00 3333 cmp r5,0 0000135e bf08 3334 it eq 3335 .L20839: 3336 00001360 bd30 3337 pop {r4-r5,pc} 00001362 78a9 3338 ldrb r1,[r5,2] 00001364 7828 3339 ldrb r0,[r5] 3340 .L20841: 3341 00001366 f7fefe7e* 3342 bl Can_SetControllerToStopMode 0000136a 2800 3343 cmp r0,0 0000136c bf18 3344 it ne 3345 .L20843: 3346 0000136e bd30 3347 pop {r4-r5,pc} 00001370 2002 3348 movs r0,2 00001372 f8c405bc 3349 str r0,[r4,1468] 00001376 7868 3350 ldrb r0,[r5,1] 00001378 e8bd4030 3351 pop {r4-r5,lr} 3352 .L20845: 3353 0000137c f000b800* 3354 b CanIf_ControllerBusOff 3355 .endf Can_ProcessBusOffInterrupt 3356 ;CanObjConfigPtr r5 local 3357 3358 ;Id r0 param 3359 3360 .section ".ghrettbl","" 000000b4 00000000* 3361 .L20838: .data.w .L20837 3362 .endo .L20838 000000b8 00000000* 3363 .L20840: .data.w .L20839 3364 .endo .L20840 3365 .section ".ghcalltbl","" Page 60 objs\release\Can.s 00000240 00000000* 3366 .L20842: .data.w .L20841 3367 .endo .L20842 3368 .section ".ghrettbl","" 000000bc 00000000* 3369 .L20844: .data.w .L20843 3370 .endo .L20844 3371 .section ".ghtailcalltbl","" 00000018 00000000* 3372 .L20846: .data.w .L20845 3373 .endo .L20846 3374 .section ".mcal_code","ax" 3375 ..gh.f.f.1.a.1.e.23: 3376 .endo ..gh.f.f.1.a.1.e.23 3377 Can_ProcessErrorInterrupt:: 00001380 b5f0 3378 push {r4-r7,lr} 00001382 460d 3379 cpy r5,r1 00001384 4614 3380 cpy r4,r2 00001386 f2400200* 3381 movw r2,%lo(Can_ConfigPtr) 0000138a f2c00200* 3382 movt r2,%hi(Can_ConfigPtr) 0000138e 6811 3383 ldr r1,[r2] 00001390 2900 3384 cmp r1,0 00001392 bf08 3385 it eq 3386 .L21364: 3387 00001394 bdf0 3388 pop {r4-r7,pc} 00001396 69ca 3389 ldr r2,[r1,28] 00001398 68c9 3390 ldr r1,[r1,12] 0000139a 5c08 3391 ldrb r0,[r1,r0] 0000139c f8527020 3392 ldr.w r7,[r2,r0 lsl 2] 000013a0 2f00 3393 cmp r7,0 000013a2 bf08 3394 it eq 3395 .L21366: 3396 000013a4 bdf0 3397 pop {r4-r7,pc} 000013a6 f4146f80 3398 tst r4,1<<10 000013aa 787e 3399 ldrb r6,[r7,1] 000013ac d003* 3400 beq .L20857 000013ae 4630 3401 cpy r0,r6 000013b0 2109 3402 movs r1,9 3403 .L21368: 3404 000013b2 f000f800* 3405 bl CanIf_ErrorNotification 3406 .L20857: 000013b6 f4146f00 3407 tst r4,1<<11 000013ba d003* 3408 beq .L20859 000013bc 4630 3409 cpy r0,r6 000013be 2108 3410 movs r1,8 3411 .L21370: 3412 000013c0 f000f800* 3413 bl CanIf_ErrorNotification 3414 .L20859: 000013c4 f4145f80 3415 tst r4,1<<12 000013c8 d003* 3416 beq .L20861 000013ca 4630 3417 cpy r0,r6 000013cc 210a 3418 movs r1,10 3419 .L21372: 3420 000013ce f000f800* 3421 bl CanIf_ErrorNotification 3422 .L20861: 000013d2 f4145f00 3423 tst r4,1<<13 000013d6 d003* 3424 beq .L20863 000013d8 4630 3425 cpy r0,r6 000013da 2104 3426 movs r1,4 Page 61 objs\release\Can.s 3427 .L21374: 3428 000013dc f000f800* 3429 bl CanIf_ErrorNotification 3430 .L20863: 000013e0 f4144f80 3431 tst r4,1<<14 000013e4 d003* 3432 beq .L20865 000013e6 4630 3433 cpy r0,r6 000013e8 2102 3434 movs r1,2 3435 .L21376: 3436 000013ea f000f800* 3437 bl CanIf_ErrorNotification 3438 .L20865: 000013ee f4144f00 3439 tst r4,1<<15 000013f2 d003* 3440 beq .L20853 000013f4 4630 3441 cpy r0,r6 000013f6 2101 3442 movs r1,1 3443 .L21378: 3444 000013f8 f000f800* 3445 bl CanIf_ErrorNotification 3446 .L20853: 000013fc 2d01 3447 cmp r5,1 000013fe d106* 3448 bne .L20868 00001400 6978 3449 ldr r0,[r7,20] 00001402 2800 3450 cmp r0,0 00001404 bf08 3451 it eq 3452 .L21380: 3453 00001406 bdf0 3454 pop {r4-r7,pc} 00001408 e8bd40f0 3455 pop {r4-r7,lr} 3456 .L21382: 3457 0000140c 4700 3458 bx r0 3459 .L20868: 0000140e 6938 3460 ldr r0,[r7,16] 00001410 2800 3461 cmp r0,0 00001412 bf08 3462 it eq 3463 .L21384: 3464 00001414 bdf0 3465 pop {r4-r7,pc} 00001416 e8bd40f0 3466 pop {r4-r7,lr} 3467 .L21386: 3468 0000141a 4700 3469 bx r0 3470 .endf Can_ProcessErrorInterrupt 3471 ;CanObjConfigPtr r7 local 3472 ;CanInterfaceId r6 local 3473 3474 ;CtrlOffset r0 param 3475 ;IsErrFast r5 param 3476 ;Data r4 param 3477 3478 .section ".ghrettbl","" 000000c0 00000000* 3479 .L21365: .data.w .L21364 3480 .endo .L21365 000000c4 00000000* 3481 .L21367: .data.w .L21366 3482 .endo .L21367 3483 .section ".ghcalltbl","" 00000244 00000000* 3484 .L21369: .data.w .L21368 3485 .endo .L21369 00000248 00000000* 3486 .L21371: .data.w .L21370 3487 .endo .L21371 Page 62 objs\release\Can.s 0000024c 00000000* 3488 .L21373: .data.w .L21372 3489 .endo .L21373 00000250 00000000* 3490 .L21375: .data.w .L21374 3491 .endo .L21375 00000254 00000000* 3492 .L21377: .data.w .L21376 3493 .endo .L21377 00000258 00000000* 3494 .L21379: .data.w .L21378 3495 .endo .L21379 3496 .section ".ghrettbl","" 000000c8 00000000* 3497 .L21381: .data.w .L21380 3498 .endo .L21381 3499 .section ".ghtailcalltbl","" 0000001c 00000000* 3500 .L21383: .data.w .L21382 3501 .endo .L21383 3502 .section ".ghrettbl","" 000000cc 00000000* 3503 .L21385: .data.w .L21384 3504 .endo .L21385 3505 .section ".ghtailcalltbl","" 00000020 00000000* 3506 .L21387: .data.w .L21386 3507 .endo .L21387 3508 .section ".mcal_code","ax" 3509 ..gh.f.f.1.a.1.e.24: 3510 .endo ..gh.f.f.1.a.1.e.24 3511 Can_ProcessEccInterrupt:: 0000141c f2400300* 3512 movw r3,%lo(Can_ConfigPtr) 00001420 f2c00300* 3513 movt r3,%hi(Can_ConfigPtr) 00001424 681a 3514 ldr r2,[r3] 00001426 2a00 3515 cmp r2,0 00001428 bf08 3516 it eq 3517 .L21722: 3518 0000142a 4770 3519 ret 0000142c 69d3 3520 ldr r3,[r2,28] 0000142e 68d2 3521 ldr r2,[r2,12] 00001430 5c10 3522 ldrb r0,[r2,r0] 00001432 f8530020 3523 ldr.w r0,[r3,r0 lsl 2] 00001436 2800 3524 cmp r0,0 00001438 bf08 3525 it eq 3526 .L21724: 3527 0000143a 4770 3528 ret 0000143c 290a 3529 cmp r1,10 0000143e d104* 3530 bne .L21394 00001440 6b80 3531 ldr r0,[r0,56] 00001442 2800 3532 cmp r0,0 00001444 bf08 3533 it eq 3534 .L21726: 3535 00001446 4770 3536 ret 3537 .L21728: 3538 00001448 4700 3539 bx r0 3540 .L21394: 0000144a 290b 3541 cmp r1,11 0000144c d104* 3542 bne .L21399 0000144e 6bc0 3543 ldr r0,[r0,60] 00001450 2800 3544 cmp r0,0 00001452 bf08 3545 it eq 3546 .L21730: 3547 00001454 4770 3548 ret Page 63 objs\release\Can.s 3549 .L21732: 3550 00001456 4700 3551 bx r0 3552 .L21399: 00001458 290c 3553 cmp r1,12 0000145a bf18 3554 it ne 3555 .L21734: 3556 0000145c 4770 3557 ret 0000145e 6c00 3558 ldr r0,[r0,64] 00001460 2800 3559 cmp r0,0 00001462 bf08 3560 it eq 3561 .L21736: 3562 00001464 4770 3563 ret 3564 .L21738: 3565 00001466 4700 3566 bx r0 3567 .endf Can_ProcessEccInterrupt 3568 ;CanObjConfigPtr r0 local 3569 3570 ;CtrlOffset r0 param 3571 ;IntType r1 param 3572 ;Data none param 3573 3574 .section ".ghrettbl","" 000000d0 00000000* 3575 .L21723: .data.w .L21722 3576 .endo .L21723 000000d4 00000000* 3577 .L21725: .data.w .L21724 3578 .endo .L21725 000000d8 00000000* 3579 .L21727: .data.w .L21726 3580 .endo .L21727 3581 .section ".ghtailcalltbl","" 00000024 00000000* 3582 .L21729: .data.w .L21728 3583 .endo .L21729 3584 .section ".ghrettbl","" 000000dc 00000000* 3585 .L21731: .data.w .L21730 3586 .endo .L21731 3587 .section ".ghtailcalltbl","" 00000028 00000000* 3588 .L21733: .data.w .L21732 3589 .endo .L21733 3590 .section ".ghrettbl","" 000000e0 00000000* 3591 .L21735: .data.w .L21734 3592 .endo .L21735 000000e4 00000000* 3593 .L21737: .data.w .L21736 3594 .endo .L21737 3595 .section ".ghtailcalltbl","" 0000002c 00000000* 3596 .L21739: .data.w .L21738 3597 .endo .L21739 3598 .section ".mcal_code","ax" 3599 .assert 0x0 + (Can_EccInjectionStatus - Can_ControllerConfigPtr) +0 == 1452 3600 .assert 0x0 + (Can_ControllerConfigPtr - Can_ControllerConfigPtr) +0 == 0 3601 ..gh.f.f.1.a.1.e.25: 3602 .endo ..gh.f.f.1.a.1.e.25 3603 Can_InjectError:: 00001468 b5f0 3604 push {r4-r7,lr} 0000146a 4607 3605 cpy r7,r0 0000146c f2400500* 3606 movw r5,%lo(Can_ControllerConfigPtr) 00001470 f2c00500* 3607 movt r5,%hi(Can_ControllerConfigPtr) 00001474 2401 3608 movs r4,1 00001476 2015 3609 movs r0,21 Page 64 objs\release\Can.s 00001478 682e 3610 ldr r6,[r5] 3611 .L21948: 3612 0000147a f7fefdc1* 3613 bl Can_CheckInitialized 0000147e 2801 3614 cmp r0,1 00001480 d11a* 3615 bne .L21742 00001482 4639 3616 cpy r1,r7 00001484 2015 3617 movs r0,21 3618 .L21950: 3619 00001486 f7fefdcc* 3620 bl Can_CheckController 0000148a 2801 3621 cmp r0,1 0000148c bf04 3622 itt eq 0000148e f8960044 3623 ldrb r0,[r6,68] 00001492 2801 3624 cmp r0,1 00001494 d110* 3625 bne .L21742 00001496 78b0 3626 ldrb r0,[r6,2] 3627 .L21952: 3628 00001498 f000f800* 3629 bl Can_Drv_InjectCorrectableAddress 0000149c b2c4 3630 uxtb r4,r0 0000149e b95c* 3631 cbnz r4,.L21742 000014a0 2001 3632 movs r0,1 000014a2 f88505ac 3633 strb r0,[r5,1452] 000014a6 78b0 3634 ldrb r0,[r6,2] 3635 .L21954: 3636 000014a8 f000f800* 3637 bl Can_Drv_InjectAddress 000014ac f89515ac 3638 ldrb r1,[r5,1452] 000014b0 b2c4 3639 uxtb r4,r0 000014b2 2900 3640 cmp r1,0 000014b4 bf18 3641 it ne 000014b6 2401 3642 mov r4,1 3643 .L21742: 000014b8 4620 3644 cpy r0,r4 3645 .L21956: 3646 000014ba bdf0 3647 pop {r4-r7,pc} 3648 .endf Can_InjectError 3649 ;ReturnVal r4 local 3650 ;ConfigPtr r6 local 3651 3652 ;ControllerId r7 param 3653 3654 .section ".ghcalltbl","" 0000025c 00000000* 3655 .L21949: .data.w .L21948 3656 .endo .L21949 00000260 00000000* 3657 .L21951: .data.w .L21950 3658 .endo .L21951 00000264 00000000* 3659 .L21953: .data.w .L21952 3660 .endo .L21953 00000268 00000000* 3661 .L21955: .data.w .L21954 3662 .endo .L21955 3663 .section ".ghrettbl","" 000000e8 00000000* 3664 .L21957: .data.w .L21956 3665 .endo .L21957 3666 .section ".mcal_code","ax" 3667 .assert 0x0 + (Can_EccInjectionStatus - Can_ControllerConfigPtr) +0 == 1452 3668 .assert 0x0 + (Can_ControllerConfigPtr - Can_ControllerConfigPtr) +0 == 0 3669 ..gh.f.f.1.a.1.e.26: 3670 .endo ..gh.f.f.1.a.1.e.26 Page 65 objs\release\Can.s 3671 Can_ClearInjectError:: 000014bc b5f0 3672 push {r4-r7,lr} 000014be 4607 3673 cpy r7,r0 000014c0 f2400500* 3674 movw r5,%lo(Can_ControllerConfigPtr) 000014c4 f2c00500* 3675 movt r5,%hi(Can_ControllerConfigPtr) 000014c8 2401 3676 movs r4,1 000014ca 2016 3677 movs r0,22 000014cc 682e 3678 ldr r6,[r5] 3679 .L22251: 3680 000014ce f7fefd97* 3681 bl Can_CheckInitialized 000014d2 2801 3682 cmp r0,1 000014d4 d114* 3683 bne .L21960 000014d6 4639 3684 cpy r1,r7 000014d8 2016 3685 movs r0,22 3686 .L22253: 3687 000014da f7fefda2* 3688 bl Can_CheckController 000014de 2801 3689 cmp r0,1 000014e0 bf01 3690 itttt eq 000014e2 f8960044 3691 ldrb r0,[r6,68] 000014e6 2801 3692 cmp r0,1 000014e8 f89505ac 3693 ldrb r0,[r5,1452] 000014ec 2801 3694 cmp r0,1 000014ee d107* 3695 bne .L21960 000014f0 78b0 3696 ldrb r0,[r6,2] 3697 .L22255: 3698 000014f2 f000f800* 3699 bl Can_Drv_ClearInjection 000014f6 b2c4 3700 uxtb r4,r0 000014f8 2c00 3701 cmp r4,0 000014fa bf08 3702 it eq 000014fc f88545ac 3703 strb r4,[r5,1452] 3704 .L21960: 00001500 4620 3705 cpy r0,r4 3706 .L22257: 3707 00001502 bdf0 3708 pop {r4-r7,pc} 3709 .endf Can_ClearInjectError 3710 ;ReturnVal r4 local 3711 ;ConfigPtr r6 local 3712 3713 ;ControllerId r7 param 3714 3715 .section ".ghcalltbl","" 0000026c 00000000* 3716 .L22252: .data.w .L22251 3717 .endo .L22252 00000270 00000000* 3718 .L22254: .data.w .L22253 3719 .endo .L22254 00000274 00000000* 3720 .L22256: .data.w .L22255 3721 .endo .L22256 3722 .section ".ghrettbl","" 000000ec 00000000* 3723 .L22258: .data.w .L22257 3724 .endo .L22258 3725 .section ".mcal_code","ax" 3726 ..gh.f.f.1.a.1.e.27: 3727 .endo ..gh.f.f.1.a.1.e.27 3728 Can_MainFunction_BusOff:: 3729 .L22309: 3730 00001504 4770 3731 ret Page 66 objs\release\Can.s 3732 .endf Can_MainFunction_BusOff 3733 3734 .section ".bss","awb" 3735 .L22295: 3736 .endo .L22295 3737 .section ".ghrettbl","" 000000f0 00000000* 3738 .L22310: .data.w .L22309 3739 .endo .L22310 3740 .section ".mcal_code","ax" 3741 ;Can_PreDefinedConfigPtr Can_PreDefinedConfigPtr import 3742 ;Can_DisableInterruptLevel Can_DisableInterruptLevel static 3743 ;Can_BaudrateIdConfig Can_BaudrateIdConfig static 3744 ;Can_ControllerState Can_ControllerState static 3745 ;Can_DriverStatus Can_DriverStatus static 3746 ;Can_ConfigPtr Can_ConfigPtr static 3747 ;Can_ControllerConfigPtr Can_ControllerConfigPtr static 3748 ;Can_HwObjectConfigPtr Can_HwObjectConfigPtr static 3749 ;Can_Status0 Can_Status0 static 3750 ;Can_TxPduId Can_TxPduId static 3751 ;Can_HwToMapMbIndex Can_HwToMapMbIndex static 3752 ;Can_State Can_State static 3753 ;Can_InterruptEnableStatus Can_InterruptEnableStatus static 3754 ;Can_EccInjectionStatus Can_EccInjectionStatus static 3755 ;____UNNAMED_1_static_in_Can_SetControllerFifoFilter ____UNNAMED_1_static_in_Can_SetControllerFifoFilter static 3756 3757 .global Can_PreDefinedConfigPtr 3758 3759 .ghsnote info, 27, 3, 640