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

📄 hal_lcd.ps

📁 一款SmartPhone的驱动代码
💻 PS
📖 第 1 页 / 共 5 页
字号:
	.loc	253
	xld.w	%r10,0x00000001		; 1
	xjp	__L61
__L56:

	.loc	254
	xld.w	%r10,0x00000002		; 2
	xjp	__L61
__L57:

	.loc	255
	xld.w	%r10,0x00000003		; 3
	xjp	__L61
__L58:

	.loc	256
	xld.w	%r10,0x00000004		; 4
	xjp	__L61
__L59:

	.loc	257
	xld.w	%r10,0x00000006		; 6
__L61:

	.loc	259
	.def	bend,	scl	110,	type	0x0,	endef
	ret
	.def	end,	scl	111,	type	0x0,	endef
	.align	1
	.def	SetRGBPanelDataWidth,	val	SetRGBPanelDataWidth,	scl	2,	type	0x21,	endef
	.global	SetRGBPanelDataWidth

	.loc	269
	.def	ent,	scl	101,	type	0x0,	endef
SetRGBPanelDataWidth:
;	.frame	%sp,8,$31		# vars= 0, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	ld.w	%r0,%r12
	.def	width,	val	0,	scl	17,	type	0xc,	endef

	.loc	270
	.def	begin,	scl	100,	type	0x0,	endef
	.def	reg,	val	13,	scl	4,	type	0xd,	endef
	xld.w	%r12,0x00000032		; 50
	xcall	halReadReg16
	ld.w	%r13,%r10
	xand	%r13,%r13,0x0000ff8f

	.loc	271
	ld.ub	%r0,%r0
	xsub	%r10,%r0,9
	xcmp	%r10,15
	xjrugt	__L63
	xsll	%r10,2
	xld.w	%r10,[%r10+__L70]
	jp	%r10
	.code
	.align	2
__L70:
	.word	__L64
	.word	__L63
	.word	__L63
	.word	__L65
	.word	__L63
	.word	__L63
	.word	__L63
	.word	__L66
	.word	__L63
	.word	__L67
	.word	__L63
	.word	__L63
	.word	__L63
	.word	__L63
	.word	__L63
	.word	__L68
	.code
__L64:

	.loc	274
	ld.uh	%r13,%r13
	xld.w	%r12,0x00000032		; 50

	.loc	275
	xjp	__L71
__L65:

	.loc	277
	xld.w	%r12,0x00000032		; 50
	xoor	%r13,%r13,0x00000010

	.loc	278
	xjp	__L71
__L66:

	.loc	280
	xld.w	%r12,0x00000032		; 50
	xoor	%r13,%r13,0x00000020

	.loc	281
	xjp	__L71
__L67:

	.loc	283
	xld.w	%r12,0x00000032		; 50
	xoor	%r13,%r13,0x00000030

	.loc	284
	xjp	__L71
__L68:

	.loc	286
	xld.w	%r12,0x00000032		; 50
	xoor	%r13,%r13,0x00000040
__L71:
	xcall	halWriteReg16
__L63:

	.loc	291
	.def	bend,	scl	110,	type	0x0,	endef
	popn	%r0
	ret
	.def	end,	scl	111,	type	0x0,	endef
	.align	1
	.def	GetRGBPanelDataWidth,	val	GetRGBPanelDataWidth,	scl	2,	type	0x2d,	endef
	.global	GetRGBPanelDataWidth

	.loc	300
	.def	ent,	scl	101,	type	0x0,	endef
GetRGBPanelDataWidth:
;	.frame	%sp,4,$31		# vars= 0, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0

	.loc	301
	xld.w	%r12,0x00000032		; 50
	xcall	halReadReg16
	ld.uh	%r10,%r10
	xsrl	%r10,4
	xand	%r10,%r10,0x00000007
	xcmp	%r10,4
	xjrugt	__L79
	xsll	%r10,2
	xld.w	%r10,[%r10+__L80]
	jp	%r10
	.code
	.align	2
__L80:
	.word	__L74
	.word	__L75
	.word	__L76
	.word	__L77
	.word	__L78
	.code

	.loc	303
__L74:
	xld.w	%r10,0x00000009		; 9
	xjp	__L81
__L75:

	.loc	304
	xld.w	%r10,0x0000000c		; 12
	xjp	__L81
__L76:

	.loc	305
	xld.w	%r10,0x00000010		; 16
	xjp	__L81
__L77:

	.loc	306
	xld.w	%r10,0x00000012		; 18
	xjp	__L81
__L78:

	.loc	307
	xld.w	%r10,0x00000018		; 24
	xjp	__L81
__L79:

	.loc	308
	xld.w	%r10,0x0000ffff		; 65535
__L81:

	.loc	310
	ret
	.def	end,	scl	111,	type	0x0,	endef
	.align	1
	.def	SetRGBPanelClkPol,	val	SetRGBPanelClkPol,	scl	2,	type	0x21,	endef
	.global	SetRGBPanelClkPol

	.loc	320
	.def	ent,	scl	101,	type	0x0,	endef
SetRGBPanelClkPol:
;	.frame	%sp,8,$31		# vars= 0, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	ld.w	%r0,%r12
	.def	mode,	val	0,	scl	17,	type	0xd,	endef

	.loc	321
	.def	begin,	scl	100,	type	0x0,	endef
	.def	reg,	val	10,	scl	4,	type	0xd,	endef
	xld.w	%r12,0x00000032		; 50
	xcall	halReadReg16

	.loc	322
	ld.uh	%r0,%r0
	cmp	%r0,0x0
	xjreq	__L83

	.loc	323
	ld.w	%r13,%r10
	xoor	%r13,%r13,0x00000080
	ld.uh	%r13,%r13
	xld.w	%r12,0x00000032		; 50
	xjp	__L85
__L83:

	.loc	325
	xld.w	%r12,0x00000032		; 50
	ld.w	%r13,%r10
	xand	%r13,%r13,0x0000ff7f
__L85:
	xcall	halWriteReg16

	.loc	327
	.def	bend,	scl	110,	type	0x0,	endef
	popn	%r0
	ret
	.def	end,	scl	111,	type	0x0,	endef
	.align	1
	.def	SetRGBPanelType,	val	SetRGBPanelType,	scl	2,	type	0x21,	endef
	.global	SetRGBPanelType

	.loc	336
	.def	ent,	scl	101,	type	0x0,	endef
SetRGBPanelType:
;	.frame	%sp,8,$31		# vars= 0, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	ld.w	%r0,%r12
	.def	type,	val	12,	scl	17,	type	0xd,	endef

	.loc	337
	.def	begin,	scl	100,	type	0x0,	endef
	.def	reg,	val	10,	scl	4,	type	0xd,	endef
	xld.w	%r12,0x00000032		; 50
	xcall	halReadReg16
	xand	%r10,%r10,0x000003ff

	.loc	338
	xsll	%r0,10
	or	%r10,%r0

	.loc	339
	ld.uh	%r10,%r10
	xld.w	%r12,0x00000032		; 50
	ld.w	%r13,%r10
	xcall	halWriteReg16

	.loc	340
	.def	bend,	scl	110,	type	0x0,	endef
	popn	%r0
	ret
	.def	end,	scl	111,	type	0x0,	endef
	.align	1
	.def	GetRGBPanelType,	val	GetRGBPanelType,	scl	2,	type	0x2d,	endef
	.global	GetRGBPanelType

	.loc	349
	.def	ent,	scl	101,	type	0x0,	endef
GetRGBPanelType:
;	.frame	%sp,4,$31		# vars= 0, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0

	.loc	350
	xld.w	%r12,0x00000032		; 50
	xcall	halReadReg16
	ld.uh	%r10,%r10
	xsrl	%r10,10

	.loc	351
	ret
	.def	end,	scl	111,	type	0x0,	endef
	.align	1
	.def	SetLcdHVTotal,	val	SetLcdHVTotal,	scl	2,	type	0x21,	endef
	.global	SetLcdHVTotal

	.loc	361
	.def	ent,	scl	101,	type	0x0,	endef
SetLcdHVTotal:
;	.frame	%sp,8,$31		# vars= 0, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	.def	HorizTotal,	val	12,	scl	17,	type	0xd,	endef
	.def	VertTotal,	val	0,	scl	17,	type	0xd,	endef

	.loc	362
	ld.uh	%r10,%r12
	xsrl	%r10,3
	xsub	%r10,%r10,1

	.loc	363
	xsub	%r0,%r13,1
	xand	%r0,%r0,0x000003ff

	.loc	365
	xld.w	%r12,0x00000040		; 64
	ld.w	%r13,%r10
	xand	%r13,%r13,0x0000007f
	xcall	halWriteReg16

	.loc	366
	ld.uh	%r0,%r0
	xld.w	%r12,0x0000004a		; 74
	ld.w	%r13,%r0
	xcall	halWriteReg16

	.loc	367
	popn	%r0
	ret
	.def	end,	scl	111,	type	0x0,	endef
	.align	1
	.def	SetLcdHVStartPos,	val	SetLcdHVStartPos,	scl	2,	type	0x21,	endef
	.global	SetLcdHVStartPos

	.loc	376
	.def	ent,	scl	101,	type	0x0,	endef
SetLcdHVStartPos:
;	.frame	%sp,8,$31		# vars= 0, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	ld.w	%r0,%r13
	.def	HPos,	val	12,	scl	17,	type	0xd,	endef
	.def	VPos,	val	0,	scl	17,	type	0xd,	endef

	.loc	377
	ld.uh	%r13,%r12
	xld.w	%r12,0x00000044		; 68
	xcall	halWriteReg16

	.loc	378
	ld.uh	%r0,%r0
	xld.w	%r12,0x0000004e		; 78
	ld.w	%r13,%r0
	xcall	halWriteReg16

	.loc	379
	popn	%r0
	ret
	.def	end,	scl	111,	type	0x0,	endef
	.align	1
	.def	SetLcdFpline,	val	SetLcdFpline,	scl	2,	type	0x21,	endef
	.global	SetLcdFpline

	.loc	390
	.def	ent,	scl	101,	type	0x0,	endef
SetLcdFpline:
;	.frame	%sp,8,$31		# vars= 0, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	ld.w	%r0,%r14
	.def	FpLinePol,	val	12,	scl	17,	type	0xd,	endef
	.def	FpLineWidth,	val	13,	scl	17,	type	0xd,	endef
	.def	FpLinePos,	val	14,	scl	17,	type	0xd,	endef

	.loc	391
	.def	begin,	scl	100,	type	0x0,	endef
	.def	reg,	val	10,	scl	4,	type	0xd,	endef

	.loc	393
	ld.w	%r10,%r12
	xsll	%r10,7
	xand	%r10,%r10,0x00000080
	xsub	%r13,%r13,1
	or	%r10,%r13

	.loc	394
	ld.uh	%r10,%r10
	xld.w	%r12,0x00000046		; 70
	ld.w	%r13,%r10
	xcall	halWriteReg16

	.loc	395
	xsub	%r0,%r0,1
	ld.uh	%r0,%r0
	xld.w	%r12,0x00000048		; 72
	ld.w	%r13,%r0
	xcall	halWriteReg16

	.loc	396
	.def	bend,	scl	110,	type	0x0,	endef
	popn	%r0
	ret
	.def	end,	scl	111,	type	0x0,	endef
	.align	1
	.def	SetLcdFPFrame,	val	SetLcdFPFrame,	scl	2,	type	0x21,	endef
	.global	SetLcdFPFrame

	.loc	408
	.def	ent,	scl	101,	type	0x0,	endef
SetLcdFPFrame:
;	.frame	%sp,8,$31		# vars= 0, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0
	ld.w	%r0,%r14
	.def	FPFramePol,	val	12,	scl	17,	type	0xd,	endef
	.def	FPFrameWidth,	val	13,	scl	17,	type	0xd,	endef
	.def	FPFramePos,	val	0,	scl	17,	type	0xd,	endef

	.loc	409
	.def	begin,	scl	100,	type	0x0,	endef
	.def	reg,	val	10,	scl	4,	type	0xd,	endef

⌨️ 快捷键说明

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