检查FE310-G002片内存储器的内容以及Red-V Thing Plus的Flash内容

打开 GDB:

$ riscv-none-embed-gdb

连接 Red-V Thing Plus 开发板:

(gdb) set arch riscv:rv32
The target architecture is assumed to be riscv:rv32
(gdb) target remote :2331
Remote debugging using :2331

复位后 PC 被设定为 0x1004,反汇编 0x1000 处的内容:

(gdb) disassemble /r 0x1000, +0x20
Dump of assembler code from 0x1000 to 0x1020:
   0x00001000:	03 00 00 00	lb		zero,0(zero) # 0x0
   0x00001004:	97 02 00 00	auipc	t0,0x0
   0x00001008:	03 a3 c2 ff	lw		t1,-4(t0) # 0x1000
   0x0000100c:	13 13 33 00	slli	t1,t1,0x3
   0x00001010:	b3 82 62 00	add		t0,t0,t1
   0x00001014:	83 a2 c2 0f	lw		t0,252(t0)
   0x00001018:	67 80 02 00	jr		t0
   0x0000101c:	00 00				unimp
   0x0000101e:	00 00				unimp
End of assembler dump.

0x1004 处的内容与 SiFive FE310-G002 Manual 所描述的内容相一致。根据指令内容,将使用 0x1000 存储的数据作为索引读取 0x1100 后面的存储的数据作为跳转地址。

查看 0x1100 的内容:

(gdb) x/8xw 0x1100
0x1100:	0x00001004	0x00000000	0x20000000	0x00000000
0x1110:	0x00020000	0x00000000	0x00010000	0x00000000

跳转地址分别为:0x00001004、0x20000000(QSPI0)、0x00020000(OTP)、0x00010000(Mask ROM),与参考手册描述一致。

0x1000 处存储的值为 0x3,将跳转到地址 0x00010000 处,反汇编 0x00010000 处的指令:

(gdb) disassemble /r 0x10000, +0x18
Dump of assembler code from 0x10000 to 0x10020:
   0x00010000:	73 25 40 f1	csrr	a0,mhartid
   0x00010004:	97 05 00 00	auipc	a1,0x0
   0x00010008:	93 85 45 05	addi	a1,a1,84 # 0x10058
   0x0001000c:	b7 02 02 00	lui		t0,0x20
   0x00010010:	67 80 02 00	jr		t0 # 0x20000
   0x00010014:	00 00				unimp
   0x00010016:	00 00				unimp
End of assembler dump.

这段代码将 hartid 和 0x10058 设置成函数入参后跳转到 0x00020000,检查 0x10058 的内容:

反汇编 0x00020000 的指令:

(gdb) disassemble /r 0x20000, +0x8 
Dump of assembler code from 0x20000 to 0x20008:
   0x00020000:	6f 10 10 7f	j	0x21ff0
   0x00020004:	00 00			unimp
   0x00020006:	00 00			unimp
End of assembler dump.

跳转到了 0x21ff0,接着反汇编:

(gdb) disassemble /r 0x21ff0, +0x10
Dump of assembler code from 0x21ff0 to 0x22000:
   0x00021ff0:	0f 00 00 00	fence	unknown,unknown
   0x00021ff4:	b7 02 02 00	lui		t0,0x20
   0x00021ff8:	93 82 02 01	addi	t0,t0,16 # 0x20010
   0x00021ffc:	67 80 02 00	jr		t0
End of assembler dump.

跳转到了 0x20010,接着反汇编:

(gdb) disassemble /r 0x20010, +0x490
Dump of assembler code from 0x20010 to 0x204a0:
   0x00020010:	b7 06 00 10	lui		a3,0x10000
   0x00020014:	03 a7 46 14	lw		a4,324(a3) # 0x10000144 pmucause
   0x00020018:	b7 07 01 00	lui		a5,0x10
   0x0002001c:	93 87 07 f0	addi	a5,a5,-256 # 0xff00
   0x00020020:	33 77 f7 00	and		a4,a4,a5
   0x00020024:	63 0a 07 02	beqz	a4,0x20058
   0x00020028:	03 a7 46 14	lw		a4,324(a3) # pmucause
   0x0002002c:	93 06 00 10	li		a3,256
   0x00020030:	b3 77 f7 00	and		a5,a4,a5
   0x00020034:	63 82 d7 02	beq		a5,a3,0x20058
   0x00020038:	b7 07 00 20	lui		a5,0x20000
   0x0002003c:	83 a7 07 00	lw		a5,0(a5) # 0x20000000
   0x00020040:	13 07 10 00	li		a4,1
   0x00020044:	93 87 17 00	addi	a5,a5,1
   0x00020048:	63 78 f7 04	bgeu	a4,a5,0x20098
   0x0002004c:	b7 02 00 20	lui		t0,0x20000
   0x00020050:	67 80 02 00	jr		t0 # 0x20000000
   0x00020054:	67 80 00 00	ret
   0x00020058:	37 07 00 10	lui		a4,0x10000
   0x0002005c:	83 27 47 14	lw		a5,324(a4) # 0x10000144 pmucause
   0x00020060:	93 f7 f7 0f	andi	a5,a5,255
   0x00020064:	e3 9a 07 fc	bnez	a5,0x20038
   0x00020068:	b7 27 01 10	lui		a5,0x10012
   0x0002006c:	23 a4 07 00	sw		zero,8(a5) # 0x10012008 output_en
   0x00020070:	23 ac 07 02	sw		zero,56(a5) # iof_en
   0x00020074:	23 a6 07 00	sw		zero,12(a5) # output_val
   0x00020078:	23 a0 07 04	sw		zero,64(a5) # out_xor
   0x0002007c:	23 a8 07 00	sw		zero,16(a5) # pue
   0x00020080:	b7 07 00 20	lui		a5,0x20000
   0x00020084:	83 a7 07 00	lw		a5,0(a5) # 0x20000000
   0x00020088:	23 22 07 08	sw		zero,132(a4) # backup_1
   0x0002008c:	13 07 10 00	li		a4,1
   0x00020090:	93 87 17 00	addi	a5,a5,1
   0x00020094:	e3 6c f7 fa	bltu	a4,a5,0x2004c
   0x00020098:	b7 07 00 10	lui		a5,0x10000
   0x0002009c:	83 a6 47 08	lw		a3,132(a5) # 0x10000084 backup_1
   0x000200a0:	13 07 f0 00	li		a4,15
   0x000200a4:	13 06 40 00	li		a2,4
   0x000200a8:	33 f7 e6 02	remu	a4,a3,a4
   0x000200ac:	93 86 16 00	addi	a3,a3,1
   0x000200b0:	23 a2 d7 08	sw		a3,132(a5) # backup_1
   0x000200b4:	63 74 e6 00	bgeu	a2,a4,0x200bc
   0x000200b8:	6f 00 00 00	j		0x200b8
   0x000200bc:	23 a0 e7 04	sw		a4,64(a5) # rtccfg
   0x000200c0:	23 a4 07 04	sw		zero,72(a5) # rtccountlo
   0x000200c4:	37 27 00 00	lui		a4,0x2
   0x000200c8:	37 05 00 10	lui		a0,0x10000
   0x000200cc:	23 a6 07 04	sw		zero,76(a5) # rtccounthi
   0x000200d0:	13 07 87 32	addi	a4,a4,808 # 0x2328
   0x000200d4:	b7 f6 51 00	lui		a3,0x51f
   0x000200d8:	23 a0 e7 06	sw		a4,96(a5) # rtccmp0
   0x000200dc:	13 06 c5 14	addi	a2,a0,332 # 0x1000014c pmukey
   0x000200e0:	93 87 07 10	addi	a5,a5,256
   0x000200e4:	93 86 e6 15	addi	a3,a3,350 # 0x51f15e
   0x000200e8:	93 05 c5 11	addi	a1,a0,284
   0x000200ec:	23 20 d6 00	sw		a3,0(a2)
   0x000200f0:	03 a7 07 00	lw		a4,0(a5) # pmuwakeupi0
   0x000200f4:	93 87 47 00	addi	a5,a5,4
   0x000200f8:	13 77 f7 fd	andi	a4,a4,-33
   0x000200fc:	23 ae e7 fe	sw		a4,-4(a5) # pmuwakeupi0
   0x00020100:	e3 96 b7 fe	bne		a5,a1,0x200ec
   0x00020104:	23 20 d6 00	sw		a3,0(a2) # pmukey
   0x00020108:	13 07 80 03	li		a4,56
   0x0002010c:	23 a0 e7 00	sw		a4,0(a5) # pmuwakeupi1
   0x00020110:	23 20 d6 00	sw		a3,0(a2) # pmukey
   0x00020114:	93 07 20 00	li		a5,2
   0x00020118:	23 20 f5 14	sw		a5,320(a0) # pmuie
   0x0002011c:	83 27 05 04	lw		a5,64(a0) # rtccfg
   0x00020120:	37 17 00 00	lui		a4,0x1
   0x00020124:	b3 e7 e7 00	or		a5,a5,a4
   0x00020128:	23 20 f5 04	sw		a5,64(a0) # rtccfg
   0x0002012c:	23 20 d6 00	sw		a3,0(a2) # pmukey
   0x00020130:	23 24 05 14	sw		zero,328(a0) # pmusleep
   0x00020134:	6f 00 00 00	j		0x20134
   0x00020138:	6f f0 5f f1	j		0x2004c
   0x0002013c:	b7 07 01 10	lui		a5,0x10010
   0x00020140:	13 08 10 00	li		a6,1
   0x00020144:	93 06 10 00	li		a3,1
   0x00020148:	23 a0 d7 00	sw		a3,0(a5) # 0x10010000 otp_lock
   0x0002014c:	03 a7 07 00	lw		a4,0(a5) # otp_lock
   0x00020150:	e3 0c 07 fe	beqz	a4,0x20148
   0x00020154:	23 a2 07 03	sw		a6,36(a5) # otp_vppen
   0x00020158:	23 a8 07 01	sw		a6,16(a5) # otp_we
   0x0002015c:	13 07 40 00	li		a4,4
   0x00020160:	23 ac e7 00	sw		a4,24(a5) # otp_mrr
   0x00020164:	f3 27 00 b0	csrr	a5,mcycle
   0x00020168:	73 27 00 b8	csrr	a4,mcycleh
   0x0002016c:	13 88 d7 00	addi	a6,a5,13
   0x00020170:	b3 37 f8 00	sltu	a5,a6,a5
   0x00020174:	33 87 e7 00	add		a4,a5,a4
   0x00020178:	f3 26 00 b0	csrr	a3,mcycle
   0x0002017c:	f3 27 00 b8	csrr	a5,mcycleh
   0x00020180:	e3 ec e7 fe	bltu	a5,a4,0x20178
   0x00020184:	63 14 f7 00	bne		a4,a5,0x2018c
   0x00020188:	e3 e8 06 ff	bltu	a3,a6,0x20178
   0x0002018c:	63 56 c0 10	blez	a2,0x20298
   0x00020190:	93 12 26 00	slli	t0,a2,0x2
   0x00020194:	13 8f 05 00	mv		t5,a1
   0x00020198:	93 0f 05 00	mv		t6,a0
   0x0002019c:	b3 82 b2 00	add		t0,t0,a1
   0x000201a0:	37 03 01 10	lui		t1,0x10010
   0x000201a4:	93 0e 10 00	li		t4,1
   0x000201a8:	13 0e 00 02	li		t3,32
   0x000201ac:	83 28 0f 00	lw		a7,0(t5)
   0x000201b0:	63 8e 08 0c	beqz	a7,0x2028c
   0x000201b4:	23 24 f3 03	sw		t6,40(t1) # 0x10010028
   0x000201b8:	f3 27 00 b0	csrr	a5,mcycle
   0x000201bc:	73 27 00 b8	csrr	a4,mcycleh
   0x000201c0:	13 88 17 00	addi	a6,a5,1
   0x000201c4:	b3 37 f8 00	sltu	a5,a6,a5
   0x000201c8:	33 87 e7 00	add		a4,a5,a4
   0x000201cc:	f3 26 00 b0	csrr	a3,mcycle
   0x000201d0:	f3 27 00 b8	csrr	a5,mcycleh
   0x000201d4:	e3 ec e7 fe	bltu	a5,a4,0x201cc
   0x000201d8:	63 14 f7 00	bne		a4,a5,0x201e0
   0x000201dc:	e3 e8 06 ff	bltu	a3,a6,0x201cc
   0x000201e0:	93 06 00 00	li		a3,0
   0x000201e4:	6f 00 c0 00	j		0x201f0
   0x000201e8:	93 86 16 00	addi	a3,a3,1
   0x000201ec:	63 80 c6 0b	beq		a3,t3,0x2028c
   0x000201f0:	b3 d7 d8 00	srl		a5,a7,a3
   0x000201f4:	93 f7 17 00	andi	a5,a5,1
   0x000201f8:	e3 88 07 fe	beqz	a5,0x201e8
   0x000201fc:	b3 97 de 00	sll		a5,t4,a3
   0x00020200:	23 26 f3 02	sw		a5,44(t1)
   0x00020204:	f3 27 00 b0	csrr	a5,mcycle
   0x00020208:	73 27 00 b8	csrr	a4,mcycleh
   0x0002020c:	93 83 17 00	addi	t2,a5,1
   0x00020210:	b3 b7 f3 00	sltu	a5,t2,a5
   0x00020214:	33 87 e7 00	add		a4,a5,a4
   0x00020218:	73 28 00 b0	csrr	a6,mcycle
   0x0002021c:	f3 27 00 b8	csrr	a5,mcycleh
   0x00020220:	e3 ec e7 fe	bltu	a5,a4,0x20218
   0x00020224:	63 14 f7 00	bne		a4,a5,0x2022c
   0x00020228:	e3 68 78 fe	bltu	a6,t2,0x20218
   0x0002022c:	23 22 d3 01	sw		t4,4(t1)
   0x00020230:	f3 27 00 b0	csrr	a5,mcycle
   0x00020234:	73 27 00 b8	csrr	a4,mcycleh
   0x00020238:	93 83 27 4e	addi	t2,a5,1250
   0x0002023c:	b3 b7 f3 00	sltu	a5,t2,a5
   0x00020240:	33 87 e7 00	add		a4,a5,a4
   0x00020244:	73 28 00 b0	csrr	a6,mcycle
   0x00020248:	f3 27 00 b8	csrr	a5,mcycleh
   0x0002024c:	e3 ec e7 fe	bltu	a5,a4,0x20244
   0x00020250:	63 14 f7 00	bne		a4,a5,0x20258
   0x00020254:	e3 68 78 fe	bltu	a6,t2,0x20244
   0x00020258:	23 22 03 00	sw		zero,4(t1)
   0x0002025c:	f3 27 00 b0	csrr	a5,mcycle
   0x00020260:	73 27 00 b8	csrr	a4,mcycleh
   0x00020264:	93 83 a7 00	addi	t2,a5,10
   0x00020268:	b3 b7 f3 00	sltu	a5,t2,a5
   0x0002026c:	33 87 e7 00	add		a4,a5,a4
   0x00020270:	73 28 00 b0	csrr	a6,mcycle
   0x00020274:	f3 27 00 b8	csrr	a5,mcycleh
   0x00020278:	e3 ec e7 fe	bltu	a5,a4,0x20270
   0x0002027c:	e3 16 f7 f6	bne		a4,a5,0x201e8
   0x00020280:	e3 68 78 fe	bltu	a6,t2,0x20270
   0x00020284:	93 86 16 00	addi	a3,a3,1
   0x00020288:	e3 94 c6 f7	bne		a3,t3,0x201f0
   0x0002028c:	13 0f 4f 00	addi	t5,t5,4
   0x00020290:	93 8f 1f 00	addi	t6,t6,1
   0x00020294:	e3 9c e2 f1	bne		t0,t5,0x201ac
   0x00020298:	b7 07 01 10	lui		a5,0x10010
   0x0002029c:	23 ac 07 00	sw		zero,24(a5) # 0x10010018
   0x000202a0:	23 a8 07 00	sw		zero,16(a5)
   0x000202a4:	23 a2 07 02	sw		zero,36(a5)
   0x000202a8:	f3 27 00 b0	csrr	a5,mcycle
   0x000202ac:	73 27 00 b8	csrr	a4,mcycleh
   0x000202b0:	13 88 b7 04	addi	a6,a5,75
   0x000202b4:	b3 37 f8 00	sltu	a5,a6,a5
   0x000202b8:	33 87 e7 00	add		a4,a5,a4
   0x000202bc:	f3 26 00 b0	csrr	a3,mcycle
   0x000202c0:	f3 27 00 b8	csrr	a5,mcycleh
   0x000202c4:	e3 ec e7 fe	bltu	a5,a4,0x202bc
   0x000202c8:	63 14 f7 00	bne		a4,a5,0x202d0
   0x000202cc:	e3 e8 06 ff	bltu	a3,a6,0x202bc
   0x000202d0:	b7 07 01 10	lui		a5,0x10010
   0x000202d4:	23 a0 07 00	sw		zero,0(a5) # 0x10010000
   0x000202d8:	63 52 c0 04	blez	a2,0x2031c
   0x000202dc:	93 16 25 00	slli	a3,a0,0x2
   0x000202e0:	13 17 26 00	slli	a4,a2,0x2
   0x000202e4:	b3 86 b6 40	sub		a3,a3,a1
   0x000202e8:	b7 07 02 00	lui		a5,0x20
   0x000202ec:	33 87 e5 00	add		a4,a1,a4
   0x000202f0:	13 05 00 00	li		a0,0
   0x000202f4:	b3 86 f6 00	add		a3,a3,a5
   0x000202f8:	b3 87 b6 00	add		a5,a3,a1
   0x000202fc:	83 a7 07 00	lw		a5,0(a5) # 0x20000
   0x00020300:	03 a6 05 00	lw		a2,0(a1)
   0x00020304:	93 85 45 00	addi	a1,a1,4
   0x00020308:	93 c7 f7 ff	not		a5,a5
   0x0002030c:	b3 f7 c7 00	and		a5,a5,a2
   0x00020310:	33 65 f5 00	or		a0,a0,a5
   0x00020314:	e3 92 e5 fe	bne		a1,a4,0x202f8
   0x00020318:	67 80 00 00	ret
   0x0002031c:	13 05 00 00	li		a0,0
   0x00020320:	67 80 00 00	ret
   0x00020324:	63 5e c0 04	blez	a2,0x20380
   0x00020328:	93 17 25 00	slli	a5,a0,0x2
   0x0002032c:	b7 08 02 00	lui		a7,0x20
   0x00020330:	b3 86 f8 00	add		a3,a7,a5
   0x00020334:	03 a7 05 00	lw		a4,0(a1)
   0x00020338:	83 a6 06 00	lw		a3,0(a3)
   0x0002033c:	13 47 f7 ff	not		a4,a4
   0x00020340:	33 77 d7 00	and		a4,a4,a3
   0x00020344:	63 12 07 0c	bnez	a4,0x20408
   0x00020348:	b3 87 b7 40	sub		a5,a5,a1
   0x0002034c:	13 87 45 00	addi	a4,a1,4
   0x00020350:	93 06 00 00	li		a3,0
   0x00020354:	b3 88 17 01	add		a7,a5,a7
   0x00020358:	6f 00 c0 01	j		0x20374
   0x0002035c:	83 27 07 00	lw		a5,0(a4)
   0x00020360:	03 28 08 00	lw		a6,0(a6)
   0x00020364:	13 07 47 00	addi	a4,a4,4
   0x00020368:	93 c7 f7 ff	not		a5,a5
   0x0002036c:	b3 f7 07 01	and		a5,a5,a6
   0x00020370:	63 9c 07 08	bnez	a5,0x20408
   0x00020374:	93 86 16 00	addi	a3,a3,1
   0x00020378:	33 88 e8 00	add		a6,a7,a4
   0x0002037c:	e3 10 d6 fe	bne		a2,a3,0x2035c
   0x00020380:	13 01 01 fe	addi	sp,sp,-32
   0x00020384:	23 2c 81 00	sw		s0,24(sp)
   0x00020388:	23 2a 91 00	sw		s1,20(sp)
   0x0002038c:	23 28 21 01	sw		s2,16(sp)
   0x00020390:	23 26 31 01	sw		s3,12(sp)
   0x00020394:	23 2e 11 00	sw		ra,28(sp)
   0x00020398:	93 84 05 00	mv		s1,a1
   0x0002039c:	93 09 05 00	mv		s3,a0
   0x000203a0:	13 04 06 00	mv		s0,a2
   0x000203a4:	61 3b		jal		0x2013c
   0x000203a6:	13 09 a0 00	li		s2,10
   0x000203aa:	63 0f 05 02	beqz	a0,0x203e8
   0x000203ae:	13 06 04 00	mv		a2,s0
   0x000203b2:	93 85 04 00	mv		a1,s1
   0x000203b6:	13 85 09 00	mv		a0,s3
   0x000203ba:	49 33		jal		0x2013c
   0x000203bc:	13 09 f9 ff	addi	s2,s2,-1
   0x000203c0:	63 04 05 02	beqz	a0,0x203e8
   0x000203c4:	e3 15 09 fe	bnez	s2,0x203ae
   0x000203c8:	83 20 c1 01	lw		ra,28(sp)
   0x000203cc:	03 24 81 01	lw		s0,24(sp)
   0x000203d0:	83 24 41 01	lw		s1,20(sp)
   0x000203d4:	03 29 01 01	lw		s2,16(sp)
   0x000203d8:	83 29 c1 00	lw		s3,12(sp)
   0x000203dc:	13 05 80 0a	li		a0,168
   0x000203e0:	13 01 01 02	addi	sp,sp,32
   0x000203e4:	67 80 00 00	ret
   0x000203e8:	83 20 c1 01	lw		ra,28(sp)
   0x000203ec:	03 24 81 01	lw		s0,24(sp)
   0x000203f0:	83 24 41 01	lw		s1,20(sp)
   0x000203f4:	03 29 01 01	lw		s2,16(sp)
   0x000203f8:	83 29 c1 00	lw		s3,12(sp)
   0x000203fc:	13 05 00 00	li		a0,0
   0x00020400:	13 01 01 02	addi	sp,sp,32
   0x00020404:	67 80 00 00	ret
   0x00020408:	13 05 90 09	li		a0,153
   0x0002040c:	67 80 00 00	ret
   0x00020410:	b7 07 02 00	lui		a5,0x20
   0x00020414:	03 a5 07 00	lw		a0,0(a5) # 0x20000
   0x00020418:	33 35 a0 00	snez	a0,a0
   0x0002041c:	67 80 00 00	ret
   0x00020420:	b7 07 02 00	lui		a5,0x20
   0x00020424:	b7 26 02 00	lui		a3,0x22
   0x00020428:	6f 00 80 00	j		0x20430
   0x0002042c:	63 8c d7 00	beq		a5,a3,0x20444
   0x00020430:	03 a7 07 00	lw		a4,0(a5) # 0x20000
   0x00020434:	93 87 47 00	addi	a5,a5,4
   0x00020438:	e3 0a 07 fe	beqz	a4,0x2042c
   0x0002043c:	13 05 80 0b	li		a0,184
   0x00020440:	67 80 00 00	ret
   0x00020444:	37 06 01 10	lui		a2,0x10010
   0x00020448:	03 27 46 01	lw		a4,20(a2) # 0x10010014
   0x0002044c:	b7 07 02 00	lui		a5,0x20
   0x00020450:	b7 06 00 80	lui		a3,0x80000
   0x00020454:	13 67 27 00	ori		a4,a4,2
   0x00020458:	23 2a e6 00	sw		a4,20(a2)
   0x0002045c:	37 26 02 00	lui		a2,0x22
   0x00020460:	6f 00 80 00	j		0x20468
   0x00020464:	63 8c c7 00	beq		a5,a2,0x2047c
   0x00020468:	03 a7 07 00	lw		a4,0(a5) # 0x20000
   0x0002046c:	93 87 47 00	addi	a5,a5,4
   0x00020470:	e3 0a d7 fe	beq		a4,a3,0x20464
   0x00020474:	13 05 70 0c	li		a0,199
   0x00020478:	67 80 00 00	ret
   0x0002047c:	37 07 01 10	lui		a4,0x10010
   0x00020480:	03 26 47 01	lw		a2,20(a4)
   0x00020484:	b7 07 02 00	lui		a5,0x20
   0x00020488:	93 06 f0 ff	li		a3,-1
   0x0002048c:	13 76 d6 ff	andi	a2,a2,-3
   0x00020490:	00 00	unimp
   0x00020492:	00 00	unimp
   0x00020494:	00 00	unimp
   0x00020496:	00 00	unimp
   0x00020498:	00 00	unimp
   0x0002049a:	00 00	unimp
   0x0002049c:	00 00	unimp
   0x0002049e:	00 00	unimp
End of assembler dump.

OTP 区域有好长一段代码,大约1K, OTP 其它区域为全为0。

SPI Flash 起始地址 0x20000000 处存储了 boot loader:

(gdb) disassemble /r 0x20000000, +0x10000
Dump of assembler code from 0x20000000 to 0x20010000:
   0x20000000:	11 a0	j	0x20000004
   0x20000002:	82 80	ret
   0x20000004:	81 40	li	ra,0
   0x20000006:	01 41	li	sp,0
   0x20000008:	81 41	li	gp,0
   0x2000000a:	01 42	li	tp,0
   0x2000000c:	81 42	li	t0,0
   0x2000000e:	01 43	li	t1,0
   0x20000010:	81 43	li	t2,0
   0x20000012:	01 44	li	s0,0
   0x20000014:	81 44	li	s1,0
   0x20000016:	01 46	li	a2,0
   0x20000018:	81 46	li	a3,0
   0x2000001a:	01 47	li	a4,0
   0x2000001c:	81 47	li	a5,0
   0x2000001e:	01 48	li	a6,0
   0x20000020:	81 48	li	a7,0
   0x20000022:	01 49	li	s2,0
   0x20000024:	81 49	li	s3,0
   0x20000026:	01 4a	li	s4,0
   0x20000028:	81 4a	li	s5,0
   0x2000002a:	01 4b	li	s6,0
   0x2000002c:	81 4b	li	s7,0
   0x2000002e:	01 4c	li	s8,0
   0x20000030:	81 4c	li	s9,0
   0x20000032:	01 4d	li	s10,0
   0x20000034:	81 4d	li	s11,0
   0x20000036:	01 4e	li	t3,0
   0x20000038:	81 4e	li	t4,0
   0x2000003a:	01 4f	li	t5,0
   0x2000003c:	81 4f	li	t6,0
   0x2000003e:	97 11 00 60	auipc	gp,0x60001
   0x20000042:	93 81 21 d4	addi	gp,gp,-702 # 0x80000d80
   0x20000046:	97 02 00 00	auipc	t0,0x0
   0x2000004a:	93 82 a2 13	addi	t0,t0,314 # 0x20000180
   0x2000004e:	73 90 52 30	csrw	mtvec,t0
   ..................

SPI Flash 起始地址 0x20010000 处存储了用户程序:

(gdb) disassemble /r 0x20010000, +0x10000
Dump of assembler code from 0x20010000 to 0x20020000:
   0x20010000:	97 11 ff 5f	auipc	gp,0x5fff1
   0x20010004:	93 81 01 2a	addi	gp,gp,672 # 0x800012a0
   0x20010008:	97 02 00 00	auipc	t0,0x0
   0x2001000c:	93 82 82 01	addi	t0,t0,24 # 0x20010020
   0x20010010:	73 90 52 30	csrw	mtvec,t0
   0x20010014:	93 02 10 00	li	t0,1
   0x20010018:	63 84 02 00	beqz	t0,0x20010020
   0x2001001c:	73 50 10 7c	csrwi	0x7c1,0
   0x20010020:	97 02 00 00	auipc	t0,0x0
   0x20010024:	93 82 c2 11	addi	t0,t0,284 # 0x2001013c
   0x20010028:	73 90 52 30	csrw	mtvec,t0
   0x2001002c:	17 01 ff df	auipc	sp,0xdfff0
   0x20010030:	13 01 41 fd	addi	sp,sp,-44 # 0x0
   0x20010034:	63 14 01 00	bnez	sp,0x2001003c
   0x20010038:	13 81 01 d0	addi	sp,gp,-768
   0x2001003c:	73 25 40 f1	csrr	a0,mhartid
   0x20010040:	81 42	li	t0,0
   0x20010042:	13 03 00 40	li	t1,1024
   0x20010046:	13 71 01 ff	andi	sp,sp,-16
   0x2001004a:	63 85 a2 00	beq	t0,a0,0x20010054
   0x2001004e:	1a 91	add	sp,sp,t1
   0x20010050:	85 02	addi	t0,t0,1
   0x20010052:	d5 bf	j	0x20010046
   0x20010054:	97 00 00 00	auipc	ra,0x0
   0x20010058:	93 80 20 08	addi	ra,ra,130 # 0x200100d6
   0x2001005c:	63 83 00 00	beqz	ra,0x20010062
   0x20010060:	82 90	jalr	ra
   0x20010062:	73 25 40 f1	csrr	a0,mhartid
   0x20010066:	81 45	li	a1,0
   0x20010068:	01 46	li	a2,0
   0x2001006a:	fd 20	jal	0x20010158
   ......................................

Red-V Thing Plus 外部的 SPI Flash 布局与 HiFive1 Rev B 一致。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值