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

📄 drv_nandflash.ps

📁 nandflash驱动程序
💻 PS
📖 第 1 页 / 共 2 页
字号:
	.file	"..\src\drv_nandflash.c"

;  GNU C 2.7.2 [AL 1.1, MM 40] RISC NEWS-OS compiled by CC

;  Cc1 defaults:
;  -mmemcpy

;  Cc1 arguments (-G value = 0, Cpu = 3000, ISA = 1):
;  -quiet -dumpbase -g -O -fno-builtin -o

gcc2_compiled.:
__gnu_compiled_c:
	.code
	.def	_tag_nand_fls,	scl	10,	type	0x8,	size	4,	endef
	.def	maker_code,	val	0,	scl	8,	type	0xc,	endef
	.def	device_code,	val	1,	scl	8,	type	0xc,	endef
	.def	rev1,	val	2,	scl	8,	type	0xc,	endef
	.def	mutiplane_code,	val	3,	scl	8,	type	0xc,	endef
	.def	_tag_nand_fls,	val	4,	scl	102,	tag	_tag_nand_fls,	size	4,	endef
	.def	t_nand_fls_id,	scl	13,	tag	_tag_nand_fls,	size	4,	type	0x8,	endef
	.align	1
	.def	nand_fls_init,	val	nand_fls_init,	scl	2,	type	0x24,	endef
	.global	nand_fls_init

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

	.loc	33
	.def	begin,	scl	100,	type	0x0,	endef
	.def	i,	val	11,	scl	4,	type	0xd,	endef

	.loc	35
	xld.w	%r12,this_nand_fls_id
	xld.w	[p_nand_fls_id],%r12

	.loc	36
	ld.w	%r13,0x0
	xld.w	%r14,0x00000004		; 4
	xcall	memset

	.loc	41
	xld.w	%r12,0x000402d9		; 262873
	xbclr	[%r12],0x5

	.loc	42
	xld.w	%r11,0x000402da		; 262874
	xbset	[%r11],0x5

	.loc	43
	xbclr	[%r12],0x4

	.loc	44
	xbset	[%r11],0x4

	.loc	47
	xld.w	%r12,0x00300022		; 3145762
	xbset	[%r12],0x1

	.loc	50
	xld.w	%r11,0x0030004a		; 3145802
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xand	%r10,%r10,0x000000f3
	;.set	volatile
	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	53
	xld.w	%r11,0x00300023		; 3145763
	xbset	[%r11],0x1

	.loc	56
	xld.w	%r11,0x00300103		; 3145987
	xbclr	[%r11],0x0

	.loc	59
	xld.w	%r10,0x00300100		; 3145984
	ld.w	%r15,0x0
	;.set	volatile
	xld.b	[%r10],%r15
	;.set	novolatile

	.loc	63
	xld.w	%r11,0x00300047		; 3145799
	xbset	[%r11],0x0

	.loc	64
	xbset	[%r11],0x2

	.loc	67
	xld.w	%r11,0x00300f47		; 3149639
	xbclr	[%r11],0x5

	.loc	70
	xld.w	%r11,0x00300020		; 3145760
	xbset	[%r11],0x0

	.loc	71
	xld.w	%r11,0x00300048		; 3145800
	xbset	[%r11],0x0

	.loc	74
	xld.w	%r11,0x00300021		; 3145761
	xbset	[%r11],0x0

	.loc	77
	xbclr	[%r12],0x1

	.loc	79
; APP
	nop
; NO_APP

	.loc	81
	ld.w	%r11,0x0
	xld.w	%r12,0x0000270f		; 9999
__L5:

	.loc	82
; APP
	nop
; NO_APP

	.loc	81
	xadd	%r11,%r11,1
	ld.uh	%r10,%r11
	cmp	%r10,%r12
	xjrule	__L5

	.loc	87
	xld.w	%r11,0x000402d9		; 262873
	xbset	[%r11],0x4

	.loc	88
	xld.w	%r12,0x04000004		; 67108868
	xld.w	%r10,0x00000090		; 144
	;.set	volatile
	xld.b	[%r12],%r10
	;.set	novolatile

	.loc	89
	xbclr	[%r11],0x4

	.loc	91
	xbset	[%r11],0x5

	.loc	92
	xld.w	%r10,0x04000008		; 67108872
	ld.w	%r15,0x0
	;.set	volatile
	xld.b	[%r10],%r15
	;.set	novolatile

	.loc	93
	xbclr	[%r11],0x5

	.loc	96
	xld.w	%r12,[p_nand_fls_id]
	xld.w	%r11,0x04000000		; 67108864
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xld.b	[%r12],%r10

	.loc	97
	xld.w	%r12,[p_nand_fls_id]
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xld.b	[%r12+1],%r10

	.loc	98
	xld.w	%r12,[p_nand_fls_id]
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xld.b	[%r12+2],%r10

	.loc	99
	xld.w	%r12,[p_nand_fls_id]
	;.set	volatile
	xld.ub	%r10,[%r11]
	;.set	novolatile
	xld.b	[%r12+3],%r10

	.loc	101
	xld.w	%r11,0x00300022		; 3145762
	xbset	[%r11],0x1

	.loc	102
; APP
	nop
; NO_APP

	.loc	103
	xld.w	%r12,[p_nand_fls_id]
	xld.ub	%r11,[%r12]

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

	.loc	103
	xcmp	%r11,236
	xjrne	__L7
	xld.ub	%r11,[%r12+1]
	xcmp	%r11,241
	xjrne	__L7
	xld.ub	%r11,[%r12+3]
	xxor	%r11,%r11,0x00000015
	not	%r10,%r11
	add	%r10,1
	or	%r10,%r11
	xsrl	%r10,31
__L7:

	.loc	106

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

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

	.loc	114
	.def	begin,	scl	100,	type	0x0,	endef
	.def	i,	val	10,	scl	4,	type	0x4,	endef

	.loc	116
	xld.w	%r11,0x000402d9		; 262873
	xbset	[%r11],0x4

	.loc	118
	xld.w	%r12,0x04000000		; 67108864
	xld.w	%r10,0x000000ff		; 255
	;.set	volatile
	xld.h	[%r12],%r10
	;.set	novolatile

	.loc	120
	xbclr	[%r11],0x4

	.loc	123
	ld.w	%r10,0x0
	xld.w	%r11,0x0000031f		; 799
__L13:

	.loc	124
; APP
	nop
; NO_APP

	.loc	123
	xadd	%r10,%r10,1
	cmp	%r10,%r11
	xjrle	__L13

	.loc	128
	.def	bend,	scl	110,	type	0x0,	endef
	ret
	.def	end,	scl	111,	type	0x0,	endef
	.align	1
	.def	nand_fls_erase_block,	val	nand_fls_erase_block,	scl	2,	type	0x24,	endef
	.global	nand_fls_erase_block

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

	.loc	138
	.def	begin,	scl	100,	type	0x0,	endef

	.loc	140
	xld.w	%r11,0x00300022		; 3145762
	xbclr	[%r11],0x1

	.loc	141
; APP
	nop
; NO_APP

	.loc	144
	xld.w	%r11,0x000402d9		; 262873
	xbset	[%r11],0x4

	.loc	145
	xld.w	%r14,0x04000004		; 67108868
	xld.w	%r10,0x00000060		; 96
	;.set	volatile
	xld.b	[%r14],%r10
	;.set	novolatile

	.loc	146
	xbclr	[%r11],0x4

	.loc	149
	xbset	[%r11],0x5

	.loc	152
	xld.w	%r13,0x04000008		; 67108872
	xsll	%r12,6
	ld.w	%r10,%r12
	xand	%r10,%r10,0x000000ff
	;.set	volatile
	xld.h	[%r13],%r10
	;.set	novolatile

	.loc	155
	xand	%r12,%r12,0x0000ff00
	xsrl	%r12,8
	;.set	volatile
	xld.h	[%r13],%r12
	;.set	novolatile

	.loc	157
	xbclr	[%r11],0x5

	.loc	160
	xbset	[%r11],0x4

	.loc	161
	xld.w	%r10,0x000000d0		; 208
	;.set	volatile
	xld.b	[%r14],%r10
	;.set	novolatile

	.loc	162
	xbclr	[%r11],0x4

	.loc	164
; APP
	nop
; NO_APP

	.loc	165
; APP
	nop
; NO_APP

	.loc	166
; APP
	nop
; NO_APP

	.loc	167
; APP
	nop
; NO_APP

	.loc	168
; APP
	nop
; NO_APP

	.loc	169
; APP
	nop
; NO_APP

	.loc	170
; APP
	nop
; NO_APP

	.loc	171
; APP
	nop
; NO_APP

	.loc	172
; APP
	nop
; NO_APP

	.loc	173
; APP
	nop
; NO_APP

	.loc	174
; APP
	nop
; NO_APP

	.loc	175
; APP
	nop
; NO_APP

	.loc	176
; APP
	nop
; NO_APP

	.loc	177
; APP
	nop
; NO_APP

	.loc	178
; APP
	nop
; NO_APP

	.loc	179
; APP
	nop
; NO_APP

	.loc	180
; APP
	nop
; NO_APP

	.loc	181
; APP
	nop
; NO_APP

	.loc	182
; APP
	nop
; NO_APP

	.loc	183
; APP
	nop
; NO_APP

	.loc	184
; APP
	nop
; NO_APP

	.loc	186
	xld.w	%r12,0x00300f46		; 3149638
	xld.w	%r11,0x00000020		; 32
__L18:

	.loc	187
	;.set	volatile
	xld.ub	%r10,[%r12]
	;.set	novolatile
	and	%r10,%r11
	ld.ub	%r10,%r10
	cmp	%r10,0x0
	xjreq	__L18

	.loc	190
	xld.w	%r11,0x000402d9		; 262873
	xbset	[%r11],0x4

	.loc	191
	xld.w	%r12,0x04000004		; 67108868
	xld.w	%r10,0x00000070		; 112
	;.set	volatile
	xld.b	[%r12],%r10
	;.set	novolatile

	.loc	192
	xbclr	[%r11],0x4

	.loc	193
	xld.w	%r10,0x04000000		; 67108864
	;.set	volatile
	xld.ub	%r10,[%r10]
	;.set	novolatile
	ld.w	%r12,%r10
	xand	%r12,%r12,0x00000001
	xjrne	__L20

	.loc	201
	xld.w	%r11,0x00300022		; 3145762
	xbset	[%r11],0x1

	.loc	202
	ld.w	%r15,0x0
	xld.b	[ret],%r15

	.loc	203
	ld.w	%r10,%r12
	xjp	__L22
__L20:

	.loc	195
	xld.w	%r10,0x00300022		; 3145762
	xbset	[%r10],0x1

	.loc	196
	xld.w	%r10,0x00000001		; 1
	xld.b	[ret],%r10

	.loc	197
	xld.w	%r10,-1			; 0xffffffff
__L22:

	.loc	206
	.def	bend,	scl	110,	type	0x0,	endef
	ret
	.def	end,	scl	111,	type	0x0,	endef
	.align	1
	.def	nand_fls_write_page,	val	nand_fls_write_page,	scl	2,	type	0x24,	endef
	.global	nand_fls_write_page

	.loc	211
	.def	ent,	scl	101,	type	0x0,	endef
nand_fls_write_page:
;	.frame	%sp,4,$31		# vars= 0, regs= 1/0, args= 0, extra= 0
;	.mask	0x80000000,-4
;	.fmask	0x00000000,0
	ld.w	%r15,%r12
	.def	data,	val	15,	scl	17,	type	0x1c,	endef
	.def	page_num,	val	13,	scl	17,	type	0xe,	endef
	.def	block_num,	val	14,	scl	17,	type	0xe,	endef

	.loc	212
	.def	begin,	scl	100,	type	0x0,	endef
	.def	sWriteCount,	val	11,	scl	4,	type	0xd,	endef

	.loc	215
	xld.w	%r11,0x00300022		; 3145762
	xbclr	[%r11],0x1

	.loc	216
; APP
	nop
; NO_APP

	.loc	219
	xld.w	%r12,0x000402d9		; 262873
	xbset	[%r12],0x4

	.loc	220
	xld.w	%r11,0x04000004		; 67108868
	xld.w	%r10,0x00000080		; 128
	;.set	volatile
	xld.b	[%r11],%r10
	;.set	novolatile

	.loc	221
	xbclr	[%r12],0x4

	.loc	224
	xbset	[%r12],0x5

	.loc	227
	xld.w	%r11,0x04000008		; 67108872
	ld.w	%r4,0x0
	;.set	volatile
	xld.h	[%r11],%r4
	;.set	novolatile

	.loc	230
	;.set	volatile
	xld.h	[%r11],%r4
	;.set	novolatile

	.loc	233
	xsll	%r14,6
	add	%r14,%r13
	ld.w	%r10,%r14
	xand	%r10,%r10,0x000000ff
	;.set	volatile
	xld.h	[%r11],%r10
	;.set	novolatile

	.loc	236
	xand	%r14,%r14,0x0000ff00
	xsrl	%r14,8
	;.set	volatile
	xld.h	[%r11],%r14
	;.set	novolatile

	.loc	238
	xbclr	[%r12],0x5

	.loc	241
	ld.w	%r11,0x0
	xld.w	%r13,0x04000000		; 67108864
	xld.w	%r12,0x0000083f		; 2111
__L27:

	.loc	244
	ld.uh	%r10,%r11
	ld.w	%r4,%r15
	add	%r4,%r10
	ld.w	%r10,%r4
	;.set	volatile
	xld.ub	%r10,[%r10]
	;.set	novolatile
	;.set	volatile
	xld.b	[%r13],%r10
	;.set	novolatile

	.loc	241
	xadd	%r11,%r11,1
	ld.uh	%r10,%r11
	cmp	%r10,%r12
	xjrule	__L27

	.loc	248
	xld.w	%r11,0x000402d9		; 262873
	xbset	[%r11],0x4

⌨️ 快捷键说明

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