📄 bum.asm
字号:
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 + -