AVR - vstupy, vystupy

Jan Waclawek konfera na efton.sk
Čtvrtek Červen 16 14:01:49 CEST 2011


Dovod je najma historicky. Povodne udajne boli implementovane ako makra, ktore priamo cez inline assembler pouzili rovno cbi/sbi. Tie su, ako je zname, atomicke. Kedze mnohe zaujimave SFR su mimo dosahu cbi/sbi (nad 0x20 v IO priestore), u nich je potrebne robit in/out, resp. u vyhradne pamatovo mapovanych SFR (nad 0x60 v RAM priestore) ldX/sdX; cim to automaticky nie je atomicke.

Ta zmena bola urobena udajne najma kvoli tomu, aby si to uzivatelia uvedomili. Kedze drviva vacsina uzivatelov avr-gcc z tej skupinky, co vie co je to "atomicke", ani netusi, co je to asembler a ze cbi/sbi mohlo byt inherentne atomicke, je to z dnesneho pohladu nepochopitelna obava :-)))

wek


PS. Samozrejme ze aj ja ich pouzivam ;-) ale nie cez deprecated.h ale mam ich sam explicitne zadefinovane


----- Original Message ---------------

>Libc ma(mala) celkom pouzitelne makra sbi, cbi atd.. V poslednych
>verziach su deprecated, ale nic nebrani ich stale pouzivat, alebo pre
>istotu si ich zadefinovat vo vlastnom headri. Pouzivam ich, kod je s
>nimi prehladny.
>
>http://www.nongnu.org/avr-libc/user-manual/group__deprecated__items.html
>
>V Libc je doporucenie pouzivat makro _BV, aj ked cely zapis na
>nastavenie/znulovanie bitu je dlhsi a vyzaduje si | & ~
>
>http://www.nongnu.org/avr-libc/user-manual/group__avr__sfr.html
>
>Pravdupovediac nerozumiem, preco doporucuju nahradu starych makier..
>


Další informace o konferenci Hw-list