;Driver Command: ccarm -c -MD -IGenerated\inc\ -I..\Generated\inc -I..\Src ; -I..\Src -I..\Generated\inc\ -I..\Src ; -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\Can_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\Icu_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\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 -cpu=cortexm4f -Wshadow ; -Wtrigraphs -keeptempfiles -Wundef -Wimplicit-int -dual_debug ; --no_commons --no_exceptions --gnu_asm ; --incorrect_pragma_warnings --prototype_errors -list ; --misra_2004=2.1 -ignore_debug_references ; -preprocess_assembly_files -thumb_lib -thumb --hardware_divide ; -c99 -no_japanese_automotive_c --std --stdl --slash_comment ; -Ospeed --no_debug -object_dir=objs\release -filetype.c ; ..\..\..\mcal\Pwm_ZX_K14xM\Src\Pwm.c -o objs\release\Pwm.o ;Source File: ..\..\..\mcal\Pwm_ZX_K14xM\Src\Pwm.c ;Directory: ; D:\AUTOMFL\AutoSAR\ZHIXIN\MCAL_Capri(1.2.0)\Project\Capri\MultiProject ;Compile Date: Mon Dec 18 00:01:44 2023 ;Host OS: Win64 ;Version: C-ARM 2021.1.4 RELEASE VERSION ;Release: Compiler v2021.1.4 ;Revision Date: Mon Apr 26 12:37:23 2021 ;Release Date: Mon Apr 26 08:01:05 2021 ; ecom -w -OLM .section ".mcal_code","ax" .align 2 ..gh.f.f.1.a.1.e.0: .endo ..gh.f.f.1.a.1.e.0 .thumb2 Pwm_CheckChnCfgStruct: push {r4,lr} add r2,r0,r0 lsl 2 movw r3,%lo(Pwm_ConfigPtr) movt r3,%hi(Pwm_ConfigPtr) ldr r0,[r3] ldr r0,[r0,4] add r0,r0,r2 lsl 2 ldr r0,[r0,8] ldr r2,[r0,4] movs r4,0 cmp r2,1 bne .L224 ldr r0,[r0,12] cbnz r0,.L228 b .L229 .L224: cmp r2,2 bne .L229 ldr r0,[r0,16] cbnz r0,.L228 .L229: movs r4,1 cpy r2,r1 movs r3,52 movs r1,0 movs r0,121 .L444: bl Det_ReportError .L228: cpy r0,r4 .L446: pop {r4,pc} .endf Pwm_CheckChnCfgStruct ;RetVal r4 local ;DrvwChnCfgPtr r0 local ;ChannelNumber r0 param ;ServiceId r1 param .section ".bss","awb" .align 4 Pwm_ConfigPtr: .space 4 .endo Pwm_ConfigPtr .section ".ghcalltbl","" .align 4 .L445: .data.w .L444 .endo .L445 .section ".ghrettbl","" .align 4 .L447: .data.w .L446 .endo .L447 .section ".mcal_code","ax" ..gh.f.f.1.a.1.e.1: .endo ..gh.f.f.1.a.1.e.1 Pwm_CheckModuleCfgStruct: push {r4,lr} movw r3,%lo(Pwm_ConfigPtr) movt r3,%hi(Pwm_ConfigPtr) ldr r2,[r3] ldr r2,[r2,12] add r0,r2,r0 lsl 4 ldr r2,[r0,4] movs r4,0 cmp r2,1 bne .L450 ldr r0,[r0,8] cbnz r0,.L454 b .L455 .L450: cmp r2,2 bne .L455 ldr r0,[r0,12] cbnz r0,.L454 .L455: movs r4,1 cpy r2,r1 movs r3,53 movs r1,0 movs r0,121 .L676: bl Det_ReportError .L454: cpy r0,r4 .L678: pop {r4,pc} .endf Pwm_CheckModuleCfgStruct ;RetVal r4 local ;DrvwHwCfgPtr r0 local ;ModuleId r0 param ;ServiceId r1 param .section ".ghcalltbl","" .L677: .data.w .L676 .endo .L677 .section ".ghrettbl","" .L679: .data.w .L678 .endo .L679 .section ".mcal_code","ax" .assert 0x0 + (Pwm_ConfigPtr - Pwm_ConfigPtr) +0 == 0 ..gh.f.f.1.a.1.e.2: .endo ..gh.f.f.1.a.1.e.2 Pwm_CheckPwmCfgStruct: push {r4-r6,lr} movw r5,%lo(Pwm_ConfigPtr) movt r5,%hi(Pwm_ConfigPtr) ldr r1,[r5] ldrb r2,[r1] cpy r6,r0 movs r0,0 cpy r4,r0 cmp r0,r2 bhs .L691 .L684: cpy r1,r6 cpy r0,r4 .L1295: bl Pwm_CheckChnCfgStruct cmp r0,1 it eq .L1297: pop {r4-r6,pc} ldr r1,[r5] ldrb r2,[r1] adds r4,r4,1 uxtb r4,r4 cmp r4,r2 blo .L684 cmp r0,0 it ne .L1299: pop {r4-r6,pc} .L691: ldrb r1,[r1,8] cpy r4,r0 cmp r0,r1 it hs .L1301: pop {r4-r6,pc} .L694: cpy r1,r6 cpy r0,r4 .L1303: bl Pwm_CheckModuleCfgStruct cmp r0,1 it eq .L1305: pop {r4-r6,pc} ldr r1,[r5] ldrb r1,[r1,8] adds r4,r4,1 uxtb r4,r4 cmp r4,r1 blo .L694 .L1307: pop {r4-r6,pc} .endf Pwm_CheckPwmCfgStruct ;RetVal r0 local ;Index r4 local ;ServiceId r6 param .section ".ghcalltbl","" .L1296: .data.w .L1295 .endo .L1296 .section ".ghrettbl","" .L1298: .data.w .L1297 .endo .L1298 .L1300: .data.w .L1299 .endo .L1300 .L1302: .data.w .L1301 .endo .L1302 .section ".ghcalltbl","" .L1304: .data.w .L1303 .endo .L1304 .section ".ghrettbl","" .L1306: .data.w .L1305 .endo .L1306 .L1308: .data.w .L1307 .endo .L1308 .section ".mcal_code","ax" ..gh.f.f.1.a.1.e.3: .endo ..gh.f.f.1.a.1.e.3 Pwm_CheckHwAndChannel: push {r4-r6,lr} cpy r5,r1 movw r1,%lo(Pwm_DrvState) movt r1,%hi(Pwm_DrvState) ldr r1,[r1] cbnz r1,.L1315 cpy r2,r5 movs r3,17 movs r0,121 .L1789: bl Det_ReportError movs r4,1 b .L1309 .L1315: cpy r6,r0 movs r4,0 cmp r0,13 blo .L1320 cpy r2,r5 movs r3,18 cpy r1,r4 movs r0,121 .L1791: bl Det_ReportError movs r4,1 .L1320: cbnz r4,.L1309 movw r1,%lo(Pwm_ConfigPtr) movt r1,%hi(Pwm_ConfigPtr) ldr r0,[r1] ldrb r0,[r0] cmp r6,r0 blo .L1329 movs r4,1 cpy r2,r5 movs r3,64 movs r1,0 movs r0,121 .L1793: bl Det_ReportError .L1329: cbnz r4,.L1309 cpy r1,r5 cpy r0,r6 .L1795: bl Pwm_CheckChnCfgStruct cpy r4,r0 .L1309: cpy r0,r4 .L1797: pop {r4-r6,pc} .endf Pwm_CheckHwAndChannel ;RetVal r4 local ;ChannelNumber r6 param ;ServiceId r5 param .section ".mcal_bss","awb" .align 4 Pwm_DrvState: .space 12 .endo Pwm_DrvState .section ".ghcalltbl","" .L1790: .data.w .L1789 .endo .L1790 .L1792: .data.w .L1791 .endo .L1792 .L1794: .data.w .L1793 .endo .L1794 .L1796: .data.w .L1795 .endo .L1796 .section ".ghrettbl","" .L1798: .data.w .L1797 .endo .L1798 .section ".mcal_code","ax" .assert 0x0 + (Pwm_ConfigPtr - Pwm_ConfigPtr) +0 == 0 ..gh.f.f.1.a.1.e.4: .endo ..gh.f.f.1.a.1.e.4 Pwm_Init:: push {r4-r7,lr} movw r6,%lo(Pwm_DrvState) movt r6,%hi(Pwm_DrvState) ldr r1,[r6] cbz r1,.L1805 movs r3,20 movs r2,0 cpy r1,r2 movs r0,121 pop {r4-r7,lr} .L3553: b Det_ReportError .L1805: cbz r0,.L1801 movs r3,16 cpy r2,r1 movs r0,121 pop {r4-r7,lr} .L3555: b Det_ReportError .L1801: movw r2,%lo(Pwm_PreDefinedConfigPtr) movt r2,%hi(Pwm_PreDefinedConfigPtr) ldr r0,[r2] movw r5,%lo(Pwm_ConfigPtr) movt r5,%hi(Pwm_ConfigPtr) str r0,[r5] cpy r0,r1 .L3557: bl Pwm_CheckPwmCfgStruct subs r4,r0,0 it ne .L3559: pop {r4-r7,pc} ldr r2,[r5] ldrb r3,[r2] cmp r0,r3 bhs .L1812 .L1814: ldr r1,[r2,4] add r0,r4,r4 lsl 2 add r1,r1,r0 lsl 2 ldr r0,[r1,12] ldr r1,[r1,8] cbnz r0,.L1816 .L3561: bl Pwm_Drvw_InitIdleState ldr r2,[r5] ldrb r3,[r2] adds r4,r4,1 uxtb r4,r4 cmp r4,r3 blo .L1814 b .L1812 .L1816: cmp r0,1 bne .L1815 .L3563: bl Pwm_Drvw_InitIdleState ldr r2,[r5] ldrb r3,[r2] .L1815: adds r4,r4,1 uxtb r4,r4 cmp r4,r3 blo .L1814 .L1812: ldrb r1,[r2,8] movs r4,0 cmp r4,r1 bhs .L1822 .L1825: ldr r1,[r2,12] add r0,r1,r4 lsr 20 .L3565: bl Pwm_Drvw_Init ldr r2,[r5] ldrb r1,[r2,8] add r4,r4,1<<24 cmp r1,r4 lsr 24 bhi .L1825 ldrb r3,[r2] .L1822: movs r4,0 cmp r4,r3 bhs .L1826 .L1829: ldr r1,[r2,4] add r0,r4,r4 lsl 2 add r1,r1,r0 lsl 2 ldr r1,[r1,8] ldrh r0,[r1,8] .L3567: bl Pwm_Drvw_SetDefaultDutyCycle ldr r2,[r5] ldrb r1,[r2] adds r4,r4,1 uxtb r4,r4 cmp r4,r1 blo .L1829 ldrb r1,[r2,8] .L1826: movs r4,0 cmp r4,r1 bhs .L1830 .L1833: ldr r0,[r2,12] lsrs r7,r4,20 adds r1,r7,r0 ldrb r0,[r0,r7] ldr r1,[r1,4] .L3569: bl Pwm_Drvw_SyncDefaultDutyCycle ldr r0,[r5] ldr r0,[r0,12] add r0,r0,r7 .L3571: bl Pwm_Drvw_StartInstance ldr r2,[r5] ldrb r3,[r2,8] add r4,r4,1<<24 cmp r3,r4 lsr 24 bhi .L1833 .L1830: movs r1,0 movs r2,2 movs r0,1 stm r6,{r0-r2} .L3573: pop {r4-r7,pc} .endf Pwm_Init ;Index r4 local ;DrvwChnCfgPtr r1 local ;State r0 local ;RetVal r4 local ;ConfigPtr r0 param .section ".ghtailcalltbl","" .align 4 .L3554: .data.w .L3553 .endo .L3554 .L3556: .data.w .L3555 .endo .L3556 .section ".ghcalltbl","" .L3558: .data.w .L3557 .endo .L3558 .section ".ghrettbl","" .L3560: .data.w .L3559 .endo .L3560 .section ".ghcalltbl","" .L3562: .data.w .L3561 .endo .L3562 .L3564: .data.w .L3563 .endo .L3564 .L3566: .data.w .L3565 .endo .L3566 .L3568: .data.w .L3567 .endo .L3568 .L3570: .data.w .L3569 .endo .L3570 .L3572: .data.w .L3571 .endo .L3572 .section ".ghrettbl","" .L3574: .data.w .L3573 .endo .L3574 .section ".mcal_code","ax" .assert 0x0 + (Pwm_ConfigPtr - Pwm_ConfigPtr) +0 == 0 ..gh.f.f.1.a.1.e.5: .endo ..gh.f.f.1.a.1.e.5 Pwm_DeInit:: push {r4-r6,lr} movw r6,%lo(Pwm_DrvState) movt r6,%hi(Pwm_DrvState) ldr r1,[r6] cbnz r1,.L3577 movs r3,17 movs r2,1 movs r0,121 pop {r4-r6,lr} .L4178: b Det_ReportError .L3577: movs r0,1 .L4180: bl Pwm_CheckPwmCfgStruct subs r4,r0,0 it ne .L4182: pop {r4-r6,pc} movw r5,%lo(Pwm_ConfigPtr) movt r5,%hi(Pwm_ConfigPtr) ldr r1,[r5] ldrb r0,[r1] cmp r4,r0 bhs .L3582 .L3585: ldr r1,[r1,4] add r0,r4,r4 lsl 2 add r1,r1,r0 lsl 2 ldr r0,[r1,8] .L4184: bl Pwm_Drvw_SetOutputToIdle ldr r1,[r5] ldrb r2,[r1] adds r4,r4,1 uxtb r4,r4 cmp r4,r2 blo .L3585 .L3582: ldrb r0,[r1,8] movs r4,0 cmp r4,r0 bhs .L3586 .L3589: ldr r1,[r1,12] add r0,r1,r4 lsr 20 .L4186: bl Pwm_Drvw_DeInit ldr r1,[r5] ldrb r3,[r1,8] add r4,r4,1<<24 cmp r3,r4 lsr 24 bhi .L3589 .L3586: movs r0,0 str r0,[r5] movs r1,2 cpy r2,r1 stm r6,{r0-r2} .L4188: pop {r4-r6,pc} .endf Pwm_DeInit ;Index r4 local ;RetVal r4 local .section ".ghtailcalltbl","" .L4179: .data.w .L4178 .endo .L4179 .section ".ghcalltbl","" .L4181: .data.w .L4180 .endo .L4181 .section ".ghrettbl","" .L4183: .data.w .L4182 .endo .L4183 .section ".ghcalltbl","" .L4185: .data.w .L4184 .endo .L4185 .L4187: .data.w .L4186 .endo .L4187 .section ".ghrettbl","" .L4189: .data.w .L4188 .endo .L4189 .section ".mcal_code","ax" ..gh.f.f.1.a.1.e.6: .endo ..gh.f.f.1.a.1.e.6 Pwm_SetDutyCycle:: push {r4-r5,lr} cpy r5,r1 cpy r4,r0 movs r1,2 .L4355: bl Pwm_CheckHwAndChannel cmp r0,0 it ne .L4357: pop {r4-r5,pc} cmp r5,1<<15 bhi .L4194 movw r2,%lo(Pwm_ConfigPtr) movt r2,%hi(Pwm_ConfigPtr) ldr r0,[r2] ldr r0,[r0,4] add r1,r4,r4 lsl 2 add r0,r0,r1 lsl 2 ldr r1,[r0,8] cpy r0,r5 .L4359: bl Pwm_Drvw_SetDutyCycle cmp r0,0 it eq .L4361: pop {r4-r5,pc} .L4194: movs r3,50 movs r2,2 movs r1,0 movs r0,121 pop {r4-r5,lr} .L4363: b Det_ReportError .endf Pwm_SetDutyCycle ;ChannelNumber r4 param ;DutyCycle r5 param .section ".ghcalltbl","" .L4356: .data.w .L4355 .endo .L4356 .section ".ghrettbl","" .L4358: .data.w .L4357 .endo .L4358 .section ".ghcalltbl","" .L4360: .data.w .L4359 .endo .L4360 .section ".ghrettbl","" .L4362: .data.w .L4361 .endo .L4362 .section ".ghtailcalltbl","" .L4364: .data.w .L4363 .endo .L4364 .section ".mcal_code","ax" .assert 0x0 + (Pwm_ConfigPtr - Pwm_ConfigPtr) +0 == 0 ..gh.f.f.1.a.1.e.7: .endo ..gh.f.f.1.a.1.e.7 Pwm_SetPeriodAndDuty:: push {r4-r7,lr} cpy r6,r1 cpy r7,r2 cpy r4,r0 movs r1,3 .L4813: bl Pwm_CheckHwAndChannel cmp r0,0 it ne .L4815: pop {r4-r7,pc} movw r5,%lo(Pwm_ConfigPtr) movt r5,%hi(Pwm_ConfigPtr) add r0,r4,r4 lsl 2 lsls r4,r0,2 ldr r0,[r5] ldr r0,[r0,4] adds r1,r4,r0 ldr r0,[r1,8] ldr r1,[r1,4] cmp r1,0 bne .L4376 .L4817: bl Pwm_Drvw_GetMaxPeriodValue cmp r6,r0 bls .L4370 movs r3,26 movs r2,3 movs r1,0 movs r0,121 pop {r4-r7,lr} .L4819: b Det_ReportError .L4376: movs r3,19 movs r2,3 movs r1,0 movs r0,121 pop {r4-r7,lr} .L4821: b Det_ReportError .L4370: cmp r7,1<<15 bhi .L4379 ldr r0,[r5] ldr r0,[r0,4] add r0,r0,r4 ldr r2,[r0,8] cpy r1,r7 cpy r0,r6 .L4823: bl Pwm_Drvw_SetPeriodAndDuty cmp r0,0 it eq .L4825: pop {r4-r7,pc} .L4379: movs r3,50 movs r2,3 movs r1,0 movs r0,121 pop {r4-r7,lr} .L4827: b Det_ReportError .endf Pwm_SetPeriodAndDuty ;DrvwChnCfgPtr r0 local ;ChannelNumber r4 param ;Period r6 param ;DutyCycle r7 param .section ".ghcalltbl","" .L4814: .data.w .L4813 .endo .L4814 .section ".ghrettbl","" .L4816: .data.w .L4815 .endo .L4816 .section ".ghcalltbl","" .L4818: .data.w .L4817 .endo .L4818 .section ".ghtailcalltbl","" .L4820: .data.w .L4819 .endo .L4820 .L4822: .data.w .L4821 .endo .L4822 .section ".ghcalltbl","" .L4824: .data.w .L4823 .endo .L4824 .section ".ghrettbl","" .L4826: .data.w .L4825 .endo .L4826 .section ".ghtailcalltbl","" .L4828: .data.w .L4827 .endo .L4828 .section ".mcal_code","ax" ..gh.f.f.1.a.1.e.8: .endo ..gh.f.f.1.a.1.e.8 Pwm_SetOutputToIdle:: push {r4,lr} cpy r4,r0 movs r1,4 .L4916: bl Pwm_CheckHwAndChannel cmp r0,0 it ne .L4918: pop {r4,pc} movw r2,%lo(Pwm_ConfigPtr) movt r2,%hi(Pwm_ConfigPtr) ldr r0,[r2] ldr r0,[r0,4] add r1,r4,r4 lsl 2 add r0,r0,r1 lsl 2 ldr r0,[r0,8] pop {r4,lr} .L4920: b Pwm_Drvw_SetOutputToIdle .endf Pwm_SetOutputToIdle ;ChannelNumber r4 param .section ".ghcalltbl","" .L4917: .data.w .L4916 .endo .L4917 .section ".ghrettbl","" .L4919: .data.w .L4918 .endo .L4919 .section ".ghtailcalltbl","" .L4921: .data.w .L4920 .endo .L4921 .section ".mcal_code","ax" ..gh.f.f.1.a.1.e.9: .endo ..gh.f.f.1.a.1.e.9 Pwm_GetOutputState:: push {r4-r5,lr} movw r3,%lo(Pwm_ConfigPtr) movt r3,%hi(Pwm_ConfigPtr) ldr r1,[r3] ldr r1,[r1,4] add r2,r0,r0 lsl 2 add r1,r1,r2 lsl 2 ldr r5,[r1,8] movs r4,0 movs r1,5 .L5043: bl Pwm_CheckHwAndChannel cbnz r0,.L4924 cpy r0,r5 .L5045: bl Pwm_Drvw_GetOutputState cmp r0,1 it eq mov r4,1 .L4924: cpy r0,r4 .L5047: pop {r4-r5,pc} .endf Pwm_GetOutputState ;RetVal r4 local ;DrvwChnCfgPtr r5 local ;ChannelNumber none param .section ".ghcalltbl","" .L5044: .data.w .L5043 .endo .L5044 .L5046: .data.w .L5045 .endo .L5046 .section ".ghrettbl","" .L5048: .data.w .L5047 .endo .L5048 .section ".mcal_code","ax" ..gh.f.f.1.a.1.e.10: .endo ..gh.f.f.1.a.1.e.10 Pwm_DisableNotification:: push {r4,lr} movw r3,%lo(Pwm_ConfigPtr) movt r3,%hi(Pwm_ConfigPtr) ldr r1,[r3] ldr r1,[r1,4] add r2,r0,r0 lsl 2 add r1,r1,r2 lsl 2 ldr r4,[r1,8] movs r1,6 .L5139: bl Pwm_CheckHwAndChannel cmp r0,0 it ne .L5141: pop {r4,pc} cpy r0,r4 pop {r4,lr} .L5143: b Pwm_Drvw_DisableNotification .endf Pwm_DisableNotification ;DrvwChnCfgPtr r4 local ;ChannelNumber none param .section ".ghcalltbl","" .L5140: .data.w .L5139 .endo .L5140 .section ".ghrettbl","" .L5142: .data.w .L5141 .endo .L5142 .section ".ghtailcalltbl","" .L5144: .data.w .L5143 .endo .L5144 .section ".mcal_code","ax" .assert 0x0 + (Pwm_ConfigPtr - Pwm_ConfigPtr) +0 == 0 ..gh.f.f.1.a.1.e.11: .endo ..gh.f.f.1.a.1.e.11 Pwm_EnableNotification:: push {r4-r7,lr} movw r5,%lo(Pwm_ConfigPtr) movt r5,%hi(Pwm_ConfigPtr) add r2,r0,r0 lsl 2 lsls r7,r2,2 ldr r2,[r5] ldr r2,[r2,4] movs r4,r1 add r2,r2,r7 ldr r6,[r2,8] bne .L5147 movs r1,7 .L5493: bl Pwm_CheckHwAndChannel cmp r0,0 it ne .L5495: pop {r4-r7,pc} b .L5154 .L5147: cmp r1,1 ite ne mov r4,2 mov r4,1 movs r1,7 .L5497: bl Pwm_CheckHwAndChannel cmp r0,0 it ne .L5499: pop {r4-r7,pc} .L5154: ldr r0,[r5] ldr r0,[r0,4] add r0,r0,r7 ldr r1,[r0,16] cbnz r1,.L5159 movs r3,49 movs r2,7 movs r0,121 pop {r4-r7,lr} .L5501: b Det_ReportError .L5159: cpy r1,r6 cpy r0,r4 .L5503: bl Pwm_Drvw_CheckEdgeNotificationType cmp r0,0 beq .L5164 movs r1,0 movs r3,48 movs r2,7 movs r0,121 pop {r4-r7,lr} .L5505: b Det_ReportError .L5164: cpy r1,r6 cpy r0,r4 pop {r4-r7,lr} .L5507: b Pwm_Drvw_EnableNotification .endf Pwm_EnableNotification ;PwmDrvwNotification r4 local ;DrvwChnCfgPtr r6 local ;RetVal r5 local ;ChannelNumber r0 param ;Notification r1 param .section ".ghcalltbl","" .L5494: .data.w .L5493 .endo .L5494 .section ".ghrettbl","" .L5496: .data.w .L5495 .endo .L5496 .section ".ghcalltbl","" .L5498: .data.w .L5497 .endo .L5498 .section ".ghrettbl","" .L5500: .data.w .L5499 .endo .L5500 .section ".ghtailcalltbl","" .L5502: .data.w .L5501 .endo .L5502 .section ".ghcalltbl","" .L5504: .data.w .L5503 .endo .L5504 .section ".ghtailcalltbl","" .L5506: .data.w .L5505 .endo .L5506 .L5508: .data.w .L5507 .endo .L5508 .section ".mcal_code","ax" ..gh.f.f.1.a.1.e.12: .endo ..gh.f.f.1.a.1.e.12 Pwm_GetVersionInfo:: movs r1,r0 bne .L5511 movs r3,21 movs r2,8 movs r0,121 .L5614: b Det_ReportError .L5511: movs r1,179 strh r1,[r0] movs r1,121 strh r1,[r0,2] movs r1,1 strb r1,[r0,4] movs r1,2 strb r1,[r0,5] movs r1,0 strb r1,[r0,6] .L5616: ret .endf Pwm_GetVersionInfo ;versioninfo r0 param .section ".bss","awb" .L5572: .endo .L5572 .section ".ghtailcalltbl","" .L5615: .data.w .L5614 .endo .L5615 .section ".ghrettbl","" .L5617: .data.w .L5616 .endo .L5617 .section ".mcal_code","ax" ..gh.f.f.1.a.1.e.13: .endo ..gh.f.f.1.a.1.e.13 Pwm_GetChannelDutyCycle:: push {r4-r5,lr} movs r4,0 cpy r5,r0 movs r1,32 .L5792: bl Pwm_CheckHwAndChannel cbnz r0,.L5622 movw r2,%lo(Pwm_ConfigPtr) movt r2,%hi(Pwm_ConfigPtr) ldr r0,[r2] ldr r0,[r0,4] add r1,r5,r5 lsl 2 add r0,r0,r1 lsl 2 ldr r0,[r0,8] .L5794: bl Pwm_Drvw_GetChannelDutyCycle cpy r4,r0 cmp r0,1<<15 bls .L5622 movs r3,50 movs r2,32 movs r1,0 movs r0,121 .L5796: bl Det_ReportError .L5622: cpy r0,r4 .L5798: pop {r4-r5,pc} .endf Pwm_GetChannelDutyCycle ;DutyCycle r4 local ;ChannelNumber r5 param .section ".ghcalltbl","" .L5793: .data.w .L5792 .endo .L5793 .L5795: .data.w .L5794 .endo .L5795 .L5797: .data.w .L5796 .endo .L5797 .section ".ghrettbl","" .L5799: .data.w .L5798 .endo .L5799 .section ".mcal_code","ax" ..gh.f.f.1.a.1.e.14: .endo ..gh.f.f.1.a.1.e.14 Pwm_ForceOutputToLowLevel:: push {r4-r5,lr} cpy r4,r1 movw r3,%lo(Pwm_ConfigPtr) movt r3,%hi(Pwm_ConfigPtr) ldr r1,[r3] ldr r1,[r1,4] add r2,r0,r0 lsl 2 add r1,r1,r2 lsl 2 ldr r5,[r1,8] movs r1,33 .L5891: bl Pwm_CheckHwAndChannel cmp r0,0 it ne .L5893: pop {r4-r5,pc} cpy r1,r5 cpy r0,r4 pop {r4-r5,lr} .L5895: b Pwm_Drvw_ForceOutputToLowLevel .endf Pwm_ForceOutputToLowLevel ;DrvwChnCfgPtr r5 local ;ChannelNumber none param ;ForceEnable r4 param .section ".ghcalltbl","" .L5892: .data.w .L5891 .endo .L5892 .section ".ghrettbl","" .L5894: .data.w .L5893 .endo .L5894 .section ".ghtailcalltbl","" .L5896: .data.w .L5895 .endo .L5896 .section ".mcal_code","ax" .assert 0x0 + (Pwm_ConfigPtr - Pwm_ConfigPtr) +0 == 0 ..gh.f.f.1.a.1.e.15: .endo ..gh.f.f.1.a.1.e.15 Pwm_SetChannelDeadTimeTicks:: push {r4-r7,lr} cpy r6,r1 movw r4,%lo(Pwm_ConfigPtr) movt r4,%hi(Pwm_ConfigPtr) add r1,r0,r0 lsl 2 lsls r5,r1,2 ldr r1,[r4] ldr r1,[r1,4] add r1,r1,r5 ldr r7,[r1,8] movs r1,43 .L6069: bl Pwm_CheckHwAndChannel cmp r0,0 it ne .L6071: pop {r4-r7,pc} cpy r0,r7 .L6073: bl Pwm_Drvw_CheckDeadTimeMode cbz r0,.L5901 movs r3,18 movs r2,43 movs r1,0 movs r0,121 pop {r4-r7,lr} .L6075: b Det_ReportError .L5901: ldr r0,[r4] ldr r0,[r0,4] add r0,r0,r5 ldr r1,[r0,8] cpy r0,r6 .L6077: bl Pwm_Drvw_SetChannelDeadTimeTicks cmp r0,0 it eq .L6079: pop {r4-r7,pc} movs r3,65 movs r2,43 movs r1,0 movs r0,121 pop {r4-r7,lr} .L6081: b Det_ReportRuntimeError .endf Pwm_SetChannelDeadTimeTicks ;DrvwChnCfgPtr r7 local ;ChannelNumber none param ;DeadTimeTicks r6 param .section ".ghcalltbl","" .L6070: .data.w .L6069 .endo .L6070 .section ".ghrettbl","" .L6072: .data.w .L6071 .endo .L6072 .section ".ghcalltbl","" .L6074: .data.w .L6073 .endo .L6074 .section ".ghtailcalltbl","" .L6076: .data.w .L6075 .endo .L6076 .section ".ghcalltbl","" .L6078: .data.w .L6077 .endo .L6078 .section ".ghrettbl","" .L6080: .data.w .L6079 .endo .L6080 .section ".ghtailcalltbl","" .L6082: .data.w .L6081 .endo .L6082 .section ".mcal_code","ax" ..gh.f.f.1.a.1.e.16: .endo ..gh.f.f.1.a.1.e.16 Pwm_WriteDutyCycleToBuffer:: push {r4-r5,lr} cpy r5,r1 cpy r4,r0 movs r1,42 .L6243: bl Pwm_CheckHwAndChannel cmp r0,0 it ne .L6245: pop {r4-r5,pc} movw r2,%lo(Pwm_ConfigPtr) movt r2,%hi(Pwm_ConfigPtr) ldr r0,[r2] ldr r0,[r0,4] add r1,r4,r4 lsl 2 cmp r5,1<<15 add r0,r0,r1 lsl 2 ldr r1,[r0,8] bhi .L6087 cpy r0,r5 .L6247: bl Pwm_Drvw_WriteDutyCycleToBuffer cmp r0,0 it eq .L6249: pop {r4-r5,pc} .L6087: movs r3,50 movs r2,42 movs r1,0 movs r0,121 pop {r4-r5,lr} .L6251: b Det_ReportError .endf Pwm_WriteDutyCycleToBuffer ;DrvwChnCfgPtr r1 local ;ChannelNumber r4 param ;DutyCycle r5 param .section ".ghcalltbl","" .L6244: .data.w .L6243 .endo .L6244 .section ".ghrettbl","" .L6246: .data.w .L6245 .endo .L6246 .section ".ghcalltbl","" .L6248: .data.w .L6247 .endo .L6248 .section ".ghrettbl","" .L6250: .data.w .L6249 .endo .L6250 .section ".ghtailcalltbl","" .L6252: .data.w .L6251 .endo .L6252 .section ".mcal_code","ax" ..gh.f.f.1.a.1.e.17: .endo ..gh.f.f.1.a.1.e.17 Pwm_WritePeriodAndDutyToBuffer:: push {r4-r6,lr} cpy r5,r1 cpy r6,r2 cpy r4,r0 movs r1,41 .L6569: bl Pwm_CheckHwAndChannel cmp r0,0 it ne .L6571: pop {r4-r6,pc} movw r2,%lo(Pwm_ConfigPtr) movt r2,%hi(Pwm_ConfigPtr) ldr r1,[r2] ldr r1,[r1,4] add r0,r4,r4 lsl 2 add r1,r1,r0 lsl 2 ldr r4,[r1,8] ldr r1,[r1,4] cmp r1,0 bne .L6264 cpy r0,r4 .L6573: bl Pwm_Drvw_GetMaxPeriodValue cmp r5,r0 bls .L6258 movs r3,26 movs r2,41 movs r1,0 movs r0,121 pop {r4-r6,lr} .L6575: b Det_ReportError .L6264: movs r3,19 movs r2,41 movs r1,0 movs r0,121 pop {r4-r6,lr} .L6577: b Det_ReportError .L6258: cmp r6,1<<15 bhi .L6271 cpy r2,r4 cpy r1,r6 cpy r0,r5 .L6579: bl Pwm_Drvw_WritePeriodAndDutyToBuffer cmp r0,0 it eq .L6581: pop {r4-r6,pc} .L6271: movs r3,50 movs r2,41 movs r1,0 movs r0,121 pop {r4-r6,lr} .L6583: b Det_ReportError .endf Pwm_WritePeriodAndDutyToBuffer ;DrvwChnCfgPtr r4 local ;DrvwChnCfgPtr r0 local ;ChannelNumber r4 param ;Period r5 param ;DutyCycle r6 param .section ".ghcalltbl","" .L6570: .data.w .L6569 .endo .L6570 .section ".ghrettbl","" .L6572: .data.w .L6571 .endo .L6572 .section ".ghcalltbl","" .L6574: .data.w .L6573 .endo .L6574 .section ".ghtailcalltbl","" .L6576: .data.w .L6575 .endo .L6576 .L6578: .data.w .L6577 .endo .L6578 .section ".ghcalltbl","" .L6580: .data.w .L6579 .endo .L6580 .section ".ghrettbl","" .L6582: .data.w .L6581 .endo .L6582 .section ".ghtailcalltbl","" .L6584: .data.w .L6583 .endo .L6584 .section ".mcal_code","ax" .assert 0x0 + (Pwm_ConfigPtr - Pwm_ConfigPtr) +0 == 0 ..gh.f.f.1.a.1.e.18: .endo ..gh.f.f.1.a.1.e.18 Pwm_WritePhaseShiftTicksToBuffer:: push {r4-r7,lr} cpy r6,r1 cpy r7,r2 cpy r4,r0 movs r1,45 .L7039: bl Pwm_CheckHwAndChannel cmp r0,0 it ne .L7041: pop {r4-r7,pc} movw r5,%lo(Pwm_ConfigPtr) movt r5,%hi(Pwm_ConfigPtr) add r0,r4,r4 lsl 2 lsls r4,r0,2 ldr r0,[r5] ldr r0,[r0,4] adds r1,r4,r0 ldr r0,[r1,8] ldr r1,[r1,4] cmp r1,0 bne .L6596 .L7043: bl Pwm_Drvw_GetMaxPeriodValue cmp r6,r0 bls .L6590 movs r3,26 movs r2,45 movs r1,0 movs r0,121 pop {r4-r7,lr} .L7045: b Det_ReportError .L6596: movs r3,19 movs r2,45 movs r1,0 movs r0,121 pop {r4-r7,lr} .L7047: b Det_ReportError .L6590: cmp r7,r6 lsr 1 bhi .L6600 movs r1,r7 bne .L6599 .L6600: movs r3,58 movs r2,45 movs r1,0 movs r0,121 pop {r4-r7,lr} .L7049: b Det_ReportError .L6599: ldr r0,[r5] ldr r0,[r0,4] add r0,r0,r4 ldr r2,[r0,8] cpy r0,r6 pop {r4-r7,lr} .L7051: b Pwm_Drvw_WritePhaseShiftTicksToBuffer .endf Pwm_WritePhaseShiftTicksToBuffer ;DrvwChnCfgPtr r0 local ;ChannelNumber r4 param ;Period r6 param ;PhaseShiftTicks r7 param .section ".ghcalltbl","" .L7040: .data.w .L7039 .endo .L7040 .section ".ghrettbl","" .L7042: .data.w .L7041 .endo .L7042 .section ".ghcalltbl","" .L7044: .data.w .L7043 .endo .L7044 .section ".ghtailcalltbl","" .L7046: .data.w .L7045 .endo .L7046 .L7048: .data.w .L7047 .endo .L7048 .L7050: .data.w .L7049 .endo .L7050 .L7052: .data.w .L7051 .endo .L7052 .section ".mcal_code","ax" ..gh.f.f.1.a.1.e.19: .endo ..gh.f.f.1.a.1.e.19 Pwm_SyncUpdate:: push {r4,lr} movw r1,%lo(Pwm_DrvState) movt r1,%hi(Pwm_DrvState) ldr r1,[r1] cbnz r1,.L7055 movs r3,17 movs r2,40 movs r0,121 pop {r4,lr} .L7238: b Det_ReportError .L7055: cpy r4,r0 cmp r0,4 bhs .L7058 movs r1,40 .L7240: bl Pwm_CheckModuleCfgStruct cmp r0,0 it ne .L7242: pop {r4,pc} movw r1,%lo(Pwm_ConfigPtr) movt r1,%hi(Pwm_ConfigPtr) ldr r0,[r1] ldr r0,[r0,12] add r0,r0,r4 lsl 4 pop {r4,lr} .L7244: b Pwm_Drvw_SyncUpdate .L7058: movs r3,54 movs r2,40 movs r1,0 movs r0,121 pop {r4,lr} .L7246: b Det_ReportError .endf Pwm_SyncUpdate ;ModuleId r4 param .section ".ghtailcalltbl","" .L7239: .data.w .L7238 .endo .L7239 .section ".ghcalltbl","" .L7241: .data.w .L7240 .endo .L7241 .section ".ghrettbl","" .L7243: .data.w .L7242 .endo .L7243 .section ".ghtailcalltbl","" .L7245: .data.w .L7244 .endo .L7245 .L7247: .data.w .L7246 .endo .L7247 .section ".mcal_code","ax" .assert 0x0 + (Pwm_ConfigPtr - Pwm_ConfigPtr) +0 == 0 ..gh.f.f.1.a.1.e.20: .endo ..gh.f.f.1.a.1.e.20 Pwm_SetPhaseShiftTicks:: push {r4-r7,lr} cpy r6,r1 cpy r7,r2 cpy r4,r0 movs r1,44 .L7711: bl Pwm_CheckHwAndChannel cmp r0,0 it ne .L7713: pop {r4-r7,pc} movw r5,%lo(Pwm_ConfigPtr) movt r5,%hi(Pwm_ConfigPtr) add r0,r4,r4 lsl 2 lsls r4,r0,2 ldr r0,[r5] ldr r0,[r0,4] adds r1,r4,r0 ldr r0,[r1,8] ldr r1,[r1,4] cmp r1,0 bne .L7259 .L7715: bl Pwm_Drvw_GetMaxPeriodValue cmp r6,r0 bls .L7253 movs r3,26 movs r2,44 movs r1,0 movs r0,121 pop {r4-r7,lr} .L7717: b Det_ReportError .L7259: movs r3,19 movs r2,44 movs r1,0 movs r0,121 pop {r4-r7,lr} .L7719: b Det_ReportError .L7253: cmp r7,r6 lsr 1 bhi .L7263 movs r1,r7 bne .L7262 .L7263: movs r3,58 movs r2,44 movs r1,0 movs r0,121 pop {r4-r7,lr} .L7721: b Det_ReportError .L7262: ldr r0,[r5] ldr r0,[r0,4] add r0,r0,r4 ldr r2,[r0,8] cpy r0,r6 pop {r4-r7,lr} .L7723: b Pwm_Drvw_SetPhaseShiftTicks .endf Pwm_SetPhaseShiftTicks ;DrvwChnCfgPtr r0 local ;ChannelNumber r4 param ;Period r6 param ;PhaseShiftTicks r7 param .section ".ghcalltbl","" .L7712: .data.w .L7711 .endo .L7712 .section ".ghrettbl","" .L7714: .data.w .L7713 .endo .L7714 .section ".ghcalltbl","" .L7716: .data.w .L7715 .endo .L7716 .section ".ghtailcalltbl","" .L7718: .data.w .L7717 .endo .L7718 .L7720: .data.w .L7719 .endo .L7720 .L7722: .data.w .L7721 .endo .L7722 .L7724: .data.w .L7723 .endo .L7724 .section ".mcal_code","ax" ..gh.f.f.1.a.1.e.21: .endo ..gh.f.f.1.a.1.e.21 Pwm_SetDutyPhaseShiftTicks:: push {r4-r7,lr} cpy r5,r1 cpy r6,r2 cpy r7,r3 cpy r4,r0 movs r1,55 .L7910: bl Pwm_CheckHwAndChannel cmp r0,0 it ne .L7912: pop {r4-r7,pc} add r0,r4,r4 lsl 2 movw r2,%lo(Pwm_ConfigPtr) movt r2,%hi(Pwm_ConfigPtr) cmp r5,1<<15 bhi .L7729 cpy r1,r0 ldr r0,[r2] ldr r0,[r0,4] add r0,r0,r1 lsl 2 ldr r4,[r0,8] cpy r1,r5 cpy r2,r4 cpy r0,r6 .L7914: bl Pwm_Drvw_CheckSetDutyPhaseShiftParams cmp r0,0 beq .L7731 movs r3,58 movs r2,55 movs r1,0 movs r0,121 pop {r4-r7,lr} .L7916: b Det_ReportError .L7731: cpy r3,r7 cpy r2,r4 cpy r1,r6 cpy r0,r5 pop {r4-r7,lr} .L7918: b Pwm_Drvw_SetDutyPhaseShiftTicks .L7729: movs r3,50 movs r2,55 movs r1,0 movs r0,121 pop {r4-r7,lr} .L7920: b Det_ReportError .endf Pwm_SetDutyPhaseShiftTicks ;DrvwChnCfgPtr r4 local ;ChannelNumber r4 param ;DutyCycle r5 param ;PhaseShiftTicks r6 param ;SyncUpdate r7 param .section ".ghcalltbl","" .L7911: .data.w .L7910 .endo .L7911 .section ".ghrettbl","" .L7913: .data.w .L7912 .endo .L7913 .section ".ghcalltbl","" .L7915: .data.w .L7914 .endo .L7915 .section ".ghtailcalltbl","" .L7917: .data.w .L7916 .endo .L7917 .L7919: .data.w .L7918 .endo .L7919 .L7921: .data.w .L7920 .endo .L7921 .section ".mcal_code","ax" ..gh.f.f.1.a.1.e.22: .endo ..gh.f.f.1.a.1.e.22 Pwm_EnableTriggerOutput:: push {r4-r5,lr} cpy r5,r1 movw r1,%lo(Pwm_DrvState) movt r1,%hi(Pwm_DrvState) ldr r1,[r1] cbnz r1,.L7924 movs r3,17 movs r2,46 movs r0,121 pop {r4-r5,lr} .L8143: b Det_ReportError .L7924: cpy r4,r0 cmp r0,4 bhs .L7927 movs r1,46 .L8145: bl Pwm_CheckModuleCfgStruct cmp r0,0 it ne .L8147: pop {r4-r5,pc} lsls r0,r5,23 beq .L7931 movw r1,%lo(Pwm_ConfigPtr) movt r1,%hi(Pwm_ConfigPtr) ldr r0,[r1] ldr r0,[r0,12] add r1,r0,r4 lsl 4 cpy r0,r5 pop {r4-r5,lr} .L8149: b Pwm_Drvw_EnableTriggerOutput .L7931: lsrs r1,r0,23 movs r3,61 movs r2,46 movs r0,121 pop {r4-r5,lr} .L8151: b Det_ReportError .L7927: movs r3,54 movs r2,46 movs r1,0 movs r0,121 pop {r4-r5,lr} .L8153: b Det_ReportError .endf Pwm_EnableTriggerOutput ;ModuleId r4 param ;TriggerMask r5 param .section ".ghtailcalltbl","" .L8144: .data.w .L8143 .endo .L8144 .section ".ghcalltbl","" .L8146: .data.w .L8145 .endo .L8146 .section ".ghrettbl","" .L8148: .data.w .L8147 .endo .L8148 .section ".ghtailcalltbl","" .L8150: .data.w .L8149 .endo .L8150 .L8152: .data.w .L8151 .endo .L8152 .L8154: .data.w .L8153 .endo .L8154 .section ".mcal_code","ax" ..gh.f.f.1.a.1.e.23: .endo ..gh.f.f.1.a.1.e.23 Pwm_DisableTriggerOutput:: push {r4-r5,lr} cpy r5,r1 movw r1,%lo(Pwm_DrvState) movt r1,%hi(Pwm_DrvState) ldr r1,[r1] cbnz r1,.L8157 movs r3,17 movs r2,47 movs r0,121 pop {r4-r5,lr} .L8383: b Det_ReportError .L8157: cpy r4,r0 cmp r0,4 bhs .L8160 movs r1,47 .L8385: bl Pwm_CheckModuleCfgStruct cmp r0,0 it ne .L8387: pop {r4-r5,pc} lsls r0,r5,23 beq .L8164 movw r1,%lo(Pwm_ConfigPtr) movt r1,%hi(Pwm_ConfigPtr) ldr r0,[r1] ldr r0,[r0,12] add r1,r0,r4 lsl 4 cpy r0,r5 pop {r4-r5,lr} .L8389: b Pwm_Drvw_DisableTriggerOutput .L8164: lsrs r1,r0,23 movs r3,61 movs r2,47 movs r0,121 pop {r4-r5,lr} .L8391: b Det_ReportError .L8160: movs r3,54 movs r2,47 movs r1,0 movs r0,121 pop {r4-r5,lr} .L8393: b Det_ReportError .endf Pwm_DisableTriggerOutput ;ModuleId r4 param ;TriggerMask r5 param .section ".ghtailcalltbl","" .L8384: .data.w .L8383 .endo .L8384 .section ".ghcalltbl","" .L8386: .data.w .L8385 .endo .L8386 .section ".ghrettbl","" .L8388: .data.w .L8387 .endo .L8388 .section ".ghtailcalltbl","" .L8390: .data.w .L8389 .endo .L8390 .L8392: .data.w .L8391 .endo .L8392 .L8394: .data.w .L8393 .endo .L8394 .section ".mcal_code","ax" ..gh.f.f.1.a.1.e.24: .endo ..gh.f.f.1.a.1.e.24 Pwm_MaskOutputs:: push {r4-r5,lr} cpy r5,r1 movw r1,%lo(Pwm_DrvState) movt r1,%hi(Pwm_DrvState) ldr r1,[r1] cbnz r1,.L8397 movs r3,17 movs r2,50 movs r0,121 pop {r4-r5,lr} .L8582: b Det_ReportError .L8397: cpy r4,r0 cmp r0,4 bhs .L8400 movs r1,50 .L8584: bl Pwm_CheckModuleCfgStruct cmp r0,0 it ne .L8586: pop {r4-r5,pc} movw r1,%lo(Pwm_ConfigPtr) movt r1,%hi(Pwm_ConfigPtr) ldr r0,[r1] ldr r0,[r0,12] add r1,r0,r4 lsl 4 cpy r0,r5 pop {r4-r5,lr} .L8588: b Pwm_Drvw_MaskOutputs .L8400: movs r3,54 movs r2,50 movs r1,0 movs r0,121 pop {r4-r5,lr} .L8590: b Det_ReportError .endf Pwm_MaskOutputs ;ModuleId r4 param ;ChannelMask r5 param .section ".ghtailcalltbl","" .L8583: .data.w .L8582 .endo .L8583 .section ".ghcalltbl","" .L8585: .data.w .L8584 .endo .L8585 .section ".ghrettbl","" .L8587: .data.w .L8586 .endo .L8587 .section ".ghtailcalltbl","" .L8589: .data.w .L8588 .endo .L8589 .L8591: .data.w .L8590 .endo .L8591 .section ".mcal_code","ax" ..gh.f.f.1.a.1.e.25: .endo ..gh.f.f.1.a.1.e.25 Pwm_UnMaskOutputs:: push {r4-r5,lr} cpy r5,r1 movw r1,%lo(Pwm_DrvState) movt r1,%hi(Pwm_DrvState) ldr r1,[r1] cbnz r1,.L8594 movs r3,17 movs r2,51 movs r0,121 pop {r4-r5,lr} .L8774: b Det_ReportError .L8594: cpy r4,r0 cmp r0,4 bhs .L8597 movs r1,51 .L8776: bl Pwm_CheckModuleCfgStruct cmp r0,0 it ne .L8778: pop {r4-r5,pc} movw r1,%lo(Pwm_ConfigPtr) movt r1,%hi(Pwm_ConfigPtr) ldr r0,[r1] ldr r0,[r0,12] add r1,r0,r4 lsl 4 cpy r0,r5 pop {r4-r5,lr} .L8780: b Pwm_Drvw_UnMaskOutputs .L8597: movs r3,54 movs r2,51 movs r1,0 movs r0,121 pop {r4-r5,lr} .L8782: b Det_ReportError .endf Pwm_UnMaskOutputs ;ModuleId r4 param ;ChannelMask r5 param .section ".ghtailcalltbl","" .L8775: .data.w .L8774 .endo .L8775 .section ".ghcalltbl","" .L8777: .data.w .L8776 .endo .L8777 .section ".ghrettbl","" .L8779: .data.w .L8778 .endo .L8779 .section ".ghtailcalltbl","" .L8781: .data.w .L8780 .endo .L8781 .L8783: .data.w .L8782 .endo .L8783 .section ".mcal_code","ax" .assert 0x0 + (Pwm_ConfigPtr - Pwm_ConfigPtr) +0 == 0 ..gh.f.f.1.a.1.e.26: .endo ..gh.f.f.1.a.1.e.26 Pwm_SetPowerState:: push {r4-r7,r10-fp,lr} movw r6,%lo(Pwm_DrvState) movt r6,%hi(Pwm_DrvState) movs r1,r0 beq .L8786 ldr r5,[r6,8] ldr r1,[r6] cpy r7,r0 cbnz r1,.L8792 movs r4,1 str r4,[r0] movs r3,17 movs r2,9 movs r0,121 .L9950: bl Det_ReportError cpy r0,r4 .L9952: pop {r4-r7,r10-fp,pc} .L8792: movs r0,9 .L9954: bl Pwm_CheckPwmCfgStruct movs r4,r0 bne .L8821 ldr r0,[r6,8] ldr r1,[r6,4] cmp r1,r0 bne .L8797 cpy r0,r4 str r4,[r7] .L9956: pop {r4-r7,r10-fp,pc} .L8797: cmp r0,2 blo .L8802 beq .L8801 movs r0,4 str r0,[r7] movs r4,1 movs r3,23 movs r2,9 movs r1,0 movs r0,121 .L9958: bl Det_ReportError cpy r0,r4 .L9960: pop {r4-r7,r10-fp,pc} .L8801: str r0,[r7] movs r4,1 movs r3,25 movs r2,9 movs r1,0 movs r0,121 .L9962: bl Det_ReportError cpy r0,r4 .L9964: pop {r4-r7,r10-fp,pc} .L8802: movw fp,%lo(Pwm_ConfigPtr) movt fp,%hi(Pwm_ConfigPtr) ldr.w r2,[fp] ldrb r0,[r2] mov r10,r4 cmp r4,r0 bhs .L8812 .L8808: ldr r1,[r2,4] add r0,r10,r10 lsl 2 add r1,r1,r0 lsl 2 ldr r0,[r1,8] .L9966: bl Pwm_Drvw_CheckIdleState cpy r4,r0 cmp r0,1 beq .L8814 ldr.w r2,[fp] ldrb r0,[r2] add r10,r10,1 uxtb r10,r10 cmp r10,r0 blo .L8808 .L8812: movs r10,r4 bne .L8814 ldrb r0,[r2,8] cmp r4,r0 bhs .L8816 .L8819: ldr r2,[r2,12] cpy r1,r5 add r0,r2,r10 lsr 20 .L9968: bl Pwm_Drvw_SetPowerState ldr.w r2,[fp] ldrb r3,[r2,8] add r10,r10,1<<24 cmp r3,r10 lsr 24 bhi .L8819 .L8816: str r4,[r7] ldr r0,[r6,8] str r0,[r6,4] movs r0,2 str r0,[r6,8] cpy r0,r4 .L9970: pop {r4-r7,r10-fp,pc} .L8814: movs r0,3 str r0,[r7] movs r3,22 movs r2,9 movs r1,0 movs r0,121 .L9972: bl Det_ReportRuntimeError cpy r0,r4 .L9974: pop {r4-r7,r10-fp,pc} .L8786: movs r3,21 movs r2,9 movs r0,121 .L9976: bl Det_ReportError movs r4,1 .L8821: cpy r0,r4 .L9978: pop {r4-r7,r10-fp,pc} .endf Pwm_SetPowerState ;RetVal r4 local ;Index r10 local ;PwmDrvwPowerState r5 local ;RetVal r4 local ;Result r7 param .section ".ghcalltbl","" .L9951: .data.w .L9950 .endo .L9951 .section ".ghrettbl","" .L9953: .data.w .L9952 .endo .L9953 .section ".ghcalltbl","" .L9955: .data.w .L9954 .endo .L9955 .section ".ghrettbl","" .L9957: .data.w .L9956 .endo .L9957 .section ".ghcalltbl","" .L9959: .data.w .L9958 .endo .L9959 .section ".ghrettbl","" .L9961: .data.w .L9960 .endo .L9961 .section ".ghcalltbl","" .L9963: .data.w .L9962 .endo .L9963 .section ".ghrettbl","" .L9965: .data.w .L9964 .endo .L9965 .section ".ghcalltbl","" .L9967: .data.w .L9966 .endo .L9967 .L9969: .data.w .L9968 .endo .L9969 .section ".ghrettbl","" .L9971: .data.w .L9970 .endo .L9971 .section ".ghcalltbl","" .L9973: .data.w .L9972 .endo .L9973 .section ".ghrettbl","" .L9975: .data.w .L9974 .endo .L9975 .section ".ghcalltbl","" .L9977: .data.w .L9976 .endo .L9977 .section ".ghrettbl","" .L9979: .data.w .L9978 .endo .L9979 .section ".mcal_code","ax" .assert 0x0 + (Pwm_DrvState - Pwm_DrvState) +0 == 0 ..gh.f.f.1.a.1.e.27: .endo ..gh.f.f.1.a.1.e.27 Pwm_GetCurrentPowerState:: push {r4-r5,lr} movs r4,0 subs r5,r1,0 it ne cmp r0,0 beq .L9982 movw r1,%lo(Pwm_DrvState) movt r1,%hi(Pwm_DrvState) ldr r2,[r1] cbnz r2,.L9985 movs r3,17 movs r2,10 cpy r1,r4 movs r0,121 .L10191: bl Det_ReportError movs r0,1 str r0,[r5] .L10193: pop {r4-r5,pc} .L9985: ldr r1,[r1,4] str r1,[r0] str r4,[r5] cpy r0,r4 .L10195: pop {r4-r5,pc} .L9982: movs r4,1 movs r3,21 movs r2,10 movs r1,0 movs r0,121 .L10197: bl Det_ReportError cpy r0,r4 .L10199: pop {r4-r5,pc} .endf Pwm_GetCurrentPowerState ;RetVal r4 local ;CurrentPowerState r0 param ;Result r5 param .section ".ghcalltbl","" .L10192: .data.w .L10191 .endo .L10192 .section ".ghrettbl","" .L10194: .data.w .L10193 .endo .L10194 .L10196: .data.w .L10195 .endo .L10196 .section ".ghcalltbl","" .L10198: .data.w .L10197 .endo .L10198 .section ".ghrettbl","" .L10200: .data.w .L10199 .endo .L10200 .section ".mcal_code","ax" .assert 0x0 + (Pwm_DrvState - Pwm_DrvState) +0 == 0 ..gh.f.f.1.a.1.e.28: .endo ..gh.f.f.1.a.1.e.28 Pwm_GetTargetPowerState:: push {r4-r5,lr} movs r4,0 subs r5,r1,0 it ne cmp r0,0 beq .L10203 movw r1,%lo(Pwm_DrvState) movt r1,%hi(Pwm_DrvState) ldr r2,[r1] cbnz r2,.L10206 movs r3,17 movs r2,11 cpy r1,r4 movs r0,121 .L10415: bl Det_ReportError movs r0,1 str r0,[r5] .L10417: pop {r4-r5,pc} .L10206: ldr r1,[r1,8] str r1,[r0] str r4,[r5] cpy r0,r4 .L10419: pop {r4-r5,pc} .L10203: movs r4,1 movs r3,21 movs r2,11 movs r1,0 movs r0,121 .L10421: bl Det_ReportError cpy r0,r4 .L10423: pop {r4-r5,pc} .endf Pwm_GetTargetPowerState ;RetVal r4 local ;TargetPowerState r0 param ;Result r5 param .section ".ghcalltbl","" .L10416: .data.w .L10415 .endo .L10416 .section ".ghrettbl","" .L10418: .data.w .L10417 .endo .L10418 .L10420: .data.w .L10419 .endo .L10420 .section ".ghcalltbl","" .L10422: .data.w .L10421 .endo .L10422 .section ".ghrettbl","" .L10424: .data.w .L10423 .endo .L10424 .section ".mcal_code","ax" .assert 0x0 + (Pwm_DrvState - Pwm_DrvState) +0 == 0 ..gh.f.f.1.a.1.e.29: .endo ..gh.f.f.1.a.1.e.29 Pwm_PreparePowerState:: push {r4-r5,lr} movs r5,r1 beq .L10427 movw r1,%lo(Pwm_DrvState) movt r1,%hi(Pwm_DrvState) ldr r2,[r1] movs r4,0 cbnz r2,.L10429 movs r3,17 movs r2,12 cpy r1,r4 movs r0,121 .L10725: bl Det_ReportError movs r0,1 str r0,[r5] .L10727: pop {r4-r5,pc} .L10429: ldr r2,[r1,4] cmp r2,r0 beq .L10432 cmp r0,1 it ne cmp r0,0 beq .L10434 movs r3,23 movs r2,12 cpy r1,r4 movs r0,121 .L10729: bl Det_ReportError movs r0,4 str r0,[r5] movs r0,1 .L10731: pop {r4-r5,pc} .L10434: str r4,[r5] str r0,[r1,8] cpy r0,r4 .L10733: pop {r4-r5,pc} .L10432: movs r0,2 str r0,[r5] movs r0,1 .L10735: pop {r4-r5,pc} .L10427: movs r4,1 movs r3,21 movs r2,12 movs r0,121 .L10737: bl Det_ReportError cpy r0,r4 .L10739: pop {r4-r5,pc} .endf Pwm_PreparePowerState ;RetVal r4 local ;PowerState r0 param ;Result r5 param .section ".ghcalltbl","" .L10726: .data.w .L10725 .endo .L10726 .section ".ghrettbl","" .L10728: .data.w .L10727 .endo .L10728 .section ".ghcalltbl","" .L10730: .data.w .L10729 .endo .L10730 .section ".ghrettbl","" .L10732: .data.w .L10731 .endo .L10732 .L10734: .data.w .L10733 .endo .L10734 .L10736: .data.w .L10735 .endo .L10736 .section ".ghcalltbl","" .L10738: .data.w .L10737 .endo .L10738 .section ".ghrettbl","" .L10740: .data.w .L10739 .endo .L10740 .section ".mcal_code","ax" ;Pwm_PreDefinedConfigPtr Pwm_PreDefinedConfigPtr import ;Pwm_ConfigPtr Pwm_ConfigPtr static ;Pwm_DrvState Pwm_DrvState static .global Pwm_PreDefinedConfigPtr .ghsnote info, 27, 3, 640