📄 spp_dev_a.xap
字号:
ld AL,@(H'0002,X) bsr $_MessageSend?L43:?LBE8: ld AL,#H'0001 ld X,@(H'0002,Y) st AL,@(H'0002,X)?L42: ld X,@(H'0002,Y)?LBE7: tst @(H'0008,X) beq ?L44 ld AL,#H'0000 st AL,@(0,Y) ld AH,@(H'0001,X) ld AL,@(H'0008,X) bsr $_MessageSend ld AL,#H'0000 ld X,@(H'0002,Y) st AL,@(H'0008,X)?L44: ld AH,@(H'0001,Y) ld AL,#H'0000 bsr $_MessageCancelAll ld AL,@(H'0003,Y) cmp AL,#H'0001 beq ?L45 ld AH,@(H'0002,Y) bsr _send_pio_enter_messages ld AH,@(H'0002,Y) ld AL,@(H'0003,Y) bsr _send_pio_timed_messages?L45: ld AL,@(H'0004,Y) ld X,@(H'0002,Y) st AL,@(H'0006,X)?LBE5:?LBE_pioChanged: leave #7;.stabn 192,0,0,?LBB5;.stabn 192,0,0,?LBB7;.stabn 224,0,0,?LBE7;.stabn 224,0,0,?LBE5_pioHandler: enter #4?LBB_pioHandler: ld X,@(H'0004,Y)?LBB9: st AH,@(H'0001,Y) cmp AL,#H'0001 beq ?L51 cmp AL,#H'0001 bcs ?L53 cmp AL,#-H'7FDD beq ?L59 bra (?L51)?L53:?LBB10: ld X,@(0,X) st X,@(H'0002,Y) ld AL,@(H'0001,X) and AL,#H'0001 cmp AL,#H'0000 beq ?L54 ld AL,@(H'0002,X) bra (?L63)?L54: ld AL,#H'0000 st AL,@(0,Y) ld X,@(H'0001,Y) ld AH,@(H'0001,X) ld X,@(H'0002,Y) ld AL,@(H'0002,X) bsr $_MessageSend ld AL,#H'0000?L63: ld X,@(H'0001,Y) st AL,@(H'0008,X) ld AL,#H'0001 ld X,@(H'0001,Y) st AL,@(H'0002,X) ld X,@(H'0002,Y) ld AH,@(0,X) lsr #H'000F cmp AH,#H'0000 beq ?L51 ld AH,@(H'0001,X) lsr #H'0001 cmp AH,#H'0000 beq ?L57 ld AL,#H'0001 st AL,@(0,Y) ld AH,@(H'0001,Y) ld AL,@$XAP_UXL bra (?L64)?L57: ld AL,#H'0000 st AL,@(0,Y) ld AH,@(H'0001,Y) ld AL,@(H'0002,Y)?L64: bsr _send_pio_timed_message?LBE10: bra (?L51)?L59:?LBB11: ld AL,@(0,X) ld X,@(H'0001,Y) xor AL,@(H'0005,X) st AL,@(0,Y) ld AL,@$XAP_UXL bsr _pioChanged?L51:?LBE11:?LBE9:?LBE_pioHandler: leave #4;.stabn 192,0,0,?LBB9;.stabn 192,0,0,?LBB10;.stabn 224,0,0,?LBE10;.stabn 224,0,0,?LBE9$_pioInit: enter #7?LBB_pioInit: st AH,@(H'0002,Y) st AL,@(H'0003,Y)?LBB12: ld AH,#H'0004; bsr $_malloc DC ((256*3)+9) st AH,@(H'0004,Y); bsr $_PioGet DC ((256*38)+9) st AH,@(H'0005,Y) ld AL,#-H'0001 st AL,@(H'0001,Y) ld AL,#lwrd(_pioHandler) ld X,@(H'0002,Y) st AL,@(0,X) ld AL,@(H'0003,Y) st AL,@(H'0001,X) ld X,#H'0001 st X,@(0,Y) ld AH,#H'039F ld AL,@$XAP_UY add AL,#H'0001; bsr $_PsFullRetrieve DC ((256*21)+9) ld AL,@(H'0001,Y) xor AL,#-H'0001 st AL,@(H'0001,Y) ld AL,#H'0001 ld X,@(H'0002,Y) st AL,@(H'0002,X) st AL,@(H'0003,X) ld AL,#H'0000 st AL,@(H'0007,X) st AL,@(H'0006,X) st AL,@(H'0008,X) ld AL,@(H'0001,Y) st AL,@(H'0005,X) ld AL,#H'0000 st AL,@(H'0004,X) ld AH,@$XAP_UXL; bsr $_MessagePioTask DC ((256*36)+9) ld AL,#H'0014 st AL,@(0,Y) ld AH,#H'1000 ld AL,#H'0002; bsr $_PioDebounce DC ((256*37)+9) ld AH,@(H'0005,Y) and AH,#H'1000 ld X,@(H'0004,Y) st AH,@(0,X) ld AL,#H'0000 st AL,@(H'0002,X) st AL,@(H'0001,X) st X,@(0,Y) ld AH,@(H'0002,Y) ld AL,#-H'7FDD bsr $_MessageSend?LBE12:?LBE_pioInit: leave #7;.stabn 192,0,0,?LBB12;.stabn 224,0,0,?LBE12 ENDMOD;# Function pattern *movqi2 used[0] = 78 used[1] = 13 total = 91;# Function pattern *movqi3 used[0] = 110 total = 110;# Function pattern *movqi8 used[0] = 4 total = 4;# Function pattern *movhi used[3] = 2 total = 2;# Function pattern *addqi0 used[0] = 1 total = 1;# Function pattern *addqi2 used[0] = 10 used[2] = 1 total = 11;# Function pattern *andqi3 used[0] = 5 total = 5;# Function pattern *xorqi3 used[0] = 2 total = 2;# Function pattern *subqi3 used[1] = 1 total = 1;# Function pattern *mulqi3_const used[0] = 1 total = 1;# Function pattern *lshrqi3 used[0] = 6 total = 6;# Function pattern one_cmplqi2 used[0] = 1 total = 1;# Function pattern *zero_extendqihi2_1 used[0] = 3 total = 3;# Function pattern jump used[0] = 10 total = 10;# Function pattern *call1 used[0] = 14 total = 14;# Function pattern *call_value1 used[0] = 11 total = 11;# Function pattern movstrqi+2 used[0] = 1 total = 1;# Function pattern movstrqi+3 used[0] = 6 used[1] = 2 total = 8;# Function pattern movstrqi+5 used[0] = 14 total = 14 MODULE spp_dev_a_leds .LARGE ; really small mode but we need space for debug symbols; GNU C version 3.3.3 (CSR version 25 for xap); compiled by GNU C version 3.2.3 (mingw special 20030504-1).;# options passed: -IC:/BlueLab401/tools/include/firmware;# -IC:/BlueLab401/tools/include/standard;# -IC:/BlueLab401/tools/include/profiles/BlueLab4.0.1-release -iprefix;# -isystem -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=3;# -DDEV_CASIRA -DNO_DEBUG -MD -MQ -mno-leaf-optim -ansi -auxbase-strip -g;# -O -pedantic -Wall -Wmissing-prototypes -Wstrict-prototypes;# -Wsign-compare -Wredundant-decls -Werror -ansi -fno-builtin-memcpy;# options enabled: -fdefer-pop -fthread-jumps -fpeephole -ffunction-cse;# -fkeep-static-consts -fpcc-struct-return -fgcse-lm -fgcse-sm;# -floop-optimize -fcrossjumping -fif-conversion -fif-conversion2;# -fsched-interblock -fsched-spec -fbranch-count-reg -fcprop-registers;# -fcommon -fgnu-linker -fargument-alias -fmerge-constants;# -fzero-initialized-in-bss -fleading-underscore -fident;# -fguess-branch-probability -fmath-errno -ftrapping-math -mpeephole;# -mquiet-mode -minline-block-copy-mode -menhanced-mode -mload-cache-mode;# -mbitfield-mode -mtest4 .ENHANCED .SEG CONST_gLedPinsUsed: dc H'C000_pattern_BLUE_FLASH: dc H'C000 dc H'81F4 dc H'8000 dc H'01F4_pattern_RED_BLUE_ALT: dc H'4000 dc H'8032 dc H'4000 dc H'0000 dc H'8000 dc H'8032 dc H'8000 dc H'0000_gLeds: dc H'0201 dc _pattern_BLUE_FLASH dc H'0401 dc _pattern_RED_BLUE_ALT .SEG VAR$_LED: DS 1 .CODE$_ledsPlay: enter #4?LBB_ledsPlay: st AH,@(H'0001,Y)?LBB2: tst @$_LED bne ?L2 bsr _ledsInit?L2: ld AL,@(H'0001,Y) cmp AL,#H'0001 bcz ?L3 ld AH,#H'0000 bra (?L1)?L3: ld AH,@(H'0001,Y) bsr _ledsConfigPattern st AH,@(H'0002,Y) cmp AH,#H'0000 beq ?L4 ld AH,@$_LED; bsr $_MessageFlushTask DC ((256*46)+9) ld AH,@_gLedPinsUsed ld AL,#H'0000 bsr _ledsSet ld AL,#H'0000 st AL,@(0,Y) ld AH,@$_LED bsr $_MessageSend?L4: ld AH,@(H'0002,Y)?L1:?LBE2:?LBE_ledsPlay: leave #4;.stabn 192,0,0,?LBB2;.stabn 224,0,0,?LBE2_ledsHandler: enter #8?LBB_ledsHandler: st AH,@(H'0003,Y) st AL,@H'fff8 cmp AL,#H'0000 bne ?L6 ld AL,@$_LED st AL,@(H'0006,Y) ld X,@$XAP_AL ld AL,@(H'0001,X) add AL,@$XAP_AL st AL,@(H'0004,Y) ld X,@$XAP_AL ld AH,@(_gLeds,X) lsr #H'0008 ld X,@(H'0006,Y) ld AL,@(H'0002,X) cmp AL,@$XAP_AH bcs ?L9 ld X,@(H'0004,Y) ld AL,@(_gLeds,X) and AL,#H'0001 cmp AL,#H'0000 beq ?L10 ld X,@(H'0006,Y) st AL,@H'ffff ld AL,@H'fff8 st AL,@(H'0002,X) ld AL,@H'ffff bra (?L9)?L10: ld X,@$_LED ld AL,@(H'0003,X) st AL,@(H'0001,X) ld X,@$_LED ld AL,@(H'0004,X) st AL,@(H'0002,X) ld AH,@$_LED ld X,@$XAP_AH ld AL,@(H'0001,X) ld X,@$XAP_AL add X,@$XAP_AL ld AL,@(_gLeds,X) and AL,#H'0001 cmp AL,#H'0000 beq ?L9 ld AL,#H'0000 ld X,@$XAP_AH st AL,@(H'0002,X)?L9: ld AH,@(H'0003,Y); bsr $_MessageFlushTask DC ((256*46)+9) ld X,@$_LED ld AL,@(H'0001,X) add AL,@$XAP_AL ld X,@(H'0002,X) ld AH,@$XAP_UXL add AH,@$XAP_UXL ld X,@$XAP_AL ld AL,@(_gLeds+H'0001,X) add AL,@$XAP_AH st AL,@(H'0006,Y) ld X,@$XAP_AL ld AH,@(H'0001,X) lsr #H'000F ld AL,@$XAP_AH ld AH,@(0,X) bsr _ledsSet ld AL,@$_LED st AL,@(H'0005,Y) ld X,@$XAP_AL ld AL,@(H'0001,X) ld X,@$XAP_AL add X,@$XAP_AL ld AH,@(_gLeds,X) lsr #H'0008 cmp AH,#H'0001 beq ?L13 ld AL,#H'0000 st AL,@(0,Y) ld X,@(H'0005,Y) ld AL,@(H'0001,X) add AL,@$XAP_AL ld AH,@(H'0002,X) add AH,@$XAP_AH ld X,@$XAP_AL ld AL,@(_gLeds+H'0001,X) add AL,@$XAP_AH ld X,@$XAP_AL ld AL,@(H'0001,X) and AL,#H'7FFF ld AH,#H'0000 st AH,@(H'0001,Y) st AL,@(H'0002,Y) ld AH,@(H'0003,Y) ld AL,#H'0000; bsr $_MessageSendLater DC ((256*9)+9)?L13: ld X,@$_LED ld AL,@(H'0002,X) add AL,#H'0001 st AL,@(H'0002,X)?L6:?LBE_ledsHandler: leave #8_ledsInit: enter #1?LBB_ledsInit: ld AH,#H'0005; bsr $_PanicUnlessMalloc DC ((256*47)+9) ld X,@$XAP_AH st AH,@$_LED ld AL,#lwrd(_ledsHandler) st AL,@(0,X) ld X,@$_LED ld AL,#H'0000 st AL,@(H'0002,X) ld X,@$_LED st AL,@(H'0001,X) ld X,@$_LED st AL,@(H'0002,X) ld X,@$_LED st AL,@(H'0003,X) ld X,@$_LED st AL,@(H'0004,X)?LBE_ledsInit: leave #1_ledsSet: enter #3?LBB_ledsSet: st AH,@(0,Y) st AL,@(H'0001,Y)?LBB3: cmp AH,#H'0000 bpl ?L20 ld AH,@$XAP_AL; bsr $_PioSetLed0 DC ((256*141)+9)?L20: ld AL,@(0,Y) and AL,#H'4000 cmp AL,#H'0000 beq ?L21 ld AH,@(H'0001,Y); bsr $_PioSetLed1 DC ((256*142)+9)?L21: ld AH,@(0,Y) and AH,#H'3FFF ld AL,@(H'0001,Y) bsr _ledsSetPio?LBE3:?LBE_ledsSet: leave #3_ledsSetPio: enter #3?LBB_ledsSetPio: st AH,@(0,Y)?LBB4: cmp AL,#H'0001 bne ?L23 st AH,@(H'0001,Y) bra (?L24)?L23: ld AL,#H'0000 st AL,@(H'0001,Y)?L24: ld AH,@(0,Y) ld AL,@$XAP_AH; bsr $_PioSetDir DC ((256*41)+9) ld AH,@(0,Y) ld AL,@(H'0001,Y); bsr $_PioSet DC ((256*39)+9)?LBE4:?LBE_ledsSetPio: leave #3;.stabn 192,0,0,?LBB4;.stabn 224,0,0,?LBE4_ledsConfigPattern: enter #2?LBB_ledsConfigPattern:?LBB5: ld AL,#H'0001 st AL,@(-1,Y) ld X,@$_LED st X,@(0,Y) ld AL,@(H'0001,X) ld X,@$XAP_AL add X,@$XAP_AL ld AL,@(_gLeds,X) and AL,#H'0001 cmp AL,#H'0000 beq ?L27 ld X,@$XAP_AH add X,@$XAP_AH ld AL,@(_gLeds,X) and AL,#H'0001 cmp AL,#H'0000 beq ?L28 ld AL,#H'0000 ld X,@(0,Y) st AL,@(H'0002,X) ld X,@$_LED st AH,@(H'0001,X) ld X,@$_LED st AH,@(H'0003,X) ld X,@$_LED bra (?L33)?L28: ld X,@$_LED ld AL,@(H'0001,X) st AL,@(H'0003,X) ld X,@$_LED ld AL,@(H'0002,X) st AL,@(H'0004,X) ld X,@$_LED st AH,@(H'0001,X) ld X,@$_LED ld AL,#H'0000 st AL,@(H'0002,X) bra (?L30)?L27: ld X,@$XAP_AH add X,@$XAP_AH ld AL,@(_gLeds,X) and AL,#H'0001 cmp AL,#H'0000 beq ?L31 ld X,@$_LED st AH,@(H'0003,X) ld X,@$_LED ld AL,#H'0000?L33: st AL,@(H'0004,X) bra (?L30)?L31: ld AL,#H'0000 st AL,@(-1,Y)?L30:?LBE5: ld AH,@(-1,Y)?LBE_ledsConfigPattern: leave #2;.stabn 192,0,0,?LBB5;.stabn 224,0,0,?LBE5 ENDMOD;# Function pattern *movqi2 used[0] = 50 used[1] = 10 used[3] = 1 total = 61;# Function pattern *movqi3 used[0] = 70 total = 70;# Function pattern *movhi used[3] = 1 total = 1;# Function pattern *addqi2 used[0] = 5 used[2] = 8 total = 13;# Function pattern *andqi3 used[0] = 8 total = 8;# Function pattern *lshrqi3 used[0] = 3 total = 3;# Function pattern *zero_extendqihi2_1 used[0] = 1 total = 1;# Function pattern jump used[0] = 6 total = 6;# Function pattern *call1 used[0] = 10 total = 10;# Function pattern *call_value1 used[0] = 4 total = 4;# Function pattern movstrqi+2 used[0] = 1 total = 1;# Function pattern movstrqi+3 used[0] = 9 used[1] = 1 total = 10;# Function pattern movstrqi+5 used[0] = 4 total = 4 MODULE spp_dev_auth .LARGE ; really small mode but we need space for debug symbols; GNU C version 3.3.3 (CSR version 25 for xap); compiled by GNU C version 3.2.3 (mingw special 20030504-1).;# options passed: -IC:/BlueLab401/tools/include/firmware;# -IC:/BlueLab401/tools/include/standard;# -IC:/BlueLab401/tools/include/profiles/BlueLab4.0.1-release -iprefix;# -isystem -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=3;# -DDEV_CASIRA -DNO_DEBUG -MD -MQ -mno-leaf-optim -ansi -auxbase-strip -g;# -O -pedantic -Wall -Wmissing-prototypes -Wstrict-prototypes;# -Wsign-compare -Wredundant-decls -Werror -ansi -fno-builtin-memcpy;# options enabled: -fdefer-pop -fthread-jumps -fpeephole -ffunction-cse;# -fkeep-static-consts -fpcc-struct-return -fgcse-lm -fgcse-sm;# -floop-optimize -fcrossjumping -fif-conversion -fif-conversion2;# -fsched-interblock -fsched-spec -fbranch-count-reg -fcprop-registers;# -fcommon -fgnu-linker -fargument-alias -fmerge-constants;# -fzero-initialized-in-bss -fleading-underscore -fident;# -fguess-branch-probability -fmath-errno -ftrapping-math -mpeephole;# -mquiet-mode -minline-block-copy-mode -menhanced-mode -mload-cache-mode;# -mbitfield-mode -mtest4 .ENHANCED .CODE$_sppDevHandlePinCodeRequest: enter #19?LBB_sppDevHandlePinCodeRequest: st AH,@(H'0011,Y)?LBB2: ld AL,#H'0010 st AL,@(0,Y) ld AH,#H'035B ld AL,@$XAP_UY add AL,#H'0001; bsr $_PsFullRetrieve DC ((256*21)+9) ld X,@$XAP_AH cmp AH,#H'0000 beq ?L3 cmp AH,#H'0010 bcz ?L2?L3: ld X,#H'0000?L2: ld AL,@$XAP_UY add AL,#H'0001 st AL,@(0,Y) ld AH,@(H'0011,Y) ld AL,@$XAP_UXL bsr $_ConnectionSmPinCodeResponse?LBE2:?LBE_sppDevHandlePinCodeRequest: leave #19;.stabn 192,0,0,?LBB2;.stabn 224,0,0,?LBE2$_sppDevAuthoriseResponse: enter #5?LBB_sppDevAuthoriseResponse: ld X,@$XAP_AH ld AH,@(H'0005,X) ld AL,@(H'0006,X) st AH,@(0,Y) st AL,@(1,Y) ld AL,@(H'0007,X) st AL,@(H'0002,Y) ld AL,#H'0001 st AL,@(H'0003,Y) ld AH,@$XAP_UXL ld AL,@(H'0004,X) bsr $_ConnectionSmAuthoriseResponse?LBE_sppDevAuthoriseResponse: leave #5$_sppDevAuthoriseConnectInd: enter #4?LBB_sppDevAuthoriseConnectInd: ld X,@$XAP_AL add AL,#H'0001 st AL,@(0,Y) ld AL,#H'0001 st AL,@(H'0001,Y) ld AL,#H'0000 st AL,@(H'0002,Y) ld AH,@(0,X) ld AL,#H'0001 bsr $_SppConnectResponseLazy?LBE_sppDevAuthoriseConnectInd: leave #4$_sppDevSetTrustLevel: enter #1?LBB_sppDevSetTrustLevel: ld X,@$XAP_AL tst @(H'0004,X) bne ?L7 ld AH,@$XAP_AL ld AL,#H'0001 bsr $_ConnectionSmSetTrustLevel?L7:?LBE_sppDevSetTrustLevel: leave #1 ENDMOD;# Function pattern *movqi2 used[0] = 15 used[1] = 1 total = 16;# Function pattern *movqi3 used[0] = 11 total = 11;# Function pattern *movhi used[2] = 1 used[3] = 1 total = 2;# Function pattern *addqi0 used[0] = 2 total = 2;# Function pattern *addqi2 used[0] = 1 total = 1;# Function pattern *call1 used[0] = 4 total = 4;# Function pattern *call_value1 used[0] = 1 total = 1;# Function pattern movstrqi+3 used[0] = 1 used[1] = 1 total = 2;# Function pattern movstrqi+5 used[0] = 1 total = 1 MODULE spp_dev_connect .LARGE ; really small mode but we need space for debug symbols; GNU C version 3.3.3 (CSR version 25 for xap); compiled by GNU C version 3.2.3 (mingw special 20030504-1).;# options passed: -IC:/BlueLab401/tools/include/firmware;# -IC:/BlueLab401/tools/include/standard;# -IC:/BlueLab401/tools/include/profiles/BlueLab4.0.1-release -iprefix;# -isystem -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=3;# -DDEV_CASIRA -DNO_DEBUG -MD -MQ -mno-leaf-optim -ansi -auxbase-strip -g;# -O -pedantic -Wall -Wmissing-prototypes -Wstrict-prototypes;# -Wsign-compare -Wredundant-decls -Werror -ansi -fno-builtin-memcpy;# options enabled: -fdefer-pop -fthread-jumps -fpeephole -ffunction-cse;# -fkeep-static-consts -fpcc-struct-return -fgcse-lm -fgcse-sm;# -floop-optimize -fcrossjumping -fif-conversion -fif-conversion2;# -fsched-interblock -fsched-spec -fbranch-count-reg -fcprop-registers;# -fcommon -fgnu-linker -fargument-alias -fmerge-constants;# -fzero-initialized-in-bss -fleading-underscore -fident;# -fguess-branch-probability -fmath-errno -ftrapping-math -mpeephole;# -mquiet-mode -minline-block-copy-mode -menhanced-mode -mload-cache-mode;# -mbitfield-mode -mtest4 .ENHANCED .CODE$_sppDevConnect: enter #8?LBB_sppDevConnect: st AH,@(H'0006,Y)?LBB2: ld AH,#H'0000 st AH,@(H'0002,Y)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -