stm32 registro trapeni

Miroslav Mraz mrazik na volny.cz
Úterý Duben 11 22:18:54 CEST 2023


Minimálně jsem tím zjistil, že nemá žádný smysl ve smyčce čekat, až se 
bit nastaví. Že to nějak funguje se dá zjistit tak, že stejnou smyčku 
vyčítání registru použiju pro vyčítání HSIRDY
   RCC.CR.B.HSION = 1u;
   for (unsigned n=0; n<mdat; n++) { // tohle funguje
     data [n] = RCC.CR.B.HSIRDY;     // objeví se cca 8 nul, zbytek jednotky
   }
a tím jsem zároveň zjistil, že je v příkladu chyba,  místo
  while (RCC.CR.B.HSIRDY);
má být
  while (RCC.CR.B.HSIRDY == 0u);
ale na výsledku to nic nemění. Těch instrukcí je v cyklu vyčítání 5:
200001fc:	6859      	ldr	r1, [r3, #4] // v r3 je opravdu 0x40005400
200001fe:	f844 1022 	str.w	r1, [r4, r2, lsl #2]
20000202:	3201      	adds	r2, #1
20000204:	2a40      	cmp	r2, #64	; 0x40
20000206:	d1f9      	bne.n	200001fc <main+0x68>

20000208:	be01      	bkpt	0x0001

takže by to mělo být hotové dřív než za 2x PCLK1 + 6x I2CCLK (30.5 
cyklů, tedy cca 30 instrukcí, přesně měřit to nemá cenu). Považoval bych 
za celkem signifikantní, že je to jen lokální echo.

On 11. 04. 23 21:08, Jan Waclawek wrote:
> Takymto testom nie je rozoznatelne, ci sa cita lokalne echo, alebo hardware
> vklada waitstaty pri citani z kernel domeny. To by bolo treba pozriet asm,
> spocitat nejake cykly, blikat tou LEDkou a pozerat na osciloskope... ved
> som povedal, ze to je vela roboty.
> 
> Inak je zopar bitov, ktore sa hardwarom nuluju, ked je PE=0, na tom by
> mozno bolo zaujimave sledovat, co sa udeje po zapise do CR1 ktory vynuluje
> to PE. Aj SDA/SCL by sa mali strojstavovat ked je PE=0, znova v kombinacii
> s tym vystupom, osciloskopom atd...
> 
> Navyse zaujimave v kontexte povodneho problemu je, ci sa TIMING register
> berie do uvahy, ked sa zapise prilis skoro po vynulovani PE (alebo prilis
> neskoro pred jeho nastavenim?) Ale to zase vyzaduje napisat nieco co na tu
> zbernicu naozaj nieco aj posle, a to zase je dost vela roboty.
> 
> wek
> 
> 
> PS.
>>    LedGreen << true;
> Ako ja chapem, ze ste fanusik toho plusplus, ale fakt sa tomu neda odolat?
> :-)

Hele, už je to tak napsané, přepisovat to nebudu, je vidět, že chápete, 
co to dělá, kód to nijak neprodlužuje, takže není důvod.

Mrazík


Další informace o konferenci Hw-list