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

📄 spp_dev_a.xap

📁 蓝牙虚拟串口程序1 设备A BLUELAB4.0
💻 XAP
📖 第 1 页 / 共 5 页
字号:
	MODULE	crt0	.LARGE			; Not really, but we need the space for DEBUG; Define the segment layout	.SEG	VAREND	.PACK	{INIT, VAR, VAREND}, {H'400, H'800}	.PACK	{CONST, INITC}, {H'7400, H'D400}; This segment holds stabs debug info and doesn't make it onto bluecore	.CSEG	DEBUG	ORG	H'10000; Put labels at selected positions so; we can deduce segment size and placement	.SEG	INITINIT:	.SEG	VARVAR:	.SEG	VARENDVAREND:	.SEG	CONSTCONST:	.SEG	INITCINITC:$XAP_AH	EQU H'ffe0$XAP_AL	EQU H'ffe1$XAP_UXL	EQU H'ffe2$XAP_UY	EQU H'ffe3; Put the version number at the start of the CONST segment	.SEG	CONST	DC	1541 ;  updated by Makefile from syscalls; ****************************************************************************; Startup code; ****************************************************************************	.CODE	ORG	H'0000		ld	al,#VAR-INIT ; Size of INIT segment	ld	ah,#INIT	ld	x,#INITC	bc2	; AL is now zero	ld	ah,#VAREND-VAR	;  Size of BSS segment	beq	skip_zero	ld 	x,#VARloop_zero:	st	al,@(0,x)	add	x,#1	sub	ah,#1	bne	loop_zeroskip_zero:	; call init code, normally empty	bsr	$__init	ld	ah,#0	ld	al,#0	bsr	$_main	; Main may exit by returning or by explicitly calling $exit.	; In either case exit code will be in AH	; Note 'real' programs are unlikely to exit.	bra	$_exit$_abort:	; Exit abnormally	ld	ah,#1	bra	$_exit_exit	EQU	$_exit	ENDMOD	MODULE	malloc	.ENHANCED	.CSEG	CODE	.LARGE$_malloc:	DC	((256*3)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	malloc	MODULE	free	.ENHANCED	.CSEG	CODE	.LARGE$_free:	DC	((256*4)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	free	MODULE	realloc	.ENHANCED	.CSEG	CODE	.LARGE$_realloc:	DC	((256*5)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	realloc	MODULE	exit	.ENHANCED	.CSEG	CODE	.LARGE$_exit:	DC	((256*7)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	exit	MODULE	MessageSendLater	.ENHANCED	.CSEG	CODE	.LARGE$_MessageSendLater:	DC	((256*9)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	MessageSendLater	MODULE	MessageCancelFirst	.ENHANCED	.CSEG	CODE	.LARGE$_MessageCancelFirst:	DC	((256*10)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	MessageCancelFirst	MODULE	Panic	.ENHANCED	.CSEG	CODE	.LARGE$_Panic:	DC	((256*14)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	Panic	MODULE	PanicNull	.ENHANCED	.CSEG	CODE	.LARGE$_PanicNull:	DC	((256*15)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	PanicNull	MODULE	PsStore	.ENHANCED	.CSEG	CODE	.LARGE$_PsStore:	DC	((256*17)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	PsStore	MODULE	PsRetrieve	.ENHANCED	.CSEG	CODE	.LARGE$_PsRetrieve:	DC	((256*18)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	PsRetrieve	MODULE	PsFullRetrieve	.ENHANCED	.CSEG	CODE	.LARGE$_PsFullRetrieve:	DC	((256*21)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	PsFullRetrieve	MODULE	MessagePioTask	.ENHANCED	.CSEG	CODE	.LARGE$_MessagePioTask:	DC	((256*36)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	MessagePioTask	MODULE	PioDebounce	.ENHANCED	.CSEG	CODE	.LARGE$_PioDebounce:	DC	((256*37)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	PioDebounce	MODULE	PioGet	.ENHANCED	.CSEG	CODE	.LARGE$_PioGet:	DC	((256*38)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	PioGet	MODULE	PioSet	.ENHANCED	.CSEG	CODE	.LARGE$_PioSet:	DC	((256*39)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	PioSet	MODULE	PioSetDir	.ENHANCED	.CSEG	CODE	.LARGE$_PioSetDir:	DC	((256*41)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	PioSetDir	MODULE	MessageFlushTask	.ENHANCED	.CSEG	CODE	.LARGE$_MessageFlushTask:	DC	((256*46)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	MessageFlushTask	MODULE	PanicUnlessMalloc	.ENHANCED	.CSEG	CODE	.LARGE$_PanicUnlessMalloc:	DC	((256*47)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	PanicUnlessMalloc	MODULE	StreamConfigure	.ENHANCED	.CSEG	CODE	.LARGE$_StreamConfigure:	DC	((256*70)+9)	rtstrapset_11	EQU	$trapset_11	ENDMOD	StreamConfigure	MODULE	StreamConnect	.ENHANCED	.CSEG	CODE	.LARGE$_StreamConnect:	DC	((256*71)+9)	rtstrapset_11	EQU	$trapset_11	ENDMOD	StreamConnect	MODULE	StreamSourceFromSink	.ENHANCED	.CSEG	CODE	.LARGE$_StreamSourceFromSink:	DC	((256*74)+9)	rtstrapset_11	EQU	$trapset_11	ENDMOD	StreamSourceFromSink	MODULE	SinkGetBdAddr	.ENHANCED	.CSEG	CODE	.LARGE$_SinkGetBdAddr:	DC	((256*84)+9)	rtstrapset_11	EQU	$trapset_11	ENDMOD	SinkGetBdAddr	MODULE	MessageSinkTask	.ENHANCED	.CSEG	CODE	.LARGE$_MessageSinkTask:	DC	((256*85)+9)	rtstrapset_11	EQU	$trapset_11	ENDMOD	MessageSinkTask	MODULE	MessageSinkGetTask	.ENHANCED	.CSEG	CODE	.LARGE$_MessageSinkGetTask:	DC	((256*86)+9)	rtstrapset_11	EQU	$trapset_11	ENDMOD	MessageSinkGetTask	MODULE	StreamSinksFromBdAddr	.ENHANCED	.CSEG	CODE	.LARGE$_StreamSinksFromBdAddr:	DC	((256*87)+9)	rtstrapset_11	EQU	$trapset_11	ENDMOD	StreamSinksFromBdAddr	MODULE	VmSendRfcommPrim	.ENHANCED	.CSEG	CODE	.LARGE$_VmSendRfcommPrim:	DC	((256*102)+9)	rtstrapset_14	EQU	$trapset_14	ENDMOD	VmSendRfcommPrim	MODULE	StreamRfcommSink	.ENHANCED	.CSEG	CODE	.LARGE$_StreamRfcommSink:	DC	((256*103)+9)	rtstrapset_14	EQU	$trapset_14	ENDMOD	StreamRfcommSink	MODULE	StreamUartSink	.ENHANCED	.CSEG	CODE	.LARGE$_StreamUartSink:	DC	((256*104)+9)	rtstrapset_15	EQU	$trapset_15	ENDMOD	StreamUartSink	MODULE	VmSendL2capPrim	.ENHANCED	.CSEG	CODE	.LARGE$_VmSendL2capPrim:	DC	((256*106)+9)	rtstrapset_16	EQU	$trapset_16	ENDMOD	VmSendL2capPrim	MODULE	VmSendDmPrim	.ENHANCED	.CSEG	CODE	.LARGE$_VmSendDmPrim:	DC	((256*107)+9)	rtstrapset_16	EQU	$trapset_16	ENDMOD	VmSendDmPrim	MODULE	VmSendSdpPrim	.ENHANCED	.CSEG	CODE	.LARGE$_VmSendSdpPrim:	DC	((256*108)+9)	rtstrapset_16	EQU	$trapset_16	ENDMOD	VmSendSdpPrim	MODULE	VmGetHandleFromPointer	.ENHANCED	.CSEG	CODE	.LARGE$_VmGetHandleFromPointer:	DC	((256*109)+9)	rtstrapset_16	EQU	$trapset_16	ENDMOD	VmGetHandleFromPointer	MODULE	VmGetPointerFromHandle	.ENHANCED	.CSEG	CODE	.LARGE$_VmGetPointerFromHandle:	DC	((256*110)+9)	rtstrapset_16	EQU	$trapset_16	ENDMOD	VmGetPointerFromHandle	MODULE	MessageBlueStackTask	.ENHANCED	.CSEG	CODE	.LARGE$_MessageBlueStackTask:	DC	((256*111)+9)	rtstrapset_16	EQU	$trapset_16	ENDMOD	MessageBlueStackTask	MODULE	StreamL2capSink	.ENHANCED	.CSEG	CODE	.LARGE$_StreamL2capSink:	DC	((256*112)+9)	rtstrapset_16	EQU	$trapset_16	ENDMOD	StreamL2capSink	MODULE	PioSetLed0	.ENHANCED	.CSEG	CODE	.LARGE$_PioSetLed0:	DC	((256*141)+9)	rtstrapset_8	EQU	$trapset_8	ENDMOD	PioSetLed0	MODULE	PioSetLed1	.ENHANCED	.CSEG	CODE	.LARGE$_PioSetLed1:	DC	((256*142)+9)	rtstrapset_8	EQU	$trapset_8	ENDMOD	PioSetLed1	MODULE	VmUseExtendedBluestackPrimitives	.ENHANCED	.CSEG	CODE	.LARGE$_VmUseExtendedBluestackPrimitives:	DC	((256*148)+9)	rtstrapset_16	EQU	$trapset_16	ENDMOD	VmUseExtendedBluestackPrimitives	MODULE	putchar	.ENHANCED	.CSEG	CODE	.LARGE$_putchar:	DC	((256*8)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	putchar	MODULE	MessageWait	.ENHANCED	.CSEG	CODE	.LARGE$_MessageWait:	DC	((256*11)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	MessageWait	MODULE	MessageSendConditionally	.ENHANCED	.CSEG	CODE	.LARGE$_MessageSendConditionally:	DC	((256*12)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	MessageSendConditionally	MODULE	MessageFree	.ENHANCED	.CSEG	CODE	.LARGE$_MessageFree:	DC	((256*13)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	MessageFree	MODULE	trapset_1	.CSEG	CODE	.LARGE	.ENHANCED$trapset_1:	ENDMOD	trapset_1	MODULE	trapset_11	.CSEG	CODE	.LARGE	.ENHANCED$trapset_11:	ENDMOD	trapset_11	MODULE	trapset_14	.CSEG	CODE	.LARGE	.ENHANCED$trapset_14:	ENDMOD	trapset_14	MODULE	trapset_8	.CSEG	CODE	.LARGE	.ENHANCED$trapset_8:	ENDMOD	trapset_8	MODULE	trapset_15	.CSEG	CODE	.LARGE	.ENHANCED$trapset_15:	ENDMOD	trapset_15	MODULE	trapset_16	.CSEG	CODE	.LARGE	.ENHANCED$trapset_16:	ENDMOD	trapset_16	MODULE	VmPutChar	.ENHANCED	.CSEG	CODE	.LARGE$_VmPutChar:	DC	((256*27)+9)	rtstrapset_1	EQU	$trapset_1	ENDMOD	VmPutChar	MODULE	e_t_c	.ALLe_t_c:	ENDMOD	MODULE	main	.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	VAR_failed_next?0?:	DS	1	.CODE_tried_and_failed:	enter	#2?LBB_tried_and_failed:	st	AH,@H'fff8?LBB2:	ld	AL,#H'0000	st	AL,@(-1,Y)?L7:	ld	AL,@(-1,Y)	lsl	#H'0010	asr	#H'000E	ld	X,@$XAP_AL	add	AL,#(_failed_addr)	st	AL,@(0,Y)	ld	AH,@(_failed_addr,X)	ld	AL,@((_failed_addr+1),X)	ld	X,@H'fff8	cmp	AH,@(0,X)	bne	?L4	cmp	AL,@(1,X)	bne	?L4	ld	X,@(0,Y)	ld	AL,@(H'0003,X)	ld	X,@H'fff8	cmp	AL,@(H'0003,X)	bne	?L4	ld	X,@(0,Y)	ld	AL,@(H'0002,X)	ld	X,@H'fff8	cmp	AL,@(H'0002,X)	bne	?L4	ld	AH,#H'0001	bra	(?L1)?L4:	ld	AL,#H'0001	add	AL,@(-1,Y)	st	AL,@(-1,Y)	cmp	AL,#H'0007	bcz	?L7	ld	X,@_failed_next?0?	st	X,@(-1,Y)	ld	AL,@$XAP_UXL	lsl	#H'0010	asr	#H'000E	st	AL,@H'fff9	ld	AH,#(_failed_addr)	add	AH,@$XAP_AL	ld	X,@H'fff8	ld	AL,@(0,X)	ld	X,@H'fff9	st	AL,@(_failed_addr,X)	ld	X,@H'fff8	ld	AL,@(H'0001,X)	ld	X,@$XAP_AH	st	AL,@(H'0001,X)	ld	X,@H'fff8	ld	AL,@(H'0002,X)	ld	X,@$XAP_AH	st	AL,@(H'0002,X)	ld	X,@H'fff8	ld	AL,@(H'0003,X)	ld	X,@$XAP_AH	st	AL,@(H'0003,X)	ld	AL,#H'0001	add	AL,@(-1,Y)	st	AL,@_failed_next?0?	cmp	AL,#H'0008	bne	?L8	ld	AL,#H'0000	st	AL,@_failed_next?0??L8:	ld	AH,#H'0000?L1:?LBE2:?LBE_tried_and_failed:	leave	#2;.stabn	192,0,0,?LBB2;.stabn	224,0,0,?LBE2_unhandledSppState:	enter	#3?LBB_unhandledSppState:	st	AH,@(0,Y)	st	AL,@(H'0001,Y)	ld	AH,#(?LC0)	bsr	$_printf?LBE_unhandledSppState:	leave	#3	.SEG	CONST?LC0:	dc	H'55	dc	H'4E	dc	H'48	dc	H'41	dc	H'4E	dc	H'44	dc	H'4C	dc	H'45	dc	H'44	dc	H'20	dc	H'53	dc	H'50	dc	H'50	dc	H'20	dc	H'63	dc	H'75	dc	H'72	dc	H'72	dc	H'65	dc	H'6E	dc	H'74	dc	H'20	dc	H'73	dc	H'74	dc	H'61	dc	H'74	dc	H'65	dc	H'20	dc	H'25	dc	H'64	dc	H'20	dc	H'6D	dc	H'65	dc	H'73	dc	H'73	dc	H'61	dc	H'67	dc	H'65	dc	H'20	dc	H'69	dc	H'64	dc	H'20	dc	H'30	dc	H'78	dc	H'25	dc	H'78	dc	H'0A	dc	H'00	.CODE$_setSppState:	enter	#4?LBB_setSppState:	st	AH,@(H'0002,Y)	ld	AL,@_theSppApp+H'0006	st	AL,@(0,Y)	st	AH,@(H'0001,Y)	ld	AH,#(?LC1)	bsr	$_printf	ld	AL,@(H'0002,Y)	st	AL,@_theSppApp+H'0006	cmp	AL,#H'0004	bne	?L20	ld	AH,#H'0000	bra	(?L22)?L20:	ld	AH,#H'0001?L22:	bsr	$_ledsPlay?LBE_setSppState:	leave	#4	.SEG	CONST?LC1:	dc	H'53	dc	H'50	dc	H'50	dc	H'20

⌨️ 快捷键说明

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