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

📄 hal_host.ps

📁 一款SmartPhone的驱动代码
💻 PS
📖 第 1 页 / 共 5 页
字号:

	.loc	234
	xld.w	%r10,[HalInfo+328]
	xand	%r10,%r10,0x00000040
	xjrne	__L45

	.loc	237
	xld.w	%r10,[gHalMemAddr]
	add	%r10,%r12
	;.set	volatile
	xld.ub	%r10,[%r10]
	;.set	novolatile
	xjp	__L48
__L45:

	.loc	235
	xcall	halIndirectReadDisplay8
__L48:
	ld.ub	%r10,%r10

	.loc	238
	ret
	.def	end,	scl	111,	type	0x0,	endef
	.align	1
	.def	halReadDisplay16,	val	halReadDisplay16,	scl	2,	type	0x2d,	endef
	.global	halReadDisplay16

	.loc	241
	.def	ent,	scl	101,	type	0x0,	endef
halReadDisplay16:
;	.frame	%sp,4,$31		# vars= 0, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
	.def	Offset,	val	12,	scl	17,	type	0xf,	endef

	.loc	242
	xld.w	%r10,[HalInfo+328]
	xand	%r10,%r10,0x00000040
	xjrne	__L50

	.loc	245
	xld.w	%r10,[gHalMemAddr]
	add	%r10,%r12
	;.set	volatile
	xld.uh	%r10,[%r10]
	;.set	novolatile
	xjp	__L53
__L50:

	.loc	243
	xcall	halIndirectReadDisplay16
__L53:
	ld.uh	%r10,%r10

	.loc	246
	ret
	.def	end,	scl	111,	type	0x0,	endef
	.align	1
	.def	halReadDisplay32,	val	halReadDisplay32,	scl	2,	type	0x2f,	endef
	.global	halReadDisplay32

	.loc	249
	.def	ent,	scl	101,	type	0x0,	endef
halReadDisplay32:
;	.frame	%sp,4,$31		# vars= 0, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
	.def	Offset,	val	12,	scl	17,	type	0xf,	endef

	.loc	250
	xld.w	%r10,[HalInfo+328]
	xand	%r10,%r10,0x00000040
	xjrne	__L55

	.loc	253
	xld.w	%r10,[gHalMemAddr]
	add	%r10,%r12
	;.set	volatile
	xld.w	%r10,[%r10]
	;.set	novolatile
	xjp	__L57
__L55:

	.loc	251
	xcall	halIndirectReadDisplay32
__L57:

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

	.loc	264
	.def	ent,	scl	101,	type	0x0,	endef
halInitRegisters:
;	.frame	%sp,8,$31		# vars= 0, regs= 2/0, args= 0, extra= 0
;	.mask	0x80010000,-4
;	.fmask	0x00000000,0
	pushn	%r0

	.loc	265
	.def	begin,	scl	100,	type	0x0,	endef
	.def	idx,	val	0,	scl	4,	type	0xf,	endef
	.def	ulIndex,	val	12,	scl	4,	type	0xf,	endef

	.loc	268
	ld.w	%r0,0x0
__L62:

	.loc	270
	ld.w	%r10,%r0
	xsll	%r10,2
	xld.uh	%r12,[%r10+HalInfo+332]

	.loc	272
	xcmp	%r12,65519
	xjrugt	__L63

	.loc	274
	xld.uh	%r13,[%r10+HalInfo+334]
	xcall	halWriteReg16

	.loc	279
	xjp	__L61
__L63:

	.loc	282
	xcmp	%r12,65533
	xjrult	__L61
	xcmp	%r12,65534
	xjrule	__L61
	xcmp	%r12,65535
	xjrne	__L61

	.loc	289
	xld.w	%r0,0x00000108		; 264

	.loc	268
__L61:
	xadd	%r0,%r0,1
	xcmp	%r0,263
	xjrule	__L62

	.loc	296
	.def	bend,	scl	110,	type	0x0,	endef
	popn	%r0
	ret
	.def	end,	scl	111,	type	0x0,	endef
	.align	1
	.def	halpInitI2C,	val	halpInitI2C,	scl	2,	type	0x2c,	endef
	.global	halpInitI2C

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

	.loc	308
	xld.w	%r10,0x00000001		; 1

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

	.loc	319
	.def	ent,	scl	101,	type	0x0,	endef
halInitLUT:
;	.frame	%sp,20,$31		# vars= 0, regs= 5/0, args= 0, extra= 0
;	.mask	0x800f0000,-4
;	.fmask	0x00000000,0
	pushn	%r3

	.loc	320
	.def	begin,	scl	100,	type	0x0,	endef
	.def	i,	val	1,	scl	4,	type	0xf,	endef
	.def	LutIndex,	val	2,	scl	4,	type	0xf,	endef
	.def	red,	val	3,	scl	4,	type	0xc,	endef
	.def	green,	val	11,	scl	4,	type	0xc,	endef
	.def	blue,	val	0,	scl	4,	type	0xc,	endef
	.def	val,	val	13,	scl	4,	type	0xd,	endef
	.def	PipBpp,	val	3,	scl	4,	type	0xf,	endef
	.def	pLut,	val	0,	scl	4,	type	0x1c,	endef

	.loc	329
	xld.w	%r2,0x00000400		; 1024

	.loc	330
	xld.w	%r0,LutInfo

	.loc	333
	xld.w	%r12,0x00000200		; 512
	xcall	halReadReg16
	xand	%r10,%r10,0x00000003
	xcmp	%r10,1
	xjreq	__L78
	xjrle	__L77
	xcmp	%r10,2
	xjreq	__L79
	xcmp	%r10,3
	xjreq	__L80
__L77:

	.loc	336
	xld.w	%r3,0x00000008		; 8
	xjp	__L75
__L78:

	.loc	337
	xld.w	%r3,0x00000010		; 16
	xjp	__L75
__L79:

	.loc	338
	xld.w	%r3,0x00000018		; 24
	xjp	__L75
__L80:

	.loc	339
	xld.w	%r3,0x00000020		; 32
__L75:

	.loc	343
	ld.w	%r1,0x0
__L86:

	.loc	346
	xld.ub	%r13,[%r0]
	xadd	%r0,%r0,1

	.loc	347
	xld.ub	%r10,[%r0]
	xsll	%r10,8
	xadd	%r0,%r0,1

	.loc	349
	ld.w	%r12,%r2
	or	%r13,%r10
	xcall	halWriteReg16

	.loc	350
	xadd	%r2,%r2,2

	.loc	352
	xld.ub	%r13,[%r0]
	xadd	%r0,%r0,1

	.loc	353
	ld.uh	%r13,%r13
	ld.w	%r12,%r2
	xcall	halWriteReg16

	.loc	354
	xadd	%r2,%r2,2

	.loc	343
	xadd	%r1,%r1,1
	xcmp	%r1,255
	xjrule	__L86

	.loc	358
	xld.w	%r2,0x00000800		; 2048

	.loc	360
	xcmp	%r3,16
	xjrne	__L88

	.loc	362
	ld.w	%r1,0x0
__L92:

	.loc	364
	xcmp	%r1,31
	xjrugt	__L93

	.loc	365
	xld.w	%r14,0x000000ff		; 255
	mlt.w	%r1,%r14
	ld.w	%r12,%alr
	xld.w	%r13,0x0000001f		; 31
	xcall	__udivsi3
	ld.w	%r0,%r10
	xjp	__L104
__L93:

	.loc	367
	xld.w	%r0,0x000000ff		; 255
__L104:
	ld.w	%r3,%r0

	.loc	369
	xld.w	%r14,0x000000ff		; 255
	mlt.w	%r1,%r14
	ld.w	%r12,%alr
	xld.w	%r13,0x0000003f		; 63
	xcall	__udivsi3

	.loc	371
	ld.ub	%r13,%r10
	ld.w	%r10,%r13
	xsll	%r10,8
	ld.ub	%r13,%r3

	.loc	372
	ld.w	%r12,%r2
	or	%r13,%r10
	xcall	halWriteReg16

	.loc	373
	xadd	%r2,%r2,2

	.loc	375
	ld.ub	%r13,%r0
	ld.w	%r12,%r2
	xcall	halWriteReg16

	.loc	376
	xadd	%r2,%r2,2

	.loc	362
	xadd	%r1,%r1,1
	xcmp	%r1,63
	xjrule	__L92

	.loc	378
	xjp	__L96
__L88:

	.loc	381
	ld.w	%r1,0x0
__L100:

	.loc	383
	xld.w	%r10,0x000000ff		; 255
	mlt.w	%r1,%r10
	ld.w	%r12,%alr
	xld.w	%r13,0x00000007		; 7
	xcall	__udivsi3
	ld.w	%r11,%r10
	ld.w	%r3,%r11

	.loc	385
	xcmp	%r1,3
	xjrugt	__L101

	.loc	386
	xld.w	%r10,0x00000055		; 85
	mlt.w	%r1,%r10
	ld.w	%r0,%alr
	xjp	__L102
__L101:

	.loc	388
	xld.w	%r0,0x000000ff		; 255
__L102:

	.loc	390
	ld.ub	%r10,%r11
	xsll	%r10,8
	ld.ub	%r13,%r3

	.loc	391
	ld.w	%r12,%r2
	or	%r13,%r10
	xcall	halWriteReg16

	.loc	392
	xadd	%r2,%r2,2

	.loc	394
	ld.ub	%r13,%r0
	ld.w	%r12,%r2
	xcall	halWriteReg16

	.loc	395
	xadd	%r2,%r2,2

	.loc	381
	xadd	%r1,%r1,1
	xcmp	%r1,7
	xjrule	__L100
__L96:

	.loc	398
	.def	bend,	scl	110,	type	0x0,	endef
	popn	%r3
	ret
	.def	end,	scl	111,	type	0x0,	endef
	.align	1
	.def	halpClearVmem,	val	halpClearVmem,	scl	2,	type	0x21,	endef
	.global	halpClearVmem

	.loc	407
	.def	ent,	scl	101,	type	0x0,	endef
halpClearVmem:
;	.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	ptr,	val	0,	scl	17,	type	0x1f,	endef

	.loc	408
	.def	begin,	scl	100,	type	0x0,	endef
	.def	ulNumDwords,	val	10,	scl	4,	type	0xf,	endef
	.def	cnt,	val	11,	scl	4,	type	0xf,	endef

	.loc	411
	ld.w	%r12,0x0
	xcall	halReadReg32
	xsll	%r10,2
	xand	%r10,%r10,0x0003fc00

⌨️ 快捷键说明

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