LPC11U68 + C rychlost portu
Jaroslav Buchta
jaroslav.buchta na hascomp.cz
Úterý Červenec 26 06:18:42 CEST 2016
Ono je nejlepsi kouknout do assembleru, jak to dela. Bez optimalizace
jsou tam silenosti, kdy se nacitaji stale znovu stejne hodnoty do
registru, adresuje se neprimo i kdyz to jde primo atp., s optimalizaci
jsou tam zas silenosti, ze clovek nepochopi, jak to muze vubec fungovat ;-)
20ns odpovida provedeni zapisu na port v jednom cyklu, to je IMHO
prekvapive dobry vysledek.
Dne 26.07.2016 v 3:03 Pavel Hudecek napsal(a):
> Teď jsem dal "Optimize most" (před tím bylo none).
> Výsledkem je cca 20/20 ns nezávisle na deklaraci, s nepravidelnými
> prodlouženími na 40 ns.
> Frekvence generovaná v "burstu" je průměrně cca 20 MHz.
> Hrany mají asi 3-5 ns, zde se asi osciloskop, nebo sonda dostala na
> hranici možností (ADS1102C + PP510).
> Návrat ve foru se zkrátil na cca 250 ns.
>
> PH
>
> -----Původní zpráva----- From: Pavel Hudecek
> tak jsem trochu optimalizoval komunikaci s displejem a vedlejší výsledky
> jsou tyto, kdyby někoho zajímaly:
>
> Za podmínek LPC11U68 / 48 MHz a program ve stylu:
>
> for (n=0; n<1000; n++) {
> LPC_GPIO->PIN[LED_port] = a; LPC_GPIO->PIN[LED_port] = b;
> LPC_GPIO->PIN[LED_port] = a; LPC_GPIO->PIN[LED_port] = b;
> LPC_GPIO->PIN[LED_port] = a; LPC_GPIO->PIN[LED_port] = b;
> LPC_GPIO->PIN[LED_port] = a; LPC_GPIO->PIN[LED_port] = b;
> LPC_GPIO->PIN[LED_port] = a; LPC_GPIO->PIN[LED_port] = b;
> }
> Přičemž a odpovídá 0 a b odpovídá 1.
> Pro PIN[port] a MPIN[port] jsou a/b typu uint32_t.
> Pro B[port][pin] jsou a/b typu uint8_t.
>
> - Rychlost je stejná pro přístup přes B[port][pin], PIN[port] a
> MPIN[port].
> - Pokud je a/b deklarované s "register", nebo jsou to #define čísel, je
> rychlost:
> 105/125 ns (0 kratší, 1 delší)
> - Pokud je a/b deklarované obyčejně, je rychlost:
> 170/230 ns
> - Prohozením hodnot a/b se prohodí delší/kratší (zkoumáno jen pro
> register).
> Tzn se zdá, že levé příkazy jsou rychlejší, než pravé... WTF?
> - Návrat na začátek těla foru (n je uint32_t): 550 ns
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list