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

📄 liveosci.asm

📁 10MS/s USB-2.0 ("high speed") oscilloscope with two 8 bit sampling inputs
💻 ASM
📖 第 1 页 / 共 3 页
字号:
_FLOWEQ1CTL	=	0xe6c9_FLOWHOLDOFF	=	0xe6ca_FLOWSTB	=	0xe6cb_FLOWSTBEDGE	=	0xe6cc_FLOWSTBHPERIOD	=	0xe6cd_GPIFHOLDAMOUNT	=	0xe60c_UDMACRCH	=	0xe67d_UDMACRCL	=	0xe67e_UDMACRCQUAL	=	0xe67f_DBUG	=	0xe6f8_TESTCFG	=	0xe6f9_USBTEST	=	0xe6fa_CT1	=	0xe6fb_CT2	=	0xe6fc_CT3	=	0xe6fd_CT4	=	0xe6fe_EP0BUF	=	0xe740_EP1OUTBUF	=	0xe780_EP1INBUF	=	0xe7c0_EP2FIFOBUF	=	0xf000_EP4FIFOBUF	=	0xf400_EP6FIFOBUF	=	0xf800_EP8FIFOBUF	=	0xfc00;--------------------------------------------------------; external initialized ram data;--------------------------------------------------------	.area XISEG   (XDATA);--------------------------------------------------------; interrupt vector ;--------------------------------------------------------	.area CSEG    (CODE)__interrupt_vect:	ljmp	__sdcc_gsinit_startup	reti	.ds	7	reti	.ds	7	reti	.ds	7	reti	.ds	7	reti	.ds	7	reti;--------------------------------------------------------; global & static initialisations;--------------------------------------------------------	.area GSINIT  (CODE)	.area GSFINAL (CODE)	.area GSINIT  (CODE)__sdcc_gsinit_startup:	mov	sp,#__start__stack - 1	lcall	__sdcc_external_startup	mov	a,dpl	jz	__sdcc_init_data	ljmp	__sdcc_program_startup__sdcc_init_data:;	_mcs51_genXINIT() start	mov	r1,#l_XINIT	mov	a,r1	orl	a,#(l_XINIT >> 8)	jz	00003$	mov	r2,#((l_XINIT+255) >> 8)	mov	dptr,#s_XINIT	mov	r0,#s_XISEG	mov	p2,#(s_XISEG >> 8)00001$:	clr	a	movc	a,@a+dptr	movx	@r0,a	inc	dptr	inc	r0	cjne	r0,#0,00002$	inc	p200002$:	djnz	r1,00001$	djnz	r2,00001$	mov	p2,#0xFF00003$:;	_mcs51_genXINIT() end;	_mcs51_genRAMCLEAR() start	mov	r0,#l_XSEG	mov	a,r0	orl	a,#(l_XSEG >> 8)	jz	00005$	mov	r1,#((l_XSEG + 255) >> 8)	mov	dptr,#s_XSEG	clr     a00004$:	movx	@dptr,a	inc	dptr	djnz	r0,00004$	djnz	r1,00004$00005$:	mov	@r0,a	djnz	r0,00005$;	_mcs51_genRAMCLEAR() end;liveosci.c:34: static uint8 iomodule_config=0x00U;;     genAssign	mov	_iomodule_config,#0x00	.area GSFINAL (CODE)	ljmp	__sdcc_program_startup;--------------------------------------------------------; Home;--------------------------------------------------------	.area HOME    (CODE)	.area CSEG    (CODE);--------------------------------------------------------; code;--------------------------------------------------------	.area CSEG    (CODE)__sdcc_program_startup:	lcall	_main;	return from main will lock up	sjmp .;------------------------------------------------------------;Allocation info for local variables in function 'Initialize';------------------------------------------------------------;------------------------------------------------------------;liveosci.c:85: static void Initialize(void);	-----------------------------------------;	 function Initialize;	-----------------------------------------_Initialize:	ar2 = 0x02	ar3 = 0x03	ar4 = 0x04	ar5 = 0x05	ar6 = 0x06	ar7 = 0x07	ar0 = 0x00	ar1 = 0x01;liveosci.c:87: SYNCDELAY;;     genInline	 nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; ;liveosci.c:97: CPUCS = 0x12;  // 0x12;     genAssign	mov	dptr,#_CPUCS	mov	a,#0x12	movx	@dptr,a;liveosci.c:98: SYNCDELAY;;     genInline	 nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; ;liveosci.c:103: IOA=0x00U;;     genAssign	mov	_IOA,#0x00;liveosci.c:104: OEA|=(1U<<1)|(1U<<3)|(1U<<7);;     genOr	orl	_OEA,#0x8A;liveosci.c:105: IOA=0x00U;;     genAssign	mov	_IOA,#0x00;liveosci.c:117: IFCONFIG = 0x43; // 0100 0011 = 0x43   externally clocked sync mode;     genAssign	mov	dptr,#_IFCONFIG	mov	a,#0x43	movx	@dptr,a;liveosci.c:120: SYNCDELAY;;     genInline	 nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; ;liveosci.c:123: REVCTL = 0x03;  // See TRM...;     genAssign	mov	dptr,#_REVCTL	mov	a,#0x03	movx	@dptr,a;liveosci.c:124: SYNCDELAY;;     genInline	 nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; ;liveosci.c:135: EP6CFG = 0xe0;  // bulk: 0xe2 double-buffered; 0xe3 triple-; 0xe0 quad;     genAssign	mov	dptr,#_EP6CFG	mov	a,#0xE0	movx	@dptr,a;liveosci.c:136: SYNCDELAY;;     genInline	 nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; ;liveosci.c:148: EP1OUTCFG = 0xa2;;     genAssign	mov	dptr,#_EP1OUTCFG	mov	a,#0xA2	movx	@dptr,a;liveosci.c:153: EP1INCFG = 0xe2;;     genAssign	mov	dptr,#_EP1INCFG	mov	a,#0xE2	movx	@dptr,a;liveosci.c:157: FIFORESET = 0x80;  SYNCDELAY;  // NAK all requests from host. ;     genAssign	mov	dptr,#_FIFORESET	mov	a,#0x80	movx	@dptr,a;     genInline	 nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; ;liveosci.c:158: FIFORESET = 0x02;  SYNCDELAY;  // Reset individual EP (2,4,6,8);     genAssign	mov	dptr,#_FIFORESET	mov	a,#0x02	movx	@dptr,a;     genInline	 nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; ;liveosci.c:159: FIFORESET = 0x04;  SYNCDELAY;;     genAssign	mov	dptr,#_FIFORESET	mov	a,#0x04	movx	@dptr,a;     genInline	 nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; ;liveosci.c:160: FIFORESET = 0x06;  SYNCDELAY;;     genAssign	mov	dptr,#_FIFORESET	mov	a,#0x06	movx	@dptr,a;     genInline	 nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; ;liveosci.c:161: FIFORESET = 0x08;  SYNCDELAY;;     genAssign	mov	dptr,#_FIFORESET	mov	a,#0x08	movx	@dptr,a;     genInline	 nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; ;liveosci.c:162: FIFORESET = 0x00;  SYNCDELAY;  // Resume normal operation. ;     genAssign	mov	dptr,#_FIFORESET;       Peephole 181    changed mov to clr	clr     a	movx	@dptr,a;     genInline	 nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; ;liveosci.c:174: EP6FIFOCFG = 0x0d /*&0xfe*/;;     genAssign	mov	dptr,#_EP6FIFOCFG	mov	a,#0x0D	movx	@dptr,a;liveosci.c:175: SYNCDELAY;;     genInline	 nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; ;liveosci.c:187: PORTACFG = 0x00;;     genAssign	mov	dptr,#_PORTACFG;       Peephole 181    changed mov to clr	clr     a	movx	@dptr,a;liveosci.c:188: SYNCDELAY; // maybe not needed;     genInline	 nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; ;liveosci.c:191: FIFOPINPOLAR=0x00;;     genAssign	mov	dptr,#_FIFOPINPOLAR;       Peephole 181    changed mov to clr	clr     a	movx	@dptr,a;liveosci.c:192: SYNCDELAY;;     genInline	 nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; ;liveosci.c:197: EP6AUTOINLENH = 0x02; // MSB;     genAssign	mov	dptr,#_EP6AUTOINLENH	mov	a,#0x02	movx	@dptr,a;liveosci.c:198: SYNCDELAY;;     genInline	 nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; ;liveosci.c:199: EP6AUTOINLENL = 0x00; // LSB;     genAssign	mov	dptr,#_EP6AUTOINLENL;       Peephole 181    changed mov to clr	clr     a	movx	@dptr,a;liveosci.c:200: SYNCDELAY;;     genInline	 nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; 00101$:	ret;------------------------------------------------------------;Allocation info for local variables in function 'CkGen_SerialIOByte';------------------------------------------------------------;to_send                   Allocated to registers r2 ;i                         Allocated to registers ;j                         Allocated to registers ;res                       Allocated to registers r3 ;------------------------------------------------------------;liveosci.c:215: static uint8 CkGen_SerialIOByte(uint8 to_send);	-----------------------------------------;	 function CkGen_SerialIOByte;	-----------------------------------------_CkGen_SerialIOByte:;     genReceive	mov	r2,dpl;liveosci.c:218: uint8 res=0U;;     genAssign	mov	r3,#0x00;liveosci.c:220: for(i=0; i<8; i++);     genAssign	mov	r4,#0x0000124$:;     genCmpLt;     genCmp	cjne	r4,#0x08,00138$00138$:;     genIfxJump;       Peephole 108    removed ljmp by inverse jump logic	jnc     00127$00139$:;liveosci.c:222: res<<=1;;     genLeftShift;     genLeftShiftLiteral;     genlshOne	mov	a,r3	add	a,acc	mov	r3,a;liveosci.c:225: if(to_send & (0x80U>>i))  SET_TXD_HIGH();;     genRightShift	mov	b,r4	inc	b	mov	r5,#0x80	mov	r6,#0x00	sjmp	00141$00140$:	clr	c	mov	a,r6	rrc	a	mov	r6,a	mov	a,r5	rrc	a	mov	r5,a00141$:	djnz	b,00140$;     genCast	mov	ar7,r2	mov	r0,#0x00;     genAnd	mov	a,r7	anl	ar5,a	mov	a,r0	anl	ar6,a;     genIfx	mov	a,r5	orl	a,r6;     genIfxJump;       Peephole 110    removed ljmp by inverse jump logic	jz      00104$00142$:;     genOr	orl	_IOA,#0x80;liveosci.c:226: else                      SET_TXD_LOW();;       Peephole 112.b  changed ljmp to sjmp	sjmp    00110$00104$:;     genAssign	mov	r5,_IOA;     genAnd	mov	a,#0x7F	anl	a,r5	mov	_IOA,a;liveosci.c:227: SET_SCK_HIGH();00110$:;     genOr	orl	_IOA,#0x08;liveosci.c:231: for(j=0; j<8; j++) { NOP; };     genAssign	mov	r5,#0x0800120$:;     genInline	 nop; ;     genDjnz;       Peephole 112.b  changed ljmp to sjmp;       Peephole 205    optimized misc jump sequence	djnz    r5,00120$00143$:00144$:;liveosci.c:234: SET_SCK_LOW();;     genAssign	mov	r5,_IOA;     genAnd	mov	a,#0xF7	anl	a,r5	mov	_IOA,a;liveosci.c:237: if(RXD_LEVEL())  res|=1;;     genAnd	mov	a,_IOA;     genIfxJump;       Peephole 111    removed ljmp by inverse jump logic	jnb     acc.0,00135$00145$:;     genOr	orl	ar3,#0x01;liveosci.c:240: for(j=0; j<8; j++) { NOP; }00135$:;     genAssign	mov	r5,#0x0800123$:;     genInline	 nop; ;     genDjnz;       Peephole 112.b  changed ljmp to sjmp;       Peephole 205    optimized misc jump sequence	djnz    r5,00123$00146$:00147$:;liveosci.c:220: for(i=0; i<8; i++);     genPlus;     genPlusIncr	inc	r4;       Peephole 112.b  changed ljmp to sjmp	sjmp    00124$00127$:;liveosci.c:243: return(res);;     genRet	mov	dpl,r300128$:	ret;------------------------------------------------------------;Allocation info for local variables in function 'WriteIOModuleConfig';------------------------------------------------------------;keep_rck_high             Allocated to registers r2 ;i                         Allocated to registers ;config                    Allocated to registers r3 ;tmp                       Allocated to registers r2 ;------------------------------------------------------------;liveosci.c:247: static void WriteIOModuleConfig(uint8 keep_rck_high);	-----------------------------------------;	 function WriteIOModuleConfig;	-----------------------------------------_WriteIOModuleConfig:;     genReceive	mov	r2,dpl;liveosci.c:252: uint8 i,config=iomodule_config;;     genAssign	mov	r3,_iomodule_config;liveosci.c:255: SET_CKGEN_INT1_SREG_RCK_LOW();;     genAssign	mov	r4,_IOA;     genAnd	mov	a,#0xFD	anl	a,r4	mov	_IOA,a;liveosci.c:256: SET_SCK_LOW();;     genAssign	mov	r4,_IOA;     genAnd	mov	a,#0xF7	anl	a,r4	mov	_IOA,a;liveosci.c:258: for(i=0; i<8; i++);     genAssign	mov	r4,#0x00

⌨️ 快捷键说明

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