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

📄 i2c_initial_slave.asm

📁 富士通芯片 32位MCU各项机能应用实例的C语言例程
💻 ASM
字号:
//					FR Family SOFTUNE cpcom V65L04
	.program	"i2c_initial_slave"
	.library	"lib911.lib"
	._LANGUAGE	C_FR20, N, U, F
	._FILE	"D:\kongou\MAE\soft\sample_soft\200803_Sample\MB91635\MF_I2C_91635\i2c_initial_slave.c", 0
	._FILE	"..\IOH_MB91635_V01L02\mb91635.h", 1
	._FILE	"..\IOH_MB91635_V01L02\_fr.h", 2
	._BTYPE	0x80000001, 1
	._BTYPE	0x80000002, 1
	._BTYPE	0x80000003, 2
	._BTYPE	0x80000004, 2
	._BTYPE	0x80000005, 4
	._BTYPE	0x80000006, 4
	._BTYPE	0x80000007, 4
	._BTYPE	0x80000008, 4
	._BTYPE	0x80000009, 1
	._BTYPE	0x8000000a, 2
	._BTYPE	0x8000000b, 4
	._BTYPE	0x8000000c, 8
	._BTYPE	0x8000000d, 8
	._BTYPE	0x8000000e, 1
	._BTYPE	0x8000000f, 0
	._BTYPE	0x80000010, 8
	._BTYPE	0x80000011, 8
	.global	_IO_PDR0
	.global	_IO_PDR1
	.global	_IO_PDR2
	.global	_IO_PDR3
	.global	_IO_PDR4
	.global	_IO_PDR5
	.global	_IO_PDR6
	.global	_IO_PDR7
	.global	_IO_PDR8
	.global	_IO_PDR9
	.global	_IO_PDRA
	.global	_IO_PDRB
	.global	_IO_PDRC
	.global	_IO_PDRG
	.global	_IO_PDRH
	.global	_IO_PDRI
	.global	_IO_PDRK
	.global	_IO_WDTCR0
	.global	_IO_WDTCPR0
	.global	_IO_EIRR0
	.global	_IO_ENIR0
	.global	_IO_ELVR0
	.global	_IO_DICR
	.global	_IO_TMRLRA0
	.global	_IO_TMR0
	.global	_IO_TMCSR0
	.global	_IO_TMRLRA1
	.global	_IO_TMR1
	.global	_IO_TMCSR1
	.global	_IO_TMRLRA2
	.global	_IO_TMR2
	.global	_IO_TMCSR2
	.global	_IO_UART0
	.global	_IO_UART1
	.global	_IO_UART2
	.global	_IO_UART3
	.global	_IO_UART4
	.global	_IO_UART5
	.global	_IO_UART6
	.global	_IO_UART7
	.global	_IO_UART0_I2C0
	.global	_IO_RDRM0123
	.global	_IO_RDRM4567
	.global	_IO_SSEL0123
	.global	_IO_SSEL4567
	.global	_IO_UART8
	.global	_IO_UART9
	.global	_IO_UART10
	.global	_IO_UART11
	.global	_IO_EIRR1
	.global	_IO_ENIR1
	.global	_IO_ELVR1
	.global	_IO_EIRR2
	.global	_IO_ENIR2
	.global	_IO_ELVR2
	.global	_IO_EIRR3
	.global	_IO_ENIR3
	.global	_IO_ELVR3
	.global	_IO_AD0
	.global	_IO_BT0
	.global	_IO_BT1
	.global	_IO_BT2
	.global	_IO_BT3
	.global	_IO_BTSEL0123
	.global	_IO_DAC
	.global	_IO_AD1
	.global	_IO_ADCHE
	.global	_IO_IRPR
	.global	_IO_UD0
	.global	_IO_UD1
	.global	_IO_UD2
	.global	_IO_UD3
	.global	_IO_CPCLR0
	.global	_IO_TCDT0
	.global	_IO_TCCSH0
	.global	_IO_TCCSL0
	.global	_IO_IPCP0
	.global	_IO_IPCP1
	.global	_IO_IPCP2
	.global	_IO_IPCP3
	.global	_IO_ICS01
	.global	_IO_ICS23
	.global	_IO_IPCP4
	.global	_IO_IPCP5
	.global	_IO_IPCP6
	.global	_IO_IPCP7
	.global	_IO_ICS45
	.global	_IO_ICS67
	.global	_IO_OCCP0
	.global	_IO_OCCP1
	.global	_IO_OCCP2
	.global	_IO_OCCP3
	.global	_IO_OCS01
	.global	_IO_OCS23
	.global	_IO_OCCP4
	.global	_IO_OCCP5
	.global	_IO_OCCP6
	.global	_IO_OCCP7
	.global	_IO_OCS45
	.global	_IO_OCS67
	.global	_IO_FRTSEL
	.global	_IO_CPCLR1
	.global	_IO_TCDT1
	.global	_IO_TCCSH1
	.global	_IO_TCCSL1
	.global	_IO_FCTLR
	.global	_IO_FSTR
	.global	_IO_WREN
	.global	_IO_WRAR00
	.global	_IO_WRDR00
	.global	_IO_WRAR01
	.global	_IO_WRDR01
	.global	_IO_WRAR02
	.global	_IO_WRDR02
	.global	_IO_WRAR03
	.global	_IO_WRDR03
	.global	_IO_WRAR04
	.global	_IO_WRDR04
	.global	_IO_WRAR05
	.global	_IO_WRDR05
	.global	_IO_WRAR06
	.global	_IO_WRDR06
	.global	_IO_WRAR07
	.global	_IO_WRDR07
	.global	_IO_WRAR08
	.global	_IO_WRDR08
	.global	_IO_WRAR09
	.global	_IO_WRDR09
	.global	_IO_WRAR10
	.global	_IO_WRDR10
	.global	_IO_WRAR11
	.global	_IO_WRDR11
	.global	_IO_WRAR12
	.global	_IO_WRDR12
	.global	_IO_WRAR13
	.global	_IO_WRDR13
	.global	_IO_WRAR14
	.global	_IO_WRDR14
	.global	_IO_WRAR15
	.global	_IO_WRDR15
	.global	_IO_PORT1
	.global	_IO_ICR
	.global	_IO_CLK
	.global	_IO_IORR
	.global	_IO_PORT2
	.global	_IO_PORT3
	.global	_IO_ICSEL
	.global	_IO_CLKG
	.global	_IO_WTC
	.global	_IO_EBUS
	.global	_IO_DMAC
	.global	_IO_DNMIR
	.global	_IO_DILVR
	.global	_IO_DMACR
	.global	_IO_BT4
	.global	_IO_BT5
	.global	_IO_BT6
	.global	_IO_BT7
	.global	_IO_BTSEL4567
	.global	_IO_BT8
	.global	_IO_BT9
	.global	_IO_BTA
	.global	_IO_BTB
	.global	_IO_BTSEL89AB
	.global	_IO_BTC
	.global	_IO_BTD
	.global	_IO_BTE
	.global	_IO_BTF
	.global	_IO_BTSELCDEF
	.global	_IO_BTSSSR
	.global	_err_flag
	.section	DATA, DATA, align=4
	.global	_receive_data
	.align	1
_receive_data:
	.res.b	16
	.section	INIT, DATA, align=4
	.global	_rx_num
	.align	1
_rx_num:
	.byte	0
	.section	CODE, CODE, align=2
	.global	_initial_i2c_slave_rx
	._SYMBOL	"initial_i2c_slave_rx", F, 0x8000000f, E, "_initial_i2c_slave_rx", F
	._FPARAM	S, 0, F
	._FPARAM	E
	._CONFIG	S, F, 1
	._LINE	0, 18
_initial_i2c_slave_rx:
L_20:
	ST	RP,@-SP
	ENTER	#4
;-------end_of_no_optimize_block
	._FUNCTION	"fp", "fp", 16
	._CONFIG	S, B
L_21:				// Pred: L_20
	._LINE	0, 20
	LDI:32	#_IO_ICR+23,R1
	LDI	#16,R0
	STB	R0,@R1
	._LINE	0, 22
	LDI:32	#_IO_PORT3+15,R1
	LDI	#10,R2
	STB	R2,@R1	; _IO_PORT3
	._LINE	0, 23
	LDI:32	#_IO_PORT2+4,R1
	LDI	#85,R2
	STB	R2,@R1	; _IO_PORT2
	._LINE	0, 25
	LDI	#128,R13
	DMOVB	R13,@_IO_UART9+1	; _IO_UART9
	._LINE	0, 26
	LDI	#320,R13
	DMOVH	R13,@_IO_UART9+6	; _IO_UART9
	._LINE	0, 27
	LDI	#208,R13
	DMOVB	R13,@_IO_UART9+9	; _IO_UART9
	._LINE	0, 28
	LDI	#127,R13
	DMOVB	R13,@_IO_UART9+8	; _IO_UART9
	._LINE	0, 30
	LDI:20	#_IO_UART9,R12
	BOR	#0x4,@R12
	._LINE	0, 31
	LDI:20	#_IO_UART9+8,R1
	BOR	#0x80,@R1
	._LINE	0, 32
	BAND	#0x7F,@R12
	._LINE	0, 34
	LDI	#2,R13
	DMOVB	R13,@_IO_UART9+13	; _IO_UART9
	._LINE	0, 35
	LDI	#0,R13
	DMOVB	R13,@_IO_UART9+12	; _IO_UART9
	._LINE	0, 37
	MOV	R0,R13
	DMOVB	R13,@_IO_UART9+14	; _IO_UART9
L_22:				// Pred: L_21
	._LINE	0, 37
	._CONFIG	E
	._LINE	0, 38
	LEAVE
	LD	@SP+,RP
	RET
	._CONFIG	E
	.global	_I2C_interrupt
	._SYMBOL	"I2C_interrupt", F, 0x8000000f, E, "_I2C_interrupt", I
	._FPARAM	S, 0, F
	._FPARAM	E
	._CONFIG	S, F, 1
	._LINE	0, 42
_I2C_interrupt:
L_50:
	STM	(R0,R1,R2,R3,R4,R5,R12,R13)
	ST	RP,@-SP
	ENTER	#4
;-------end_of_no_optimize_block
	._FUNCTION	"fp", "fp", 16
	._CONFIG	S, B
L_51:				// Pred: L_50
	._LINE	0, 44
	LDI:32	#_IO_IRPR+2,R4
	BTSTL	#0x8,@R4
	BNE32	L_53,R12
L_52:				// Pred: L_51
	._LINE	0, 44
	BTSTL	#0x2,@R4
	BEQ32	L_64,R12
L_53:				// Pred: L_52 L_51
	._LINE	0, 44
	._LINE	0, 46
	LDI:20	#_IO_UART9,R5
	BTSTL	#0x2,@R5
	BEQ32	L_55,R12
L_54:				// Pred: L_53
	._LINE	0, 46
	._LINE	0, 47
	LDI:32	#_err_flag,R12
	LDI	#1,R0
	ST	R0,@R12	; _err_flag
	._LINE	0, 48
	BRA32	L_63,R12
L_55:				// Pred: L_53
	._LINE	0, 50
	LDI:20	#_IO_UART9+2,R12
	BTSTL	#0x4,@R12
	BEQ32	L_63,R12
L_56:				// Pred: L_55
	._LINE	0, 51
	._LINE	0, 52
L_57:				// Pred: L_56
	._LINE	0, 52
	LDI:32	#_rx_num,R0
	LDUB	@R0,R1	; _rx_num
	LDI	#16,R12
	CMP	R12,R1
	BGE32	L_63,R12
L_58:				// Pred: L_57
	._LINE	0, 52
	LDI:32	#_receive_data,R3
L_59:				// Pred: L_77 L_58
	._LINE	0, 52
	._LINE	0, 53
	LDUB	@R0,R12	; _rx_num
	DMOVB	@_IO_UART9+5,R13	; _IO_UART9
	MOV	R13,R1
	MOV	R3,R13
	STB	R1,@(R13,R12)	; _receive_data
	._LINE	0, 54
	LDUB	@R0,R1	; _rx_num
	ADDN	#1,R1
	STB	R1,@R0	; _rx_num
	._LINE	0, 55
L_60:				// Pred: L_59
	._LINE	0, 52
	LDUB	@R0,R1	; _rx_num
	LDI	#16,R2
	CMP	R2,R1
	BGE32	L_63,R12
L_77:				// Pred: L_60
	BRA32	L_59,R12
L_63:				// Pred: L_60 L_57 L_55 L_54
	._LINE	0, 57
	BAND	#0xFE,@R5
	._LINE	0, 58
L_64:				// Pred: L_63 L_52
	._LINE	0, 66
	BTSTH	#0x4,@R4
	BNE32	L_66,R12
L_65:				// Pred: L_64
	._LINE	0, 66
	BTSTH	#0x2,@R4
	BEQ32	L_76,R12
L_66:				// Pred: L_65 L_64
	._LINE	0, 66
	._LINE	0, 68
	LDI:20	#_IO_UART8,R2
	BTSTL	#0x2,@R2
	BEQ32	L_68,R12
L_67:				// Pred: L_66
	._LINE	0, 68
	._LINE	0, 69
	LDI:32	#_err_flag,R12
	LDI	#1,R0
	ST	R0,@R12	; _err_flag
	._LINE	0, 70
L_68:				// Pred: L_67 L_66
	._LINE	0, 71
	LDI:20	#_IO_UART8+3,R1
	BTSTL	#0x8,@R1
	BEQ32	L_70,R12
L_69:				// Pred: L_68
	._LINE	0, 71
	._LINE	0, 72
	LDI:32	#_err_flag,R12
	LDI	#1,R0
	ST	R0,@R12	; _err_flag
	._LINE	0, 73
L_70:				// Pred: L_69 L_68
	._LINE	0, 74
	BTSTH	#0x4,@R1
	BEQ32	L_72,R12
L_71:				// Pred: L_70
	._LINE	0, 74
	._LINE	0, 75
	LDI:32	#_err_flag,R12
	LDI	#1,R0
	ST	R0,@R12	; _err_flag
	._LINE	0, 76
L_72:				// Pred: L_71 L_70
	._LINE	0, 77
	LDI:20	#_IO_UART8+2,R12
	BTSTL	#0x2,@R12
	BEQ32	L_74,R12
L_73:				// Pred: L_72
	._LINE	0, 77
	._LINE	0, 78
	BAND	#0x7F,@R2
	._LINE	0, 79
L_74:				// Pred: L_73 L_72
	._LINE	0, 80
	BAND	#0xFE,@R2
	._LINE	0, 81
	BAND	#0xFB,@R1
	._LINE	0, 82
	BAND	#0xFD,@R1
	._LINE	0, 84
L_76:				// Pred: L_74 L_65
	._LINE	0, 84
	._CONFIG	E
	._LINE	0, 85
	LEAVE
	LD	@SP+,RP
	LDM	(R0,R1,R2,R3,R4,R5,R12,R13)
	RETI
	._CONFIG	E
	._SYMBOL	"rx_num", V, 0x80000002, E, "_rx_num"
	._SYMBOL	"receive_data", V, 0x80000002, E, "_receive_data"
	._ARRAY	1, 1, 15, 0
	.end	

⌨️ 快捷键说明

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