ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1458842 Топик полностью
mse homjak (25.08.2024 22:03, просмотров: 100) ответил mse homjak на С одной стороны, как бы, да. Но я смотрю на осциллограмму и вижу, что с нечётных адресов считываются нечётные данные. Но можно и ассемблер, ессно. Убрал волатильности, от них тока гемор. Круто он оптимизировал, есличо! Попробуем добавить волатильности.
Добавил. Ничего сверхъестественного. 
     90a:	60002437          	lui	s0,0x60002
     90e:	03000493          	li	s1,48
	TIM7->CTLR1|=TIM_CEN;
     912:	0017e793          	ori	a5,a5,1
     916:	40f71023          	sh	a5,1024(a4)
			*pointer++=mask+i;
     91a:	03100913          	li	s2,49
     91e:	03200993          	li	s3,50
     922:	03300a13          	li	s4,51
     926:	03400a93          	li	s5,52
     92a:	03500b13          	li	s6,53
     92e:	03600b93          	li	s7,54
		mainWorkModeSelector();
     932:	2abd                	jal	ab0 <mainWorkModeSelector>
			*pointer++=mask+i;
     934:	1c941023          	sh	s1,448(s0) # 600021c0 <_eusrstack+0x3fffa1c0>
     938:	1d241123          	sh	s2,450(s0)
     93c:	1d341223          	sh	s3,452(s0)
     940:	1d441323          	sh	s4,454(s0)
     944:	1d541423          	sh	s5,456(s0)
     948:	1d641523          	sh	s6,458(s0)
     94c:	1d741623          	sh	s7,460(s0)
     950:	03700793          	li	a5,55
     954:	1cf41723          	sh	a5,462(s0)
     958:	03800793          	li	a5,56
     95c:	1cf41823          	sh	a5,464(s0)
     960:	03900793          	li	a5,57
     964:	1cf41923          	sh	a5,466(s0)
		}
		wptr=(uint16_t *)(txtString3+beginOfTxtFieldForWorking);
		for(i=0;i<10;i++)
     968:	46a9                	li	a3,10
			*pointer++=mask+i;
     96a:	4781                	li	a5,0
		{
			buffer[i]=*wptr++;
     96c:	00179713          	slli	a4,a5,0x1
     970:	00e40633          	add	a2,s0,a4
     974:	1c065603          	lhu	a2,448(a2)
     978:	100c                	addi	a1,sp,32
     97a:	972e                	add	a4,a4,a1
     97c:	fec71623          	sh	a2,-20(a4)
     980:	0785                	addi	a5,a5,1
		for(i=0;i<10;i++)
     982:	fed795e3          	bne	a5,a3,96c <main+0x7c>
		}
		KBDservice();
     986:	3e59                	jal	51c <KBDservice>
	{
     988:	b76d                	j	932 <main+0x42>