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