
debugprintfdemo.elf:     file format elf32-littleriscv


Disassembly of section .init:

00000000 <InterruptVector>:
   0:	38e0006f          	j	38e <handle_reset>
   4:	00000000          	.word	0x00000000
   8:	00000406          	.word	0x00000406
   c:	00000404          	.word	0x00000404
	...
  30:	00000404          	.word	0x00000404
  34:	00000000          	.word	0x00000000
  38:	00000404          	.word	0x00000404
  3c:	00000000          	.word	0x00000000
  40:	00000404          	.word	0x00000404
  44:	00000404          	.word	0x00000404
  48:	00000404          	.word	0x00000404
  4c:	00000404          	.word	0x00000404
  50:	00000404          	.word	0x00000404
  54:	00000404          	.word	0x00000404
  58:	00000404          	.word	0x00000404
  5c:	00000404          	.word	0x00000404
  60:	00000404          	.word	0x00000404
  64:	00000404          	.word	0x00000404
  68:	00000404          	.word	0x00000404
  6c:	00000404          	.word	0x00000404
  70:	00000404          	.word	0x00000404
  74:	00000404          	.word	0x00000404
  78:	00000404          	.word	0x00000404
  7c:	00000404          	.word	0x00000404
  80:	00000404          	.word	0x00000404
  84:	00000404          	.word	0x00000404
  88:	00000404          	.word	0x00000404
  8c:	00000404          	.word	0x00000404
  90:	00000404          	.word	0x00000404
  94:	00000404          	.word	0x00000404
  98:	00000404          	.word	0x00000404
  9c:	0000                	.2byte	0x0
	...

Disassembly of section .text:

000000a0 <__divsi3>:
  a0:	02054e63          	bltz	a0,dc <__umodsi3+0x8>
  a4:	0405c363          	bltz	a1,ea <__umodsi3+0x16>

000000a8 <__hidden___udivsi3>:
  a8:	862e                	mv	a2,a1
  aa:	85aa                	mv	a1,a0
  ac:	557d                	li	a0,-1
  ae:	c215                	beqz	a2,d2 <__hidden___udivsi3+0x2a>
  b0:	4685                	li	a3,1
  b2:	00b67863          	bgeu	a2,a1,c2 <__hidden___udivsi3+0x1a>
  b6:	00c05663          	blez	a2,c2 <__hidden___udivsi3+0x1a>
  ba:	0606                	sll	a2,a2,0x1
  bc:	0686                	sll	a3,a3,0x1
  be:	feb66ce3          	bltu	a2,a1,b6 <__hidden___udivsi3+0xe>
  c2:	4501                	li	a0,0
  c4:	00c5e463          	bltu	a1,a2,cc <__hidden___udivsi3+0x24>
  c8:	8d91                	sub	a1,a1,a2
  ca:	8d55                	or	a0,a0,a3
  cc:	8285                	srl	a3,a3,0x1
  ce:	8205                	srl	a2,a2,0x1
  d0:	faf5                	bnez	a3,c4 <__hidden___udivsi3+0x1c>
  d2:	8082                	ret

000000d4 <__umodsi3>:
  d4:	8286                	mv	t0,ra
  d6:	3fc9                	jal	a8 <__hidden___udivsi3>
  d8:	852e                	mv	a0,a1
  da:	8282                	jr	t0
  dc:	40a00533          	neg	a0,a0
  e0:	00b04763          	bgtz	a1,ee <__umodsi3+0x1a>
  e4:	40b005b3          	neg	a1,a1
  e8:	b7c1                	j	a8 <__hidden___udivsi3>
  ea:	40b005b3          	neg	a1,a1
  ee:	8286                	mv	t0,ra
  f0:	3f65                	jal	a8 <__hidden___udivsi3>
  f2:	40a00533          	neg	a0,a0
  f6:	8282                	jr	t0

000000f8 <__modsi3>:
  f8:	8286                	mv	t0,ra
  fa:	0005c763          	bltz	a1,108 <__modsi3+0x10>
  fe:	00054963          	bltz	a0,110 <__modsi3+0x18>
 102:	375d                	jal	a8 <__hidden___udivsi3>
 104:	852e                	mv	a0,a1
 106:	8282                	jr	t0
 108:	40b005b3          	neg	a1,a1
 10c:	fe055be3          	bgez	a0,102 <__modsi3+0xa>
 110:	40a00533          	neg	a0,a0
 114:	3f51                	jal	a8 <__hidden___udivsi3>
 116:	40b00533          	neg	a0,a1
 11a:	8282                	jr	t0
	...

0000011e <mini_pad>:
 11e:	1131                	add	sp,sp,-20
 120:	c426                	sw	s1,8(sp)
 122:	c806                	sw	ra,16(sp)
 124:	c622                	sw	s0,12(sp)
 126:	84ae                	mv	s1,a1
 128:	87aa                	mv	a5,a0
 12a:	85b2                	mv	a1,a2
 12c:	4301                	li	t1,0
 12e:	caad                	beqz	a3,1a0 <mini_pad+0x82>
 130:	0096d463          	bge	a3,s1,138 <mini_pad+0x1a>
 134:	84b6                	mv	s1,a3
 136:	4305                	li	t1,1
 138:	40968433          	sub	s0,a3,s1
 13c:	00045363          	bgez	s0,142 <mini_pad+0x24>
 140:	4401                	li	s0,0
 142:	8622                	mv	a2,s0
 144:	853a                	mv	a0,a4
 146:	c23e                	sw	a5,4(sp)
 148:	c01a                	sw	t1,0(sp)
 14a:	21e9                	jal	614 <memset>
 14c:	4302                	lw	t1,0(sp)
 14e:	4792                	lw	a5,4(sp)
 150:	872a                	mv	a4,a0
 152:	008506b3          	add	a3,a0,s0
 156:	4601                	li	a2,0
 158:	40c485b3          	sub	a1,s1,a2
 15c:	04b04463          	bgtz	a1,1a4 <mini_pad+0x86>
 160:	0004d363          	bgez	s1,166 <mini_pad+0x48>
 164:	4481                	li	s1,0
 166:	009685b3          	add	a1,a3,s1
 16a:	40e58533          	sub	a0,a1,a4
 16e:	02030463          	beqz	t1,196 <mini_pad+0x78>
 172:	02b77263          	bgeu	a4,a1,196 <mini_pad+0x78>
 176:	02a00793          	li	a5,42
 17a:	fef58fa3          	sb	a5,-1(a1)
 17e:	fff58693          	add	a3,a1,-1
 182:	00d77a63          	bgeu	a4,a3,196 <mini_pad+0x78>
 186:	fef58f23          	sb	a5,-2(a1)
 18a:	ffe58693          	add	a3,a1,-2
 18e:	00d77463          	bgeu	a4,a3,196 <mini_pad+0x78>
 192:	fef58ea3          	sb	a5,-3(a1)
 196:	40c2                	lw	ra,16(sp)
 198:	4432                	lw	s0,12(sp)
 19a:	44a2                	lw	s1,8(sp)
 19c:	0151                	add	sp,sp,20
 19e:	8082                	ret
 1a0:	86a6                	mv	a3,s1
 1a2:	bf59                	j	138 <mini_pad+0x1a>
 1a4:	00c785b3          	add	a1,a5,a2
 1a8:	0005c503          	lbu	a0,0(a1)
 1ac:	00c685b3          	add	a1,a3,a2
 1b0:	0605                	add	a2,a2,1
 1b2:	00a58023          	sb	a0,0(a1)
 1b6:	b74d                	j	158 <mini_pad+0x3a>

000001b8 <mini_itoa.part.0>:
 1b8:	1101                	add	sp,sp,-32
 1ba:	ce06                	sw	ra,28(sp)
 1bc:	cc22                	sw	s0,24(sp)
 1be:	ca26                	sw	s1,20(sp)
 1c0:	c002                	sw	zero,0(sp)
 1c2:	832a                	mv	t1,a0
 1c4:	00055763          	bgez	a0,1d2 <mini_itoa.part.0+0x1a>
 1c8:	e689                	bnez	a3,1d2 <mini_itoa.part.0+0x1a>
 1ca:	4785                	li	a5,1
 1cc:	40a00333          	neg	t1,a0
 1d0:	c03e                	sw	a5,0(sp)
 1d2:	06100413          	li	s0,97
 1d6:	c219                	beqz	a2,1dc <mini_itoa.part.0+0x24>
 1d8:	04100413          	li	s0,65
 1dc:	84ba                	mv	s1,a4
 1de:	1459                	add	s0,s0,-10
 1e0:	851a                	mv	a0,t1
 1e2:	c83a                	sw	a4,16(sp)
 1e4:	c21a                	sw	t1,4(sp)
 1e6:	c62e                	sw	a1,12(sp)
 1e8:	c41a                	sw	t1,8(sp)
 1ea:	35ed                	jal	d4 <__umodsi3>
 1ec:	47a5                	li	a5,9
 1ee:	4322                	lw	t1,8(sp)
 1f0:	45b2                	lw	a1,12(sp)
 1f2:	4742                	lw	a4,16(sp)
 1f4:	0ff57693          	zext.b	a3,a0
 1f8:	06a7e163          	bltu	a5,a0,25a <mini_itoa.part.0+0xa2>
 1fc:	03068693          	add	a3,a3,48
 200:	0ff6f693          	zext.b	a3,a3
 204:	00148793          	add	a5,s1,1
 208:	00d48023          	sb	a3,0(s1)
 20c:	851a                	mv	a0,t1
 20e:	c83a                	sw	a4,16(sp)
 210:	c63e                	sw	a5,12(sp)
 212:	c42e                	sw	a1,8(sp)
 214:	3d51                	jal	a8 <__hidden___udivsi3>
 216:	4692                	lw	a3,4(sp)
 218:	45a2                	lw	a1,8(sp)
 21a:	47b2                	lw	a5,12(sp)
 21c:	4742                	lw	a4,16(sp)
 21e:	832a                	mv	t1,a0
 220:	02b6fb63          	bgeu	a3,a1,256 <mini_itoa.part.0+0x9e>
 224:	4682                	lw	a3,0(sp)
 226:	c699                	beqz	a3,234 <mini_itoa.part.0+0x7c>
 228:	02d00693          	li	a3,45
 22c:	00d78023          	sb	a3,0(a5)
 230:	00248793          	add	a5,s1,2
 234:	40e78533          	sub	a0,a5,a4
 238:	01f55693          	srl	a3,a0,0x1f
 23c:	96aa                	add	a3,a3,a0
 23e:	00078023          	sb	zero,0(a5)
 242:	8685                	sra	a3,a3,0x1
 244:	4601                	li	a2,0
 246:	17fd                	add	a5,a5,-1
 248:	00d64b63          	blt	a2,a3,25e <mini_itoa.part.0+0xa6>
 24c:	40f2                	lw	ra,28(sp)
 24e:	4462                	lw	s0,24(sp)
 250:	44d2                	lw	s1,20(sp)
 252:	6105                	add	sp,sp,32
 254:	8082                	ret
 256:	84be                	mv	s1,a5
 258:	b761                	j	1e0 <mini_itoa.part.0+0x28>
 25a:	96a2                	add	a3,a3,s0
 25c:	b755                	j	200 <mini_itoa.part.0+0x48>
 25e:	00c705b3          	add	a1,a4,a2
 262:	0007c283          	lbu	t0,0(a5)
 266:	0005c303          	lbu	t1,0(a1)
 26a:	0605                	add	a2,a2,1
 26c:	00558023          	sb	t0,0(a1)
 270:	00678023          	sb	t1,0(a5)
 274:	bfc9                	j	246 <mini_itoa.part.0+0x8e>

00000276 <internal_handle_input.constprop.0>:
 276:	e0000737          	lui	a4,0xe0000
 27a:	0f470793          	add	a5,a4,244 # e00000f4 <__global_pointer$+0xbffff8f4>
 27e:	439c                	lw	a5,0(a5)
 280:	03f7f793          	and	a5,a5,63
 284:	17f1                	add	a5,a5,-4
 286:	00f05f63          	blez	a5,2a4 <internal_handle_input.constprop.0+0x2e>
uint32_t count;

int last = 0;
void handle_debug_input( int numbytes, uint8_t * data )
{
	last = data[0];
 28a:	0f574683          	lbu	a3,245(a4)
 28e:	20000737          	lui	a4,0x20000
 292:	00d72023          	sw	a3,0(a4) # 20000000 <last>
	count += numbytes;
 296:	200006b7          	lui	a3,0x20000
 29a:	0046a703          	lw	a4,4(a3) # 20000004 <count>
 29e:	97ba                	add	a5,a5,a4
 2a0:	00f6a223          	sw	a5,4(a3)
	int bytes = (dmd0 & 0x3f) - 4;
	if( bytes > 0 )
	{
		handle_debug_input( bytes, ((uint8_t*)dmdata0) + 1 );
	}
}
 2a4:	8082                	ret

000002a6 <_write.constprop.0>:
 2a6:	1111                	add	sp,sp,-28
 2a8:	ca22                	sw	s0,20(sp)
 2aa:	cc06                	sw	ra,24(sp)
 2ac:	c826                	sw	s1,16(sp)
 2ae:	c02a                	sw	a0,0(sp)
 2b0:	c602                	sw	zero,12(sp)
 2b2:	842e                	mv	s0,a1
 2b4:	e1e9                	bnez	a1,376 <_write.constprop.0+0xd0>
 2b6:	e00007b7          	lui	a5,0xe0000
 2ba:	0f47a783          	lw	a5,244(a5) # e00000f4 <__global_pointer$+0xbffff8f4>
 2be:	c789                	beqz	a5,2c8 <_write.constprop.0+0x22>
 2c0:	0807f793          	and	a5,a5,128
 2c4:	e391                	bnez	a5,2c8 <_write.constprop.0+0x22>
 2c6:	3f45                	jal	276 <internal_handle_input.constprop.0>
 2c8:	40e2                	lw	ra,24(sp)
 2ca:	8522                	mv	a0,s0
 2cc:	4452                	lw	s0,20(sp)
 2ce:	44c2                	lw	s1,16(sp)
 2d0:	0171                	add	sp,sp,28
 2d2:	8082                	ret
 2d4:	409405b3          	sub	a1,s0,s1
 2d8:	469d                	li	a3,7
 2da:	872e                	mv	a4,a1
 2dc:	00b6d363          	bge	a3,a1,2e2 <_write.constprop.0+0x3c>
 2e0:	471d                	li	a4,7
 2e2:	800006b7          	lui	a3,0x80000
 2e6:	0685                	add	a3,a3,1 # 80000001 <__global_pointer$+0x5ffff801>
 2e8:	e0000337          	lui	t1,0xe0000
 2ec:	0f430613          	add	a2,t1,244 # e00000f4 <__global_pointer$+0xbffff8f4>
 2f0:	4210                	lw	a2,0(a2)
 2f2:	08067513          	and	a0,a2,128
 2f6:	ed25                	bnez	a0,36e <_write.constprop.0+0xc8>
 2f8:	c611                	beqz	a2,304 <_write.constprop.0+0x5e>
 2fa:	c43a                	sw	a4,8(sp)
 2fc:	c22e                	sw	a1,4(sp)
 2fe:	3fa5                	jal	276 <internal_handle_input.constprop.0>
 300:	4722                	lw	a4,8(sp)
 302:	4592                	lw	a1,4(sp)
 304:	4689                	li	a3,2
 306:	4601                	li	a2,0
 308:	00b6d463          	bge	a3,a1,310 <_write.constprop.0+0x6a>
 30c:	ffd70613          	add	a2,a4,-3
 310:	4782                	lw	a5,0(sp)
 312:	00348593          	add	a1,s1,3
 316:	0068                	add	a0,sp,12
 318:	95be                	add	a1,a1,a5
 31a:	c23a                	sw	a4,4(sp)
 31c:	2629                	jal	626 <memcpy>
 31e:	4632                	lw	a2,12(sp)
 320:	4782                	lw	a5,0(sp)
 322:	4712                	lw	a4,4(sp)
 324:	e00006b7          	lui	a3,0xe0000
 328:	0ec6ac23          	sw	a2,248(a3) # e00000f8 <__global_pointer$+0xbffff8f8>
 32c:	458d                	li	a1,3
 32e:	00978633          	add	a2,a5,s1
 332:	4681                	li	a3,0
 334:	00064303          	lbu	t1,0(a2)
 338:	0685                	add	a3,a3,1
 33a:	00c68793          	add	a5,a3,12
 33e:	00278533          	add	a0,a5,sp
 342:	00650023          	sb	t1,0(a0)
 346:	0605                	add	a2,a2,1
 348:	00d70463          	beq	a4,a3,350 <_write.constprop.0+0xaa>
 34c:	feb694e3          	bne	a3,a1,334 <_write.constprop.0+0x8e>
 350:	00470693          	add	a3,a4,4
 354:	f806e693          	or	a3,a3,-128
 358:	00d10623          	sb	a3,12(sp)
 35c:	4632                	lw	a2,12(sp)
 35e:	e00006b7          	lui	a3,0xe0000
 362:	94ba                	add	s1,s1,a4
 364:	0ec6aa23          	sw	a2,244(a3) # e00000f4 <__global_pointer$+0xbffff8f4>
 368:	f684c6e3          	blt	s1,s0,2d4 <_write.constprop.0+0x2e>
 36c:	bfb1                	j	2c8 <_write.constprop.0+0x22>
 36e:	16fd                	add	a3,a3,-1
 370:	feb5                	bnez	a3,2ec <_write.constprop.0+0x46>
 372:	8426                	mv	s0,s1
 374:	bf91                	j	2c8 <_write.constprop.0+0x22>
 376:	4481                	li	s1,0
 378:	bfc5                	j	368 <_write.constprop.0+0xc2>

0000037a <__puts_uart>:
 37a:	1151                	add	sp,sp,-12
 37c:	c222                	sw	s0,4(sp)
 37e:	c406                	sw	ra,8(sp)
 380:	842e                	mv	s0,a1
 382:	3715                	jal	2a6 <_write.constprop.0>
 384:	40a2                	lw	ra,8(sp)
 386:	8522                	mv	a0,s0
 388:	4412                	lw	s0,4(sp)
 38a:	0131                	add	sp,sp,12
 38c:	8082                	ret

0000038e <handle_reset>:
 38e:	20000197          	auipc	gp,0x20000
 392:	47218193          	add	gp,gp,1138 # 20000800 <__global_pointer$>
 396:	00018113          	mv	sp,gp
 39a:	08000513          	li	a0,128
 39e:	30051073          	csrw	mstatus,a0
 3a2:	468d                	li	a3,3
 3a4:	00000517          	auipc	a0,0x0
 3a8:	c5c50513          	add	a0,a0,-932 # 0 <InterruptVector>
 3ac:	8d55                	or	a0,a0,a3
 3ae:	30551073          	csrw	mtvec,a0
 3b2:	20000517          	auipc	a0,0x20000
 3b6:	c4e50513          	add	a0,a0,-946 # 20000000 <last>
 3ba:	80818593          	add	a1,gp,-2040 # 20000008 <_ebss>
 3be:	4601                	li	a2,0
 3c0:	00b55663          	bge	a0,a1,3cc <handle_reset+0x3e>
 3c4:	c110                	sw	a2,0(a0)
 3c6:	0511                	add	a0,a0,4
 3c8:	feb54ee3          	blt	a0,a1,3c4 <handle_reset+0x36>
 3cc:	7a000513          	li	a0,1952
 3d0:	20000597          	auipc	a1,0x20000
 3d4:	c3058593          	add	a1,a1,-976 # 20000000 <last>
 3d8:	20000617          	auipc	a2,0x20000
 3dc:	c2860613          	add	a2,a2,-984 # 20000000 <last>
 3e0:	00c58863          	beq	a1,a2,3f0 <handle_reset+0x62>
 3e4:	4114                	lw	a3,0(a0)
 3e6:	c194                	sw	a3,0(a1)
 3e8:	0511                	add	a0,a0,4
 3ea:	0591                	add	a1,a1,4
 3ec:	fec59ae3          	bne	a1,a2,3e0 <handle_reset+0x52>
 3f0:	e000f7b7          	lui	a5,0xe000f
 3f4:	4705                	li	a4,1
 3f6:	c398                	sw	a4,0(a5)
 3f8:	6a000793          	li	a5,1696
 3fc:	34179073          	csrw	mepc,a5
 400:	30200073          	mret

00000404 <ADC1_IRQHandler>:
 404:	a001                	j	404 <ADC1_IRQHandler>

00000406 <NMI_Handler>:
 406:	40021737          	lui	a4,0x40021
 40a:	471c                	lw	a5,8(a4)
 40c:	008006b7          	lui	a3,0x800
 410:	8fd5                	or	a5,a5,a3
 412:	c71c                	sw	a5,8(a4)

00000414 <strlen>:
 414:	87aa                	mv	a5,a0
 416:	0007c703          	lbu	a4,0(a5) # e000f000 <__global_pointer$+0xc000e800>
 41a:	e701                	bnez	a4,422 <strlen+0xe>
 41c:	40a78533          	sub	a0,a5,a0
 420:	8082                	ret
 422:	0785                	add	a5,a5,1
 424:	bfcd                	j	416 <strlen+0x2>

00000426 <mini_vpprintf>:
 426:	fa410113          	add	sp,sp,-92
 42a:	caa2                	sw	s0,84(sp)
 42c:	c8a6                	sw	s1,80(sp)
 42e:	cc86                	sw	ra,88(sp)
 430:	c22a                	sw	a0,4(sp)
 432:	c42e                	sw	a1,8(sp)
 434:	8432                	mv	s0,a2
 436:	84b6                	mv	s1,a3
 438:	ca02                	sw	zero,20(sp)
 43a:	00044783          	lbu	a5,0(s0)
 43e:	00140693          	add	a3,s0,1
 442:	00f10fa3          	sb	a5,31(sp)
 446:	eb81                	bnez	a5,456 <mini_vpprintf+0x30>
 448:	40e6                	lw	ra,88(sp)
 44a:	4456                	lw	s0,84(sp)
 44c:	4552                	lw	a0,20(sp)
 44e:	44c6                	lw	s1,80(sp)
 450:	05c10113          	add	sp,sp,92
 454:	8082                	ret
 456:	c636                	sw	a3,12(sp)
 458:	02500713          	li	a4,37
 45c:	02e78063          	beq	a5,a4,47c <mini_vpprintf+0x56>
 460:	4622                	lw	a2,8(sp)
 462:	4792                	lw	a5,4(sp)
 464:	4585                	li	a1,1
 466:	01f10513          	add	a0,sp,31
 46a:	9782                	jalr	a5
 46c:	46b2                	lw	a3,12(sp)
 46e:	c026                	sw	s1,0(sp)
 470:	8436                	mv	s0,a3
 472:	47d2                	lw	a5,20(sp)
 474:	4482                	lw	s1,0(sp)
 476:	97aa                	add	a5,a5,a0
 478:	ca3e                	sw	a5,20(sp)
 47a:	b7c1                	j	43a <mini_vpprintf+0x14>
 47c:	00144703          	lbu	a4,1(s0)
 480:	03000613          	li	a2,48
 484:	03000693          	li	a3,48
 488:	00e10fa3          	sb	a4,31(sp)
 48c:	c632                	sw	a2,12(sp)
 48e:	00240793          	add	a5,s0,2
 492:	06d71563          	bne	a4,a3,4fc <mini_vpprintf+0xd6>
 496:	843e                	mv	s0,a5
 498:	4681                	li	a3,0
 49a:	4781                	li	a5,0
 49c:	45a5                	li	a1,9
 49e:	a811                	j	4b2 <mini_vpprintf+0x8c>
 4a0:	00279713          	sll	a4,a5,0x2
 4a4:	0405                	add	s0,s0,1
 4a6:	97ba                	add	a5,a5,a4
 4a8:	fff44703          	lbu	a4,-1(s0)
 4ac:	0786                	sll	a5,a5,0x1
 4ae:	97b2                	add	a5,a5,a2
 4b0:	4685                	li	a3,1
 4b2:	fd070613          	add	a2,a4,-48 # 40020fd0 <__global_pointer$+0x200207d0>
 4b6:	0ff67513          	zext.b	a0,a2
 4ba:	fea5f3e3          	bgeu	a1,a0,4a0 <mini_vpprintf+0x7a>
 4be:	c299                	beqz	a3,4c4 <mini_vpprintf+0x9e>
 4c0:	00e10fa3          	sb	a4,31(sp)
 4c4:	c83e                	sw	a5,16(sp)
 4c6:	46e1                	li	a3,24
 4c8:	00f6d363          	bge	a3,a5,4ce <mini_vpprintf+0xa8>
 4cc:	c836                	sw	a3,16(sp)
 4ce:	06c00693          	li	a3,108
 4d2:	02d71963          	bne	a4,a3,504 <mini_vpprintf+0xde>
 4d6:	00044603          	lbu	a2,0(s0)
 4da:	06400693          	li	a3,100
 4de:	0405                	add	s0,s0,1
 4e0:	00c10fa3          	sb	a2,31(sp)
 4e4:	4705                	li	a4,1
 4e6:	04d61b63          	bne	a2,a3,53c <mini_vpprintf+0x116>
 4ea:	00448793          	add	a5,s1,4
 4ee:	c03e                	sw	a5,0(sp)
 4f0:	f8b60613          	add	a2,a2,-117
 4f4:	1018                	add	a4,sp,32
 4f6:	00163693          	seqz	a3,a2
 4fa:	a00d                	j	51c <mini_vpprintf+0xf6>
 4fc:	02000693          	li	a3,32
 500:	c636                	sw	a3,12(sp)
 502:	bf51                	j	496 <mini_vpprintf+0x70>
 504:	01f14603          	lbu	a2,31(sp)
 508:	06400693          	li	a3,100
 50c:	4701                	li	a4,0
 50e:	02d61763          	bne	a2,a3,53c <mini_vpprintf+0x116>
 512:	00448793          	add	a5,s1,4
 516:	c03e                	sw	a5,0(sp)
 518:	1018                	add	a4,sp,32
 51a:	4681                	li	a3,0
 51c:	4088                	lw	a0,0(s1)
 51e:	4601                	li	a2,0
 520:	45a9                	li	a1,10
 522:	3959                	jal	1b8 <mini_itoa.part.0>
 524:	46c2                	lw	a3,16(sp)
 526:	4632                	lw	a2,12(sp)
 528:	1838                	add	a4,sp,56
 52a:	85aa                	mv	a1,a0
 52c:	1008                	add	a0,sp,32
 52e:	3ec5                	jal	11e <mini_pad>
 530:	4622                	lw	a2,8(sp)
 532:	85aa                	mv	a1,a0
 534:	1828                	add	a0,sp,56
 536:	4792                	lw	a5,4(sp)
 538:	9782                	jalr	a5
 53a:	bf25                	j	472 <mini_vpprintf+0x4c>
 53c:	06400693          	li	a3,100
 540:	02c6e463          	bltu	a3,a2,568 <mini_vpprintf+0x142>
 544:	05800793          	li	a5,88
 548:	06f60263          	beq	a2,a5,5ac <mini_vpprintf+0x186>
 54c:	06300793          	li	a5,99
 550:	06f60f63          	beq	a2,a5,5ce <mini_vpprintf+0x1a8>
 554:	ee060ae3          	beqz	a2,448 <mini_vpprintf+0x22>
 558:	4622                	lw	a2,8(sp)
 55a:	4792                	lw	a5,4(sp)
 55c:	4585                	li	a1,1
 55e:	01f10513          	add	a0,sp,31
 562:	9782                	jalr	a5
 564:	c026                	sw	s1,0(sp)
 566:	b731                	j	472 <mini_vpprintf+0x4c>
 568:	07500693          	li	a3,117
 56c:	02d60963          	beq	a2,a3,59e <mini_vpprintf+0x178>
 570:	07800713          	li	a4,120
 574:	02e60c63          	beq	a2,a4,5ac <mini_vpprintf+0x186>
 578:	07300713          	li	a4,115
 57c:	fce61ee3          	bne	a2,a4,558 <mini_vpprintf+0x132>
 580:	cc3e                	sw	a5,24(sp)
 582:	00448793          	add	a5,s1,4
 586:	4084                	lw	s1,0(s1)
 588:	c03e                	sw	a5,0(sp)
 58a:	8526                	mv	a0,s1
 58c:	3561                	jal	414 <strlen>
 58e:	47e2                	lw	a5,24(sp)
 590:	85aa                	mv	a1,a0
 592:	cbb9                	beqz	a5,5e8 <mini_vpprintf+0x1c2>
 594:	46c2                	lw	a3,16(sp)
 596:	4632                	lw	a2,12(sp)
 598:	1838                	add	a4,sp,56
 59a:	8526                	mv	a0,s1
 59c:	bf49                	j	52e <mini_vpprintf+0x108>
 59e:	00448793          	add	a5,s1,4
 5a2:	c03e                	sw	a5,0(sp)
 5a4:	f731                	bnez	a4,4f0 <mini_vpprintf+0xca>
 5a6:	1018                	add	a4,sp,32
 5a8:	4685                	li	a3,1
 5aa:	bf8d                	j	51c <mini_vpprintf+0xf6>
 5ac:	4088                	lw	a0,0(s1)
 5ae:	fa860613          	add	a2,a2,-88
 5b2:	00448793          	add	a5,s1,4
 5b6:	1018                	add	a4,sp,32
 5b8:	4685                	li	a3,1
 5ba:	00163613          	seqz	a2,a2
 5be:	45c1                	li	a1,16
 5c0:	c03e                	sw	a5,0(sp)
 5c2:	3edd                	jal	1b8 <mini_itoa.part.0>
 5c4:	46c2                	lw	a3,16(sp)
 5c6:	4632                	lw	a2,12(sp)
 5c8:	85aa                	mv	a1,a0
 5ca:	1838                	add	a4,sp,56
 5cc:	b785                	j	52c <mini_vpprintf+0x106>
 5ce:	00448793          	add	a5,s1,4
 5d2:	c03e                	sw	a5,0(sp)
 5d4:	409c                	lw	a5,0(s1)
 5d6:	46c2                	lw	a3,16(sp)
 5d8:	4632                	lw	a2,12(sp)
 5da:	00f10fa3          	sb	a5,31(sp)
 5de:	1838                	add	a4,sp,56
 5e0:	4585                	li	a1,1
 5e2:	01f10513          	add	a0,sp,31
 5e6:	b7a1                	j	52e <mini_vpprintf+0x108>
 5e8:	4622                	lw	a2,8(sp)
 5ea:	8526                	mv	a0,s1
 5ec:	b7a9                	j	536 <mini_vpprintf+0x110>

000005ee <printf>:
 5ee:	fdc10113          	add	sp,sp,-36
 5f2:	ca32                	sw	a2,20(sp)
 5f4:	862a                	mv	a2,a0
 5f6:	c82e                	sw	a1,16(sp)
 5f8:	cc36                	sw	a3,24(sp)
 5fa:	4581                	li	a1,0
 5fc:	0814                	add	a3,sp,16
 5fe:	37a00513          	li	a0,890
 602:	c606                	sw	ra,12(sp)
 604:	ce3a                	sw	a4,28(sp)
 606:	d03e                	sw	a5,32(sp)
 608:	c036                	sw	a3,0(sp)
 60a:	3d31                	jal	426 <mini_vpprintf>
 60c:	40b2                	lw	ra,12(sp)
 60e:	02410113          	add	sp,sp,36
 612:	8082                	ret

00000614 <memset>:
 614:	962a                	add	a2,a2,a0
 616:	87aa                	mv	a5,a0
 618:	00c79363          	bne	a5,a2,61e <memset+0xa>
 61c:	8082                	ret
 61e:	00b78023          	sb	a1,0(a5)
 622:	0785                	add	a5,a5,1
 624:	bfd5                	j	618 <memset+0x4>

00000626 <memcpy>:
 626:	4781                	li	a5,0
 628:	00f61363          	bne	a2,a5,62e <memcpy+0x8>
 62c:	8082                	ret
 62e:	00f58733          	add	a4,a1,a5
 632:	00074683          	lbu	a3,0(a4)
 636:	00f50733          	add	a4,a0,a5
 63a:	0785                	add	a5,a5,1
 63c:	00d70023          	sb	a3,0(a4)
 640:	b7e5                	j	628 <memcpy+0x2>

00000642 <SystemInit>:
 642:	400227b7          	lui	a5,0x40022
 646:	4705                	li	a4,1
 648:	c398                	sw	a4,0(a5)
 64a:	400217b7          	lui	a5,0x40021
 64e:	01080737          	lui	a4,0x1080
 652:	0007a223          	sw	zero,4(a5) # 40021004 <__global_pointer$+0x20020804>
 656:	08170713          	add	a4,a4,129 # 1080081 <debugprintfdemo.c.f00b967f+0x107e2f5>
 65a:	c398                	sw	a4,0(a5)
 65c:	009f0737          	lui	a4,0x9f0
 660:	c798                	sw	a4,8(a5)
 662:	020006b7          	lui	a3,0x2000
 666:	40021737          	lui	a4,0x40021
 66a:	431c                	lw	a5,0(a4)
 66c:	8ff5                	and	a5,a5,a3
 66e:	dff5                	beqz	a5,66a <SystemInit+0x28>
 670:	435c                	lw	a5,4(a4)
 672:	400216b7          	lui	a3,0x40021
 676:	9bf1                	and	a5,a5,-4
 678:	0027e793          	or	a5,a5,2
 67c:	c35c                	sw	a5,4(a4)
 67e:	4721                	li	a4,8
 680:	42dc                	lw	a5,4(a3)
 682:	8bb1                	and	a5,a5,12
 684:	fee79ee3          	bne	a5,a4,680 <SystemInit+0x3e>
 688:	e00007b7          	lui	a5,0xe0000
 68c:	0f878713          	add	a4,a5,248 # e00000f8 <__global_pointer$+0xbffff8f8>
 690:	00072023          	sw	zero,0(a4) # 40021000 <__global_pointer$+0x20020800>
 694:	0f478793          	add	a5,a5,244
 698:	08000713          	li	a4,128
 69c:	c398                	sw	a4,0(a5)
 69e:	8082                	ret

000006a0 <main>:
}

int main()
{
 6a0:	1141                	add	sp,sp,-16
 6a2:	c226                	sw	s1,4(sp)
 6a4:	c606                	sw	ra,12(sp)
 6a6:	c422                	sw	s0,8(sp)
	SystemInit();
 6a8:	3f69                	jal	642 <SystemInit>

	// Enable GPIOs
	RCC->APB2PCENR |= RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOC;
 6aa:	40021737          	lui	a4,0x40021
 6ae:	4f1c                	lw	a5,24(a4)
#endif

void DelaySysTick( uint32_t n )
{
#ifdef CH32V003
	uint32_t targend = SysTick->CNT + n;
 6b0:	000924b7          	lui	s1,0x92
 6b4:	0307e793          	or	a5,a5,48
 6b8:	cf1c                	sw	a5,24(a4)

	// GPIO D0 Push-Pull
	GPIOD->CFGLR &= ~(0xf<<(4*0));
 6ba:	400117b7          	lui	a5,0x40011
 6be:	40078713          	add	a4,a5,1024 # 40011400 <__global_pointer$+0x20010c00>
 6c2:	4314                	lw	a3,0(a4)
 6c4:	9ac1                	and	a3,a3,-16
 6c6:	c314                	sw	a3,0(a4)
	GPIOD->CFGLR |= (GPIO_Speed_10MHz | GPIO_CNF_OUT_PP)<<(4*0);
 6c8:	4314                	lw	a3,0(a4)
 6ca:	0016e693          	or	a3,a3,1
 6ce:	c314                	sw	a3,0(a4)

	// GPIO C0 Push-Pull
	GPIOC->CFGLR &= ~(0xf<<(4*0));
 6d0:	4398                	lw	a4,0(a5)
 6d2:	9b41                	and	a4,a4,-16
 6d4:	c398                	sw	a4,0(a5)
	GPIOC->CFGLR |= (GPIO_Speed_10MHz | GPIO_CNF_OUT_PP)<<(4*0);
 6d6:	4398                	lw	a4,0(a5)
 6d8:	00176713          	or	a4,a4,1
 6dc:	c398                	sw	a4,0(a5)
 6de:	7c048793          	add	a5,s1,1984 # 927c0 <debugprintfdemo.c.f00b967f+0x90a34>
 6e2:	c03e                	sw	a5,0(sp)

	while(1)
	{
		GPIOD->BSHR = 1;	 // Turn on GPIOs
 6e4:	400117b7          	lui	a5,0x40011
 6e8:	40078693          	add	a3,a5,1024 # 40011400 <__global_pointer$+0x20010c00>
 6ec:	4705                	li	a4,1
 6ee:	ca98                	sw	a4,16(a3)
		GPIOC->BSHR = 1;
 6f0:	cb98                	sw	a4,16(a5)
		printf( "+%lu\n", count++ );
 6f2:	200004b7          	lui	s1,0x20000
 6f6:	0044a583          	lw	a1,4(s1) # 20000004 <count>
 6fa:	4501                	li	a0,0
 6fc:	78c00513          	li	a0,1932
 700:	00158713          	add	a4,a1,1
 704:	00e4a223          	sw	a4,4(s1)
 708:	35dd                	jal	5ee <printf>
 70a:	e000f737          	lui	a4,0xe000f
 70e:	4714                	lw	a3,8(a4)
 710:	4782                	lw	a5,0(sp)
	while( ((int32_t)( SysTick->CNT - targend )) < 0 );
 712:	e000f637          	lui	a2,0xe000f
	uint32_t targend = SysTick->CNT + n;
 716:	96be                	add	a3,a3,a5
	while( ((int32_t)( SysTick->CNT - targend )) < 0 );
 718:	4618                	lw	a4,8(a2)
 71a:	8f15                	sub	a4,a4,a3
 71c:	fe074ee3          	bltz	a4,718 <main+0x78>
 720:	6409                	lui	s0,0x2
 722:	71040413          	add	s0,s0,1808 # 2710 <debugprintfdemo.c.f00b967f+0x984>
 	if( ((*dmdata0) & 0x80) == 0 )
 726:	e0000737          	lui	a4,0xe0000
 72a:	0f470713          	add	a4,a4,244 # e00000f4 <__global_pointer$+0xbffff8f4>
 72e:	4314                	lw	a3,0(a4)
 730:	0806f693          	and	a3,a3,128
 734:	ea81                	bnez	a3,744 <main+0xa4>
		internal_handle_input( dmdata0 );
 736:	3681                	jal	276 <internal_handle_input.constprop.0>
		*dmdata0 = 0x00;
 738:	e00007b7          	lui	a5,0xe0000
 73c:	0f478713          	add	a4,a5,244 # e00000f4 <__global_pointer$+0xbffff8f4>
 740:	00072023          	sw	zero,0(a4)
		Delay_Ms(100);
		int i;
		for( i = 0; i < 10000; i++ )
 744:	147d                	add	s0,s0,-1
 746:	f065                	bnez	s0,726 <main+0x86>
			poll_input();
		GPIOD->BSHR = (1<<16); // Turn off GPIODs
 748:	40011737          	lui	a4,0x40011
 74c:	66c1                	lui	a3,0x10
 74e:	40070613          	add	a2,a4,1024 # 40011400 <__global_pointer$+0x20010c00>
 752:	ca14                	sw	a3,16(a2)
		GPIOC->BSHR = (1<<16);
 754:	cb14                	sw	a3,16(a4)
		printf( "-%lu[%c]\n", count++, last );
 756:	0044a583          	lw	a1,4(s1)
 75a:	200007b7          	lui	a5,0x20000
 75e:	0007a603          	lw	a2,0(a5) # 20000000 <last>
 762:	4501                	li	a0,0
 764:	00158713          	add	a4,a1,1
 768:	79400513          	li	a0,1940
 76c:	00e4a223          	sw	a4,4(s1)
 770:	3dbd                	jal	5ee <printf>
	uint32_t targend = SysTick->CNT + n;
 772:	e000f7b7          	lui	a5,0xe000f
 776:	4798                	lw	a4,8(a5)
 778:	4782                	lw	a5,0(sp)
	while( ((int32_t)( SysTick->CNT - targend )) < 0 );
 77a:	e000f6b7          	lui	a3,0xe000f
	uint32_t targend = SysTick->CNT + n;
 77e:	973e                	add	a4,a4,a5
	while( ((int32_t)( SysTick->CNT - targend )) < 0 );
 780:	469c                	lw	a5,8(a3)
 782:	8f99                	sub	a5,a5,a4
 784:	fe07cee3          	bltz	a5,780 <main+0xe0>
 788:	bfb1                	j	6e4 <main+0x44>
 78a:	0000                	unimp
 78c:	756c252b          	.4byte	0x756c252b
 790:	000a                	c.slli	zero,0x2
 792:	0000                	unimp
 794:	252d                	jal	dbe <_data_lma+0x61e>
 796:	756c                	.2byte	0x756c
 798:	5d63255b          	.4byte	0x5d63255b
 79c:	000a                	c.slli	zero,0x2
	...
