Organizace Open Container Initiative (OCI) (Wikipedie), projekt nadace Linux Foundation, vydala Runtime Specification 1.3 (pdf), tj. novou verzi specifikace kontejnerového běhového prostředí. Hlavní novinkou je podpora FreeBSD.
Nový open source router Turris Omnia NG je v prodeji. Aktuálně na Allegro, Alternetivo, Discomp, i4wifi a WiFiShop.
Na YouTube a nově také na VHSky byly zveřejněny sestříhané videozáznamy přednášek z letošního OpenAltu.
Jednou za rok otevírá společnost SUSE dveře svých kanceláří široké veřejnosti. Letos je pro vás otevře 26. listopadu v 16 hodin v pražském Karlíně. Vítáni jsou všichni, kdo se chtějí dozvědět více o práci vývojářů, prostředí ve kterém pracují a o místní firemní kultuře. Můžete se těšit na krátké prezentace, které vám přiblíží, na čem inženýři v Praze pracují, jak spolupracují se zákazníky, partnery i studenty, proč mají rádi open source a co
… více »Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za říjen (YouTube).
Jeff Quast otestoval současné emulátory terminálu. Zaměřil se na podporu Unicode a výkon. Vítězným emulátorem terminálu je Ghostty.
Amazon bude poskytovat cloudové služby OpenAI. Cloudová divize Amazon Web Services (AWS) uzavřela s OpenAI víceletou smlouvu za 38 miliard USD (803,1 miliardy Kč), která poskytne majiteli chatovacího robota s umělou inteligencí (AI) ChatGPT přístup ke stovkám tisíc grafických procesů Nvidia. Ty bude moci využívat k trénování a provozování svých modelů AI. Firmy to oznámily v dnešní tiskové zprávě. Společnost OpenAI také nedávno
… více »Konference Prague PostgreSQL Developer Day 2026 (P2D2) se koná 27. a 28. ledna 2026. Konference je zaměřena na témata zajímavá pro uživatele a vývojáře. Příjem přednášek a workshopů je otevřen do 14. listopadu. Vítáme témata související s PostgreSQL či s databázemi obecně, a mohou být v češtině či angličtině.
Byl vydán Devuan 6 Excalibur. Přehled novinek v poznámkách k vydání. Kódové jméno Excalibur bylo vybráno podle planetky 9499 Excalibur. Devuan (Wikipedie) je fork Debianu bez systemd. Devuan 6 Excalibur vychází z Debianu 13 Trixie. Devuan 7 ponese kódové jméno Freia.
Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu poprvé překročil 3 %, aktuálně 3,05 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 27,18 %. Procesor AMD používá 67,10 % hráčů na Linuxu.
Asi před rokem vyšel na serveru AbcLinuxu článek Jana Martínka o programování jednočipů ATMEL pod linuxem: Jednočipy pod Linuxem.
Tento článek byl jistě pro mnohé začátečníky výborným seznámením s jednočipy. Od doby jeho vzniku se však změnila jedna věc. Jednočip AT90S2313, který je v článku použitý, přestala firma ATMEL vyrábět, a dnes je možné koupit jen jeho náhradu ATtiny2313. Ta má za stejné peníze několik příjemných vylepšení, bohužel však není s AT90S2313 kompatibilní a doposud chybí její podpora v některých vývojářských balíčcích (bohužel právě těch, které užívá zmíněný článek).
V tomto mini-howto bych proto rád popsal, jak nefunkční programy nahradit a jak obejít zmíněnou nekompatibilitu.
V citovaném článku se k nahrávání programu do mikročipu používá
program uisp. Ten si bohužel prozatím s tiny2313 neumí
poradit (nová verze jednočipu by měla používat zápis do flashe po blocích
na rozdíl od zápisu po bytech u AT90S2313). Řešením je použít
program avrdude.
S tímto programem je ovšem spojeno několik malých zádrhelů. Prvním z
nich je, že ve standardní distribuci chybí podpora právě pro to zapojení
programátoru, které používá uisp. Jelikož má ale
avrdude tu sympatickou vlastnost, že se zapojení programátoru
dá nastavit v konfiguračním souboru a není nutné jej znovu kompilovat,
pomoc je snadná: Stačí přidat do souboru /etc/avrdude tyto
řádky:
programmer id = "dapa"; desc = "Direct Parallel... as found in uisp..."; type = par; reset = 16; sck = 1; miso = 11; mosi = 2; ;
Program je potom do jednočipu možné nahrát následujícím příkazem:
avrdude -c dapa -p t2313 -U flash:w:helloworld.hex
Pokud používáme k nahrávání Makefile z článku, stačí nahradit
řádku s příkazem uisp za něco takovéhoto (připomínám, že
kvůli struktuře souboru Makefile musí být prvním znakem na řádce
tabulátor):
load: $(PROJECT).hex avrdude -c dapa -p t2313 -U flash:w:$(PROJECT).hex
Jednou z novinek, která se v ATtiny2313 objevila, je, že jednočip nepotřebuje už nutně externí krystal, neboť má v sobě integrován interní oscilátor. Špatnou zprávou ovšem je, že nám to rozhodí časování sériového portu. Při nastavení od výrobce totiž jednočip tepe pouze rychlostí 4/8Mhz, tj. 500kHz.
Abychom zapnuli externí krystal jako zdroj hodinového taktu, je
potřeba nastavit takzvané pojistky ("fuses"). Pro krystal s taktem
větším, než 8MHz a pro zařízení s pomalým náběhem proudu
by nastavení (s pomocí programu avrdude) vypadalo takto:
avrdude -c dapa -p t2313 -U lfuse:w:0xff:m
Jinými slovy "nižší byte pojistky" (Fuse Low Byte) je nastaven na hodnotu 0xff, což vykoná přesně to, co potřebujeme (standardní hodnota od výrobce je 0x62). POZOR, při každém experimentování s pojistkami se doporučuje důkladně prostudovat příslušný datasheet k jednočipu. Jinak bychom si také mohli vypnout programování přes sériové rozhraní, nebo udělat z pinu RESET další vstupně-výstupní linku. Pak bychom už do jednočipu bez speciálního programátoru žádný program nenahráli. Chtěl bych také upozornit na to, že tyto pojistky jsou u každého typu jednočipu jiné a je vždy třeba nahlédnout do příslušné dokumentace.
Avr-gcc zatím bohužel (pokud vím) nemá pro ATtiny2313 podporu.
Nová verze avr-gcc by měla být nekompatibilní se starší (například
by měla přestat fungovat makra sbi() a cbi()),
takže pokud máte již nějaké projekty pro AVR-ka rozdělané, nemusel
by přechod na novější verzi být tím pravým.
Naštěstí jsou si AT90S2313 a ATtiny2313 do velké míry podobné, takže některé jednodušší programy budou fungovat tak, jak jsou, u složitějších stačí provést drobné změny.
Nejpodstatnější změnou pro čtenáře zmíněného článku je fakt, že ATMEL v novém ATtiny2313 používá modernizované sériové rozhraní (které nazývá jako USART, oproti předchozímu UART). Zde je několik problémů s kompatibilitou.
Zaprvé má USART jinak pojmenované registry, dva má dokonce navíc. To je možné obejít tím, že si registry sami nadefinujeme, například takto:
#define UCSRA USR #define UCSRB UCR #define UBRRL UBRR #define UCSRC _SFR_IO8(0x03) #define UBRRH _SFR_IO8(0x02) // UCSRA #define UPE 2 #define U2X 1 // UCSRB #define MPCM 0 #define UCSZ2 2 // UCSRC #define UMSEL 6 #define UPM1 5 #define UPM0 4 #define USBS 3 #define UCSZ1 2 #define UCSZ0 1 #define UCPOL 0
Co se týče vlastního kódu, zůstává vše při starém, až na způsob, jakým USART inicializujeme. Nový způsob může vypadat asi nějak takto:
sbi(UCSRB, TXEN); // UCR -> UCSRB sbi(UCSRB, RXEN); sbi(UCSRC, UCSZ0); // 8bit přenos... sbi(UCSRC, UCSZ1); UBRRH = 0; // 9600 baudu, POZOR, nejdříve je třeba UBRRL = 59; // nastavit UBRRH, potom teprve UBRRL!
Jinou možností, jak zmíněnou nekompatibilitu obejít, je použít jiný jednočip: Konrétně ATmega8 je jen o málo dražší a přitom má daleko lepší parametry, než ATtiny2313. Je však třeba upozornit na to, že některé problémy nalezneme i u toho jednočipu: konkrétně je také nutno vypnout interní oscilátor a stejně tak používá ATmega8 již zmodernizovanou verzi sériového rozhraní.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
). Ale uisp je naprosto v pohodě...tak nevím.
Našel jsem jeden odkaz k věci: zde .-)
Přeji pěkný den, PIC.
Například na HW.cz linuxové věci moc neřeší.
Když už jsme u toho, docela by se hodily i clanky jak v linuxu ovladat napr. USB či LPT port. Článek na ovládání RS232 jsem tady už našel.
Přeji hodně úspěchů nejen s dalšími články .-)
pozor na makra sbi a cbi, boli odstranene z kniznic a ak mate aktualnu verziu, prekladac sa moze tvarit kyslo :] staci si ich nadefinovat odznova, ved su to len makra...Prosim te a jak mam nadefinovat ty makra?
--target=avr.
Instaloval jsem do adresare $HOME/local/avr. Vse krome avr-libc se nainstalovalo (takže počítám, že dobře). Avr-libc mě při make (i ./domake) vyhodil asi tři errory ohledně assembleru (že už nějaké makro bylo definováno nebo co)...Navíc jsem si při konfiguraci všimnul hlášky, že avr-gcc nepodporuje ATtiny2313 (přitom dám-li avr-gcc --target-help, je tam i MCU attiny2313).
Netuším co s tím. Děsně mě to se.... Takovej mamut jako gcc se zkompiluje a malej šmejd avr-libc dělá problémy. Progoogloval jsem snad celou sobotu a stejně jsem s tim nepohnul.
Mohl by mě někdo pls poradit?
Děkuji a PIC.
Včera jsem "zabil" celý den řešením tohoto problému. Měl jsem jediný problém a to při kompilaci avr-libc-1.2.3. Jak bylo uvedeno v návodu, je potřeba nejprve nainstalovat binutils, pak gcc a nakonec avr-libc.
Bohužel avr-libc šlo zkompilovat jen tehdy, pokud jsem měl nainstalovány binutils-2.15 a gcc-3.4.4. (jinak to při překladu hlásilo chybu). Při ./configure jsem si ale všimnul hlášky, že avr-gcc nepodporuje ATtiny2313 a ještě mnoho dalších (novějších). Zkusil jsem i něco přeložit s parametrem attiny2313, ale linker nenašel soubor myslím, že attn2313.o. Opravdu nikde nebyl.
Nastalo otravné hledání kombinace binutils, gcc a následné kompilace avr-libc (vždy instalace binutils ve verzích 2.15, 2.16 a 2.16.1, poté kompilace gcc ve verzích 3.4.4 a 4.0.0 a nakonec zkouška, zda se avr-libc přeloží). Naštěstí, jsem si pomocí checkinstall vytvořil rpm balíčky, takže testování bylo snadnější, ale gcc jsem musel vždy kompilovat pro momentální verzi nainstalovaných binutils. Snad jsem to popsal, tak, že se v tom nezamotáte .-)
Výsledek byl, jak už jsem zmínil, že avr-libc se podařilo přeložit jen při avr-binutils-2.15 a avr-gcc-3.4.4. Podpora ATtiny2313 nebyla k dispozici. To mě opravdu nepotěšilo
Nakonec jsem se rozhodl, že si nainstaluji nejnovější verzi avr-binutils-2.16.1 (už jsem je měl v rpm z předešlého testování) a avr-gcc-4.0.0. Avr-libc by zkompilovat sice nešlo, ale díky tomu, že jsem si už před tím udělal rpm balíček avr-libc-1.2.3 ("postaveného" na avr-binutils-2.15 a avr-gcc-3.4.4) nebyl žádný problém. Soubory se nahrály kam měli
O podpoře ATtiny2313 se mě mohlo jen zdát, neboť nebyl k dispozici soubor attn2313.o
Tak jsem začal pátrat na internetu po tomhle souboru a našel jsem ho v rpm balíčku pro 64-bit SuSE Linux (alespoň myslím, že to byl 64-bit). Poté další hlednání, jak balíček rozbalit, ale neinstalovat. Nakonec jsem se ke kýženému souboru (vlastně souborům) dostal. Vše co nebylo v mém nainstalovaném avr-libc jsem přidal z tohoto balíčku. Mno a teď to vypadá, že vše funguje jak má. Zdroják si přeložím i pro ATtiny2313, slinkuji (nebo jak to nazvat) a vytvořím intel hex. Ten úspěšně nahraji do čipu a ten pracuje jak ma. Uffff to bylo vyčerpávající....jestli jste došli až sem, tak gratuluji .-)
PIC