⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bum.asm

📁 蓝牙设备中HCI语言传输数据
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        mov r1,#01h         ;Length        lcall BUM_Complete_Event        ret        R_CE_FAIL:            mov r0,#80h            mov a,#1dh            mov @r0,a           ;Status = 1dh            mov r0,#01h         ;BUM_Reset            mov r1,#01h         ;Length            lcall BUM_Complete_Event            ret    HCI_0004_CE:        cjne r1,#04h,HCI_SEF_CE        ret    HCI_SEF_CE:        cjne r1,#05h,HCI_0006_CE        ;Set_Event_Filter Complete Event        mov r0,#83h        mov a,@r0        jnz SEF_CE_FAIL        ret        SEF_CE_FAIL:            mov r0,#80h            mov a,#00h            mov @r0,a           ;Status = 00h            mov r0,#02h         ;BUM_Init_As_Slave            mov r1,#01h            lcall BUM_Complete_Event            ret    HCI_0006_CE:        cjne r1,#06h,HCI_0007_CE        ret    HCI_0007_CE:        cjne r1,#07h,HCI_WSE_CE        ret    HCI_WSE_CE:        ; ...... [0008 - 0019]        cjne r1,#1ah,HCI_RPSA_CE        ;HCI_Write_Scan_Enable Complete Event        mov r0,#83h        mov a,@r0        jnz WSE_CE_FAIL        ;SUCCESS        mov r0,#80h        mov a,#00h        mov @r0,a           ;Status = 00h        mov r0,#02h         ;BUM_Init_As_Slave        mov r1,#01h         ;Length        lcall BUM_Complete_Event        ret        WSE_CE_FAIL:            mov r0,#80h            mov a,#1dh            mov @r0,a           ;Status = 00h            mov r0,#02h         ;BUM_Init_As_Slave            mov r1,#01h         ;Length            lcall BUM_Complete_Event            ret    HCI_RPSA_CE:        cjne r1,#1b,HCI_WPSA_CE        ;HCI_Read_Page_Scan_Activity Complete Event        ret    HCI_WPSA_CE:        cjne r1,#1ch,HCI_RISA_CE        ;HCI_Write_Page_Scan_Activity Complete Event        mov r0,#83h        mov a,@r0        jnz WPSA_CE_FAIL        ret        WPSA_CE_FAIL:            mov r0,#80h            mov a,#1dh            mov @r0,a           ;Status = 00h            mov r0,#02h         ;BUM_Init_As_Slave            mov r1,#01h         ;Length            lcall BUM_Complete_Event            ret    HCI_RISA_CE:        cjne r1,#1dh,HCI_WISA_CE        ;HCI_Read_Inquiry_Scan_Activity Complete Event        ret    HCI_WISA_CE:        cjne r1,#1eh,HCI_RAE_CE        ;HCI_Write_Inquiry_Scan_Activity Complete Event        mov r0,#83h        mov a,@r0        jnz WISA_CE_FAIL        ret        WISA_CE_FAIL:            mov r0,#80h            mov a,#1dh            mov @r0,a           ;Status = 00h            mov r0,#02h         ;BUM_Init_As_Slave            mov r1,#01h         ;Length            lcall BUM_Complete_Event            ret    HCI_RAE_CE:        cjne r1,#1fh,HCI_WAE_CE        ;HCI_Read_Authentication_Enable Complete Event        ret    HCI_WAE_CE:        cjne r1,#20h,HCI_WPSM_CE        ;HCI_Write_Authentication_Enable Complete Event        ret    HCI_WPSM_CE:        ; ...... [0021 - 003d]        cjne r1,#3eh,HCBC_CE_Undefine        ;HCI_Write_Page_Scan_Mode Complete Event        ret    HCBC_CE_Undefine:        ret    HCBC_NEW_CE:        retHCI_Informational_Parameters:    ;------------------------------------------------------------------    ;OGF = 0x04    ;      [0001]Read_Local_Version_Information    ;            0002    ;      [0003]Read_Local_Supported_Features    ;            0004    ;      [0005]Read_Buffer_Size    ;            0006    ;      [0007]Read_Country_Code    ;            0008    ;      [0009]Read_BD_ADDR    ;------------------------------------------------------------------    ;EventCode = (R0)    ;------------------------------------------------------------------    ;指令状态事件:          Status                      = (80h)    ;                       Num_HCI_Command_Packets     = (81h)    ;                       OpCode                      = [(83h),(82h)]    ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -    ;指令完成事件:          Num_HCI_Command_Packets     = (80h)    ;                       Command_OpCode              = [(82h),(81h)]    ;                       Return Parameters           = [.. ,84h,83h]    ;------------------------------------------------------------------    cjne r0,#0eh,IP_CSE   ;是否为指令完成事件,不是跳转到指令状态事件处理    lcall IP_CCE          ;是指令完成事件    ret    ;============    ;指令状态事件    IP_CSE:    mov r0,#80h    mov a,@r0              ;Status -> A    jnz HCI_IP_FAIL    ret    ;------------    HCI_IP_FAIL:        mov r0,#82h        mov a,@r0          ;OCF = (r2,r1)        mov r1,a        inc r0        mov a,@r0        anl a,#03h        mov r2,a        cjne r2,#00h,IP_NEW_SE        cjne r1,#01h,IP_SE_Undefine        ret    IP_SE_Undefine:        ret    IP_NEW_SE:        ret    ;=======    IP_CCE:        ;指令完成事件        mov r0,#81h        mov a,@r0          ;OCF = (r2,r1)        mov r1,a        inc r0        mov a,@r0        anl a,#03h        mov r2,a        cjne r2,#00h,IP_CE        lcall IP_OLD_CE        ret    IP_CE:        lcall IP_NEW_CE        ret    ;********************    IP_OLD_CE:        cjne r1,#01h,HCI_IP_0002_CE        ;Read_Local_Version_Information Complete Event        ret    HCI_IP_0002_CE:        cjne r1,#02h,HCI_RLSF_CE        ret    HCI_RLSF_CE:        cjne r1,#03h,HCI_IP_0004_CE        ;Read_Local_Supported_Features Complete Event        ret    HCI_IP_0004_CE:        cjne r1,#04h,HCI_RBS_CE        ret    HCI_RBS_CE:        cjne r1,#05h,HCI_IP_0006_CE        ;Read_Buffer_Size Complete Event        ret    HCI_IP_0006_CE:        cjne r1,#06h,HCI_RCC_CE        ret    HCI_RCC_CE:        cjne r1,#07h,HCI_IP_0008_CE        ;Read_Country_Code Complete Event        ret    HCI_IP_0008_CE:        cjne r1,#08h,HCI_RBDADDR_CE        ret    HCI_RBDADDR_CE:        cjne r1,#09h,IP_CE_Undefine        ;Read_BD_ADDR Complete Event        mov r0,#83h        mov a,@r0        jnz RBDADDR_CE_FAIL        ;SUCCESS        mov r0,#84h        mov r1,#80h        mov a,#00h          ;Status = 00h        mov @r1,#00h        inc r1              ;ADDR 1        mov a,@r0        mov @r1,a        inc r0           ;2        inc r1        mov a,@r0        mov @r1,a        inc r0           ;3        inc r1        mov a,@r0        mov @r1,a        inc r0           ;4        inc r1        mov a,@r0        mov @r1,a        inc r0           ;5        inc r1        mov a,@r0        mov @r1,a        inc r0           ;6        inc r1        mov a,@r0        mov @r1,a        mov r0,#04h         ;BUM_Read_ADDR        mov r1,#07h         ;Length        lcall BUM_Complete_Event        ret        RBDADDR_CE_FAIL:            mov r0,#80h            mov a,#1dh            mov @r0,a           ;Status = 1dh            mov r0,#04h         ;BUM_Read_ADDR            mov r1,#01h         ;Length            lcall BUM_Complete_Event            ret    IP_CE_Undefine:        ret    IP_NEW_CE:        retHCI_Status_Parameters:    retHCI_Testing_Commands:    retFactroy_Commands:    ret;-------------;指令状态事件;EventCode=0FH;入口参数:;  Length = r0;-------------HCI_Command_Status_Event:    lcall Throw_Away_HCI_Event_Parameter    cjne r7,#00,CS_ComComEventLost         ;事件参数丢失    ;80h - Status    ;81h - Num_HCI_Command_Packets    ;82h - OpCode (低八位)    ;83h - OpCode (高八位)    mov r0,#83h    mov a,@r0                           ;OpCode高八位    anl a,#0fch    rr a    rr a                                ;OGF -> A    mov r1,a                            ;OGF -> R1    mov r0,#0fh                         ;EventCode ->R0    ;判断指令分组的OGF    cjne r1,#01h,CS_LP_Commands    ;---------------------    ;Link Control Commands    ;---------------------    lcall HCI_Link_Control_Commands    retCS_LP_Commands:    cjne r1,#02h,CS_HCB_Commands    ;--------------------    ;Link Policy Commands    ;--------------------    lcall HCI_Link_Policy_Commands    retCS_HCB_Commands:    cjne r1,#03h,CS_IP_Commands    ;-----------------------------------    ;Host Controller & Baseband Commands    ;-----------------------------------    lcall HCI_Host_Controller_Baseband_Commands    retCS_IP_Commands:    cjne r1,#04h,CS_SP_Commands    ;------------------------    ;Informational Parameters    ;------------------------    lcall HCI_Informational_Parameters    retCS_SP_Commands:    cjne r1,#06h,CS_T_Commands    ;-----------------    ;Status Parameters    ;-----------------    lcall HCI_Status_Parameters    retCS_T_Commands:    cjne r1,#06h,CS_Factory_Commands    ;----------------    ;Testing Commands    ;----------------    lcall HCI_Status_Parameters    retCS_Factory_Commands:    cjne r1,#3fh,CS_Undefine_Commands    ;----------------    ;Factory Commands    ;----------------    lcall Factroy_Commands    retCS_Undefine_Commands:    retCS_ComComEventLost:    mov r0,#0ffh        ;Hardware_Code = R0    lcall BUM_Hardware_Error_Event    ret;-------------;硬件故障事件;EventCode=10H;入口参数:;  Length = r0;-------------HCI_Hardware_Error_Event:    lcall Throw_Away_HCI_Event_Parameter    cjne r7,#00,HCIHEE_Lost    mov r0,#80h    mov a,@r0    mov r0,a            ;Hardware_Code = R0    lcall BUM_Hardware_Error_Event    retHCIHEE_Lost:    mov r0,#0ffh        ;Hardware_Code = R0    lcall BUM_Hardware_Error_Event    ret;-------------;刷新事件;EventCode=11H;入口参数:;  Length = r0;-------------HCI_Flush_Occurred_Event:    lcall Throw_Away_HCI_Event_Parameter    ret;-------------;角色变化事件;EventCode=12H;入口参数:;  Length = r0;-------------HCI_Role_Change_Event:    lcall Throw_Away_HCI_Event_Parameter    ret;--------------;完成分组数事件;EventCode=13H;入口参数:;  Length = r0;-------------HCI_Number_Of_Completed_Packets_Event:    lcall Throw_Away_HCI_Event_Parameter    ret;-------------;模式变化事件;EventCode=14H;入口参数:;  Length = r0;-------------HCI_Mode_Change_Event:    lcall Throw_Away_HCI_Event_Parameter    cjne r7,#00,HCIMCE_Lost    mov r0,#80h    mov a,@r0    cjne a,#00h,HCI_MCE_Fail    mov r0,#83h    mov a,@r0    cjne a,#03h,E_ExitPark    mov r0,#80h    mov a,#00h    mov @r0,a    mov r0,#07h     ;OpCode    mov r1,#01h     ;Length    lcall BUM_Complete_Event    retE_ExitPark:    mov r0,#80h    mov a,#00h    mov @r0,a    mov r0,#08h     ;OpCode    mov r1,#01h     ;Length    lcall BUM_Complete_Event    retHCI_MCE_Fail:    retHCIMCE_Lost:    mov r0,#0ffh        ;Hardware_Code = R0    lcall BUM_Hardware_Error_Event    ret;-------------;链接字返回事件;EventCode=15H;入口参数:;  Length = r0;-------------HCI_Return_Link_Keys_Event:    lcall Throw_Away_HCI_Event_Parameter    ret;-------------;PIN码请求事件;EventCode=16H;入口参数:;  Length = r0;-------------HCI_PIN_Code_Request_Event:    lcall Throw_Away_HCI_Event_Parameter    ret;-------------;链接字请求事件;EventCode=17H;入口参数:;  Length = r0;-------------HCI_Link_Key_Request_Event:    lcall Throw_Away_HCI_Event_Parameter    ret;-------------;链接字通知事件;EventCode=18H;入口参数:;  Length = r0;-------------HCI_Link_Key_Notification_Event:    lcall Throw_Away_HCI_Event_Parameter    ret;-------------;回送指令事件;EventCode=19H;入口参数:;  Length = r0;-------------HCI_Loopback_Command_Event:    lcall Throw_Away_HCI_Event_Parameter    ret;------------------;数据缓冲区溢出事件;EventCode=1AH;入口参数:;  Length = r0;------------------HCI_Data_Buffer_Overflow_Event:    lcall Throw_Away_HCI_Event_Parameter    ret;----------------;最大时隙改变事件;EventCode=1BH;入口参数:;  Length = r0;----------------HCI_Max_Slots_Change_Event:    lcall Throw_Away_HCI_Event_Parameter    ret;------------------;读时钟偏差完成事件;EventCode=1CH;入口参数:;  Length = r0;------------------HCI_Read_Clock_Offset_Complete_Event:    lcall Throw_Away_HCI_Event_Parameter    ret;--------------------;链接分组类型改变事件;EventCode=1DH;入口参数:;  Length = r0;--------------------HCI_Connection_Packet_Type_Change_Event:    lcall Throw_Away_HCI_Event_Parameter    ret;-------------;QoS违反事件;EventCode=1EH;入口参数:;  Length = r0;-------------HCI_Qos_Violation_Event:    lcall Throw_Away_HCI_Event_Parameter    ret;--------------------;呼叫扫描模式改变事件;EventCode=1FH;入口参数:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -