abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 22:44 | IT novinky

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 3
    včera 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | IT novinky

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Nová verze

    Po roce vývoje od vydání verze 1.24.0 byla vydána nová stabilní verze 1.26.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.26.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | Nová verze

    Byla vydána nová verze 6.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.14.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána nová verze 30.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí JavaScriptu, HTML a CSS Electron (Wikipedie, GitHub). Chromium bylo aktualizováno na verzi 124.0.6367.49, V8 na verzi 12.4 a Node.js na verzi 20.11.1. Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.

    Ladislav Hagara | Komentářů: 2
    včera 04:11 | Nová verze

    Byla vydána nová verze 9.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 220 vývojářů. Provedeno bylo více než 2 700 commitů. Přehled úprav a nových vlastností v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    23.4. 23:22 | IT novinky

    Evropský parlament dnes přijal směrnici týkající se tzv. práva spotřebitele na opravu. Poslanci ji podpořili 584 hlasy (3 bylo proti a 14 se zdrželo hlasování). Směrnice ujasňuje povinnosti výrobců opravovat zboží a motivovat spotřebitele k tomu, aby si výrobky nechávali opravit a prodloužili tak jejich životnost.

    Ladislav Hagara | Komentářů: 9
    23.4. 16:11 | Nová verze

    Bylo oznámeno (cs) vydání Fedora Linuxu 40. Přehled novinek ve Fedora Workstation 40 a Fedora KDE 40 na stránkách Fedora Magazinu. Současně byl oznámen notebook Slimbook Fedora 2.

    Ladislav Hagara | Komentářů: 24
    23.4. 13:44 | Upozornění

    ČTK (Česká tisková kancelář) upozorňuje (X), že na jejím zpravodajském webu České noviny byly dnes dopoledne neznámým útočníkem umístěny dva smyšlené texty, které nepocházejí z její produkce. Jde o text s titulkem „BIS zabránila pokusu o atentát na nově zvoleného slovenského prezidenta Petra Pelligriniho“ a o údajné mimořádné prohlášení ministra Lipavského k témuž. Tyto dezinformace byly útočníky zveřejněny i s příslušnými notifikacemi v mobilní aplikaci Českých novin. ČTK ve svém zpravodajském servisu žádnou informaci v tomto znění nevydala.

    Ladislav Hagara | Komentářů: 29
    KDE Plasma 6
     (72%)
     (9%)
     (2%)
     (17%)
    Celkem 726 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Jednočipy pod Linuxem - II

    23. 12. 2003 | Jan Martínek | Hardware | 43361×

    Jestliže se vám pomocí návodu v předchozím dílu podařilo smazat čip a následně z něj přečíst samé jedničky, je na čase pokusit se vecpat do něj něco aspoň trochu smysluplného.

    Programování je obvykle prosyceno zapisováním nějakých záhadných hodnot do nějakých záhadných registrů, které pak způsobují záhadné chování. Těch registrů je několik desítek, v každém registru je spousta bitů, co něco dělají. Je to jediný způsob, jak ovládat periférie čipu (časovače, čítače, řadič přerušení, komparátor, watchdog, sériový port, sleep módy a mnoho dalších). Každý registr se nějak jmenuje a dokonce i každý důležitý bit v něm se nějak jmenuje. Bity se nastavují na jedničky pomocí funkce sbi() - set bit a nulují pomocí funkce cbi() - clear bit. Takže například

    sbi(FOO, BAR);

    nastaví bit BAR v registru FOO. V dalším textu se zmíním pouze o několika základních, díky kterým lze používat sériový port (UART), nastavovat napětí na nějakém pinu (díky tomu lze rozsvítit připojenou LEDku), číst napěťovou úroveň na nějakém pinu (demonstrační příklad hlídá hladinu vody) a nakonfigurovat časovač s děličem frekvence a povolit přerušení (to se hodí při programování hodin reálného času).

    Těch několik málo zde popsaných registrů a bitů v nich vám rozhodně nemůže k další práci stačit, takže vás odkazuji na dokumentaci k čipu, která je zde: DOC0839.PDF

    Vězte, že bez této dokumentace není možné udělat téměř nic pořádně, takže si ji vytiskněte a najděte alespoň tři chyby. Těch 92 stran technického popisu dává tušit, že za svých 70 Kč jste si koupili zajímavý kus křemíku.

    Programovat jednočipy je samozřejmě nejlepší ve strojovém kódu, assembleru, ale to nechme pro ostřílené elektroniky, kteří jsou nuceni nebo chtějí vymáčknout z dané technologie maximum. Psaní zdrojáku v jazyce C vám, myslím, přinese větší radost, i když je pak kód pomalejší a hlavně rozežranější.

    Přejděme rovnou ke konkrétnímu příkladu. Typická ukázka toho, že čip žije, je blikání LEDky, takže zkuste připojit diodku mezi GND a pin č.8 (PD4). Do série s diodou zapojte odpor cca 220 Ohmů. Schéma tedy bude vypadat takto:

    Zdroják, který by měl rozblikat LEDku, je zde:

    #include <avr/io.h>
    
    void delay(unsigned int ms) {
      unsigned int i,j;
      for ( j=0; j<1000; j++)
        for ( i=0; i<ms; i++);
    }
    
    int main (void){
      
      sbi(DDRD,PD4); /*enable port 5 for output*/
    
      while (1) {
    	cbi (PORTD, PD4);
    	delay (500);
    	sbi (PORTD, PD4);
    	delay (500);
      }
      
      return 0;
    }

    Mezi každým rozsvícením a zhasnutím LEDky se provádí půl miliónu prázdných cyklů, jinak by dioda blikala pekelně rychle. Za zmínku stojí příkaz

    sbi(DDRD,PD4);

    který nastaví pin PD4 jako výstupní. Bližší informace viz dokumentace strana 56.

    Pro kompilaci céčkovského zdrojáku a následné přeprogramování čipu se vám může hodit následující Makefile. Makefile zpracovává céčkovský zdroják s názvem helloworld.c, tak si to kdyžtak změňte.

    MCU=at90s2313
    CC=avr-gcc
    OBJCOPY=avr-objcopy
    PROJECT=helloworld
    # optimize for size:
    CFLAGS=-g -mmcu=$(MCU) -Wall -Wstrict-prototypes 
           -Os -mcall-prologues
    #-------------------
    all: $(PROJECT).hex
    #-------------------
    $(PROJECT).hex : $(PROJECT).out 
      $(OBJCOPY) -R .eeprom -O ihex $(PROJECT).out 
      $(PROJECT).hex 
    $(PROJECT).out : $(PROJECT).o 
      $(CC) $(CFLAGS) -o $(PROJECT).out -Wl,-Map,
      $(PROJECT).map $(PROJECT).o 
    $(PROJECT).o : $(PROJECT).c 
      $(CC) $(CFLAGS) -Os -c $(PROJECT).c
    asm : $(PROJECT).c 
      $(CC) $(CFLAGS) -O -S $(PROJECT).c
    # you need to erase first before loading the program.
    # load (program) the software into the eeprom:
    load: $(PROJECT).hex
      uisp -dlpt=/dev/parport0 --erase --upload 
      --verify if=$(PROJECT).hex -dprog=dapa  -v=3 --hash=12
    #-------------------
    clean:
            rm -f *.o *.map *.out *.hex
    #-------------------

    Spustíte li make load, zdrojový kód se zkompiluje, binárka se rovnou naprogramuje do jednočipu a tam se ihned spustí.

    Blikání diodky je sice hezké na koukání, ale moc informací to nenese. Daleko lepší je komunikace po sériovém portu. Obvod AT90S2313 obsahuje pro tyto účely rozhraní RS232 neboli UART. To sestává ze tří vývodů:

    • RxD - příjem (pin č. 2)
    • TxD - vysílání (pin č. 3)
    • GND - zem (pin č. 10)

    Nejjednodušší způsob vzájemného propojení dvou sériových portů je přivedení vysílacího drátu jednoho zařízení na přijímací pin druhého zařízení a naopak. Jde o zapojení křížem, takže RxD povede do TxD a naopak TxD povede do RxD. Zem zůstane zemí.

    Bohužel to u jednočipů není tak jednoduché, protože jejich napěťové úrovně jsou jiné než u klasického sériového portu, který máte v počítači. Jednočipy pracují s úrovněmi 0V a cca 5V (podle napájecího napětí), zatímco standardní sériový port používá úrovně -12V a +12V.

    Východiskem z této zdánlivě beznadějné situace je použití obvodu, který se postará o vzájemný převod napěťových úrovní. Pro tento účel lze použít např. notoricky známý MAX 232 CPE, kterých máte jistě doma po kotníky. Zmíněný obvod dokáže nejen napětí zmenšovat na požadovanou úroveň, ale i zvyšovat. Jestliže neznáte princip nábojové pumpy, považujte to klidně za perpetuum mobile v ceně třiceti korun.

    A jestliže princip nábojové pumpy znáte, tak vás jistě nepřekvapí chomáč pěti elektrolytických kondenzátorů o kapacitě 1μF, kterým je nutno onen zázračný obvod obalit. Pokuste se tedy vše zapojit podle následujícího schématu:

    Nyní je konstelace nakloněna tomu, aby bylo možné sestavit fenomenální projekt "Hello world.", který by měl na obrazovce vykouzlit jakýsi nápis. Jen si teď nemůžu vzpomenout, jaký nápis to má být. Zdrojový kód vypadá následovně:

    #include <avr/io.h>
    
    void print (char *string){
      while (*string) {
      loop_until_bit_is_set(USR, UDRE);
      UDR = *string;
      string++;
      }
      return;
    }
    
    int main(void) {
      /* UART init */
      sbi(UCR, TXEN);
      sbi(UCR, RXEN);
      UBRR = 59; 
      
      while (1) {
        print ("Hello world.\n"); 
      }
      return 0;
    }

    Je načase pohlédnout do očí kruté pravdě - při programování jednočipů v Céčku nemáte k dispozici skoro nic z klasické knihovny libc. Sice existuje knihovna avr-libc, ale pokud můžete, vyhýbejte se tomu, protože paměti v čipu je zoufale málo. Takže i v mém příkladě jsem napsal funkci print(), aby byla malá, jednoduchá, škaredá a hloupá. Ve zmíněné funkci je řádek

    loop_until_bit_is_set(USR, UDRE);

    který zařídí čekání na vyprázdnění vysílacího bufferu, aby bylo možné poslat další byte. Vyprázdnění bufferu se pozná podle bitu UDRE (UART Data Register Empty) v registru USR (UART status register). Datový byte pro vysílání se pak zapíše do registru UDR (UART Data Register).

    Jistě jste si všimli, že piny pro sériový port (RxD a TxD) jsou totéž co IO porty PD0 a PD1. Aby jednočip věděl, jakým způsobem má tyto vývody chápat, musí se mu to říct. Po zapnutí čipu jsou piny nakonfigurovány jako IO porty, jenže my chceme místo toho sériové rozhraní. Přepnutí se musí zařídít nastavením bitů TXEN (Transmit Enable) a RXEN (Receive Enable). Oba bity jsou v registru UCR (UART Control Register). Tím jsou vysvětleny ony dva tajemné řádky:

    sbi(UCR, TXEN);
    sbi(UCR, RXEN);

    Zbývá ještě popsat nastavení přenosové rychlosti, baudu, která je v tomto případě definována zapsáním čísla 59 do registru UBRR (UART Baud Rate Register). Proč právě čísla 59? Baud rate se spočítá podle vztahu f/(16*(UBRR+1)), kde f je frekvence krystalu. Doufám, že jste si posledně vzali mou radu k srdci a opravdu koupili krystal o frekvenci f=9.216 MHz. V takovém případě pro vás bude platit následující tabulka:

    Baud Rate UBRR
    2400239
    4800119
    960059
    1440039
    1920029
    2880019
    3840014
    576009
    768007
    1152004

    Tabulka platí pro frekvenci krystalu f=9.216 MHz.

    Více informací o sériovém portu je v dokumentaci počínaje stranou 45.

    Jak je patrné z tabulky, číslo 59 odpovídá přenosové rychlosti 9600 baudů. Tato přenosová rychlost byla zvolena proto, že je to defaultní nastavení sériového portu, takže na straně Linuxu nemusíte vůbec nic dělat, stačí rovnou číst.

    Zkuste tedy program zkompilovat a nahrát do čipu pomocí

    make load

    A ze sériového portu by nyní měl vyhřeznout nekonečný proud nápisů Hello world. Ze sériového portu můžete číst příkazem

    cat /dev/ttyS0

    případně

    cat /dev/ttyS1

    podle toho, na který port je čip připojený. Vřele doporučuji udělat si (jako root) symbolický link na to správné zařízení např. pomocí

    ln -s /dev/ttyS0 /dev/jednocip

    Dále se již na ten správný sériový port budu odkazovat jako na /dev/jednocip.

    Dalším příkladem nechť je ukázka, jak se zachází s piny coby vstupy. Předpokládejme, že chceme sestavit kontrolní systém, který upozorní na to, že se někde vylila voda, přišla povodeň, praskla hadice od pračky nebo něco podobného. Voda sice moc dobrý vodič není (ve srovnání s drátem), ale bude to stačit na to, aby se změnila napěťová úroveň na nějakém pinu.

    Zapojení nechme stejné jako u "Hello world", přičemž zdrojový kód by mohl vypadat např. takto:

    #include <avr/io.h>
    
    void print (char *string){
      while (*string) {
      loop_until_bit_is_set(USR, UDRE);
      UDR = *string;
      string++;
      }
      return;
    }
    
    int main(void) {
      /* UART init */
      sbi(UCR, TXEN);
      sbi(UCR, RXEN);
      UBRR = 59; 
      
      cbi (DDRD, PD5); /*direction - DDR*/
      sbi (PORTD, PD5); /* VALUE */
      
      while (1) {
        loop_until_bit_is_clear(PIND, PD5);    
        print ("Po nas at prijde potopa\n"); 
      }
      return 0;
    }

    Použijte obvyklé make load, v terminálu pustťe cat /dev/jednocip a zkuste nasliněnými prsty šáhnout na pin č.9 (PD5) a zároveň na zem (mám na mysli GND, nikoli podlahu). Mělo by to vyhodit varování o stoupající hladině. Aby bylo dílo dokonáno, lze využít krásné vlastnosti *nixových systémů a nechat si poslat třeba mail poté, co přijde padesát varování:

    head -n 50 /dev/jednocip > /dev/null && echo "Potopa" | mail $USER

    Nemohu se nezmínit alespoň stručně o obsluze přerušení a jako příklad nechť je typická aplikace - měření času. Zde je kód na ukázku:

    #include <avr/io.h>
    #include <avr/sfr_defs.h>
    #include <avr/interrupt.h>
    #include <avr/signal.h>
    
    void uart_putchar(char c) {
      loop_until_bit_is_set (USR, UDRE);
      UDR = c;
      return;
    }
    
    SIGNAL (SIG_OVERFLOW0) {
      static unsigned char count = 1;
    
      outp (6, TCNT0); /* 9.216e6 / 1024 / 250 = 36, 
                takze dostaneme 36 preruseni
                za vterinu. 256-250=6 */
      count--;
    
      if (count) return;
    
      count = 36;
    
      uart_putchar ('.');
      uart_putchar ('\n');
    }
    
    int main(void) {
    
      /* UART init */
      sbi(UCR, TXEN);
      sbi(UCR, RXEN);
      UBRR = 59; 
    
      outp (5,TCCR0); /* Clock/1024 */
      sbi (TIMSK, TOIE0); /*povol preruseni od casovace 0*/
      sei();              /*povol preruseni globalne*/
    
      while (1) {}
      return 0;
    }

    Tiky krystalu jsou v čipu přivedeny do děliče frekvence (tzv. prescaler), který je pomocí instrukce

    outp (5,TCCR0);

    nastaven pro dělení 1024. Dělící konstanta pro časovač 0 se nastavuje pomocí registru TCCR0, viz dokumentace na straně 27. Takže na výstupu děliče je nyní frekvence 9.216 MHz / 1024 = 9000 Hz. Tato frekvence je přivedena do osmibitového časovače 0 a ten je nastaven tak, aby při každém přetečení generoval přerušení. To zajistí bit TOIE0 v registru TIMSK. Přerušení se navíc musí povolit globálně funkcí sei(). Čítač čítá vzestupně, takže chceme-li generovat přerušení každých 250 cyklů, je potřeba jej při každém přerušení nastavit na hodnotu 256-250=6 (slovy šest). Těmito magickými čísly, která jsem dlouho vypiplával, se docílí toho, že se přerušení vyvolá 36 krát za sekundu. V obslužné rutině je tudíž potřeba čítat do šestatřiceti, a pak tedy víme, že uplynula sekunda.

    Každou sekundu jednočip pošle na sériový port tečku "." a odentruje. Přesnost hodin můžete snadno ověřit pomocí

    $ head -n 2 /dev/jednocip > /dev/null && time \
      cat /dev/jednocip | head -n 59 > /dev/null 
    
    real    1m0.000s
    user    0m0.000s
    sys     0m0.000s
    

    Je to možná trochu krkolomné, ale funguje to. To není podvod - příkaz time opravdu naměřil přesně jednu minutu nachlup, sám se tomu divím.

    Na závěr přikládám několik fotografií, jejichž cílem je doložit, že je celkem normální stav, když dílo vypadá jako nepřehledný chumáč drátů. Kliknutím se fotky zvětší na obří velikost.


    Obr. 2272x1704 a 1,2 MB

    Připravte se na to, že programování v součinnosti s elektronikou s sebou přináší daleko více chyb, než jste dosud poznali.

    Přeji mnoho euforických zážitků.

           

    Hodnocení: 44 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    23.12.2003 13:54 marys
    Rozbalit Rozbalit vše jo jo
    jo jo BAJECNY SVET LINUXU. skripty, jak ladne jak elegantni.
    23.12.2003 21:49 Lama
    Rozbalit Rozbalit vše Diky
    ...
    23.12.2003 23:17 aaa
    Rozbalit Rozbalit vše jo jo
    jo jo, fakt dobry clanky - dal a hloub ! :)
    24.12.2003 08:02 Petr Opravil
    Rozbalit Rozbalit vše AVR-GCC
    Rad bych autora pochvalil, ze se nezdrzuje s assemblerem (i kdyz se v nem psat da) a jde rovnou na C. Na druhou stranu me ale prekvapil tim, jak v tomto dilu suverenne kompiluje, aniz by se zminil o tom, ze avr-gcc je treba nekde ziskat a jak to udelat. Ja teda vetsinou delam s procesory Renesas H8/300H a nez jsem prisel k vyhovujicimu h8300-hms-gcc, tak jsem zabil cely vikend. Doporucuju zkompilovat si gcc ze zdrojaku. Na to budete potrebovat zdrojaky od binutils (ftp.gnu.org), gcc-core (ftp.gnu.org) a newlib (sources.redhat.com). Kompilaci je mozne delat podle navodu na h8300-hms.sourceforge.net, akorat musite misto h8300-hms davat vsude avr a nebudete aplikovat zadny patch. Jo a jeste namisto MAX232 doporucuju spise MAX202, je to skoro to same, ale jeho nabojova pumpa si vystaci se 100n kondenzatorama (nejvice se to vyplati u navrhu desek se SMD soucastkama).
    24.12.2003 09:06 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše AVR-GCC
    Já jsem avr-gcc instaloval z rpm a stručně jsem se o tom zmínil v minulém díle.
    Pravda, existují i lepší obvody než MAX232, ale tento je rozhodně nejlevnější a nejdostupnější. Několik zajímavých poznatků o převodnících TTL <-> RS232 se objevilo v diskusi u minulého dílu.
    26.12.2003 08:25 Petr Opravil
    Rozbalit Rozbalit vše AVR-GCC
    Tak ta zminka o instalaci v minulem dile mi unikla (priznavam, ze jsem ten clanek spise prolitnul).
    O MAX202 jsem se zminil spise proto, ze neni tak notoricky znamy jako MAX232, ale je o neco lepsi (alespon ja si to myslim) a ma stejne zapojeni vyvodu.

    Jinak preju mnoho zdaru do dalsiho dilu.
    25.12.2003 22:19 Zdenek
    Rozbalit Rozbalit vše Trochu OT dotaz
    Tyhle brouci sou sice fajn, ale prece jenom pameti je desne malo, a predstava, ze by tam bezel nejakej *nix-like operacni system je nerealna. Brouci co umeji adresovat vic pameti, vetsi staticke RAMky a FLASHky sou zase dosti drahy, ale nedavno jsem koukal na streva stareho GSM mobilu, kteremu odesel display (nejakej alcatel), a zjistil, ze obsahuje prudce pouzitelny hardware: - 8/16/32-bit CPU, kompatibilni s M68k@27MHz, plus integrovany 2xPWM, 4xADC, 24xI/O, I2C..) (Philips P90CL301BFH) - 8MBit Flash RAM (AMD AM29LV800) - 128K x 8 bit SRAM (KM68V1000) Tohle vsecko, plus dalsi analogove prvky, muze clovek sehnat funkcni, zdarma, nebo po bazarech za 100-200kc. Neni to o moc vic nez PICy nebo ATMELy, ale hardwarove je to uz o necem uplne jinem. Problem je akorat: - ziskat & zprovoznit & vyladit toolchain. (je treba aby to pouzivalo co nejvic lidi) - soucastky maji mnohem vic pinu (cpu jich ma 80!), a nejsou to DILy ale SMDcka, s cca 2-3x hustsima nozickama, a nejsou strcit do bread-boardu. - odpajet to z desky je docela problem. Nemate s tim nekdo zkusenosti? Muzete poradit?
    27.12.2003 11:09 David Kutalek
    Rozbalit Rozbalit vše Trochu OT dotaz
    Hola, tak jsem rozebral brachuv stary alcatel (typ tusim 300) a Philips tam bohuzel neni. Je tam pet vetsich obvodu, 2x alcatel (hlavni CPU zrejme BBGTV3A2), texas instruments, amd, hyunday... Mozna ze tyhle cipy (resp. ten Philips) jdou koupit samostatne, ten Alcatel jsem nasel v nabidce par ruskych firem :) I kdyz jak se tak divam tak Ten Philips uz se nevyrabi.
    27.12.2003 18:27 Zdenek
    Rozbalit Rozbalit vše Trochu OT dotaz
    Tohle byl "One touch easy" nebo tak nejak, sveho casu nejlevnejsi prodavany mobil, "briketa". Predpokladam ze po bazarech (nebo popelnicich) jich museji byt tuny. ;-) To AMD bude Flash EPROM, Hyundai bude SRAM. Soucasne mobily budou asi nepouzitelne, protoze to bude hrube integrovane reseni se dvema-tremi cipy, a program pro procesor bude zrejme ROM nebo OTP, a primo na stejnem cipu jako CPU. Celkem bomba, kdyz si uvedomim ze ten Philips je min nez 1x1cm brouk, a je to 2x rychlejsi nez Amiga1200 ;-)
    27.12.2003 23:27 David Kutalek
    Rozbalit Rozbalit vše Trochu OT dotaz
    No vida, prinesl jste me stesti. Nejen ze jsem nasel doma nasel i tu briketu, ale dokonce jsem diky tomu ziskal i P2 350 s deskou, diskem a zvukarnou zadarmiko :-). JZitra si tu briketku rozeberu a omrknu a u toho asi i zkoncim. Spis si nekdy koncem unora zkusim pohrat se starou Nokiou, kabelem a Gammu a rozjet GSM branu, to bude o poznani uzitecnejsi ;-).
    28.12.2003 13:16 David Kutalek
    Rozbalit Rozbalit vše Trochu OT dotaz
    Tak uz jen doplnim ze v te brikete byl opet CPU Alcatelu, BBGTV3A1 :/
    4.1.2004 18:58 Zdenek
    Rozbalit Rozbalit vše Trochu OT dotaz
    A jste si jistej? CPU *NENI* nejvetsi brouk na desce! Ten ALCATEL muze byt nakej analogovej ASIC. Kdyz date desku na vysku tak, ze RF cast je nahore, tak na te me desce je CPU vpravo dole, RAM je hned nad nim, a Flash EEPROM je to nalevo.
    30.3.2004 11:39 wolfy
    Rozbalit Rozbalit vše Re: Trochu OT dotaz
    K tomu odpajeni. Dobry postup byl v knize Rozeber si sve PC a pouzivala se k tomu horkovzdusna pistole kterou se nahral plosnak z opacne strany nez je svab a pokud neni pistol tak nad plunakem pre plechovy kominek ktery zabrani aby se dostal plamen na plosnak
    28.12.2003 11:23 Ctirad
    Rozbalit Rozbalit vše Trochu OT dotaz
    Jednočipy na bázi M68k (mimochodem, jde o plně 32bitový CPU, nikoliv 8/16/32 nebo co to bylo za nesmysl ;) ) dělá přímo Motorola, je to řada 683xx. Pokud ovšem pomýšlíte na běh nějakého un*x like systému, je to pořád na nic (respektive, existuje port uClinuxu, ale to není jaxi to pravé). Tam bych šáhnul spíš po nějakym brouku od Samsungu založenym na ARM jádře, co se dává do některých PDAček a dnes už i do chytřejších telefonů.
    hwsoft avatar 29.12.2003 07:51 hwsoft | skóre: 19
    Rozbalit Rozbalit vše Trochu OT dotaz
    ja doporucuji koupit WiFi Acess point, je v nem ten ARM, JTAG, 1Mbyte Flash (+512Kbyte on chip), 8 MByte RAM, PCMCIA WiFI karta s chipsetem ACX100. Delam na tom uz pul roku, ale bohuzel toho casu je malo. No da se sehnat za 2500-3000 i s dani. http://lleidawireless.net/space/GL2422AP-Linux
    Pavel Čejka avatar 28.12.2003 11:49 Pavel Čejka | skóre: 28 | blog: tosinezaslouzijmeno
    Rozbalit Rozbalit vše Trochu OT dotaz

    Ad. odpajování z desek.

    Budete potřebovat: plynový sporák, nebo alespoň lihový kahan, kombinačky u nichž vám nevadí, že se mírně opálí, solidní pinzetu, možná plochý malý šroubovák, smeták, hadr, leštěnku na sporák, pokud používáte domácí rodinný a velmi dobré větrání v kuchyni

    Nedávno jsem udělal docela zajímavou zkušenost. Měl jsem a ještě mám nějaké starší desky, takový ten elektronický šrot (nějaké ISA karty, zákl. desky a pod.). Bylo mi líto desky vyhodit rovnou, protože mne zaujalo pár potenciálně použitelných čipů a krom toho působím v neziskovce, kde se v rámci kroužku elektroniky využijí i další součástky, poněvač na nové je málo peněz. Po pár experimentech se ukázalo, že většinu součástek lze sundat vcelku snadno (a většinu zcela nepoškozených) na obyčejném plynovém sporáku (doporučuji malý hořák a spíše menší plamen).

    Má to ale několik rizik/nepříjemností:
    - strašlivě to smrdí, pokud desku necháte nahřívat déle, nedoporučuje se provozovat doma se špatným větráním
    - zničíte desku, nehodí se pro desky, které chcete zároveň zachránit
    - nehodí se na kuprexit, nebo jak se jmenuje takový ten spíše papírový materiál, já jsem to testoval na deskách z materiálu co se vyskytuje v PC a spíše připomíná sklolaminát, takže je jednoznačně tepelně odolnější
    - některé desky mají tendenci se nafouknout a občas vyprsknou, rozhodně doporučuji brýle
    - pozor na elektrolytické kondenzátory, kdybyste je nevyndali a zahřívali velmi dlouho, mohou vybuchnout
    - zničíte vše co je z druhé/spodní strany, takže třeba SMD led, které mívají mobily je vhodné odpájet předem, aby spodní strana byla opravdu bez součástek
    - budete muset po kuchyni uklízet spousty malých cínových kuliček a smd součástek, které zapadly mimo
    - elektrolitycký kondenzátor objevený až při pečení, zapadlý v troubě, dokáže znepříjemnit celý den :-)
    - pozor na součástky, které mají kovový obal, chladič a nebo jsou přišroubované

    A výhody?
    + sundáte i chipset pro Pentia a to z velké části s netknutými cínovými nožičkami, které se dost rychle roztaví, povedlo se mi vyndat i socket 370 a nebo ISA sběrnici, ale to chce už docela cvik
    + součástky tím dle mého názoru trpí výrazně méně, než jinými metodami, zahřívají se relativně krátce ačkoliv celé
    + součástky sundáte klepnutím desky třeba o papírovou krabici, kam se to celé sype k dalšímu třídění
    + pasivní součástky jako SMD rezistory, kondenzátory a podobně získáváte tak nějak mimochodem, protože se většinou vysypou při vyndavání těch vícenožičkových, aniž byste jim museli věnovat další pozornost
    + nebudete potřebovat drahou pájecí stanici, nebo cínovou vanu a jiné záležitosti, které se doma většinou nevyskytují, pokud máte, netřeba se touto metodou zabývat
    + tímhle způsobem lze získat součástky, které tak lehce nekoupíte samostatně, ale přitom se vyskytují na kdejakém vyřazeném boardu pro PC, kartě portů a podobně.

    ... NA VLASTNÍ RIZIKO, ale funguje to

    28.12.2003 12:24 Vlastimil Ott | skóre: 66 | blog: Plastique | Opava
    Rozbalit Rozbalit vše Trochu OT dotaz
    Tak to je síla. :-D Tohle už nechápu....:-D --vo :-D
    Práce: Liberix, o.p.s. | Blog: OpensourceBlog.cz | Online kurz Zlatý WordPress
    Pavel Čejka avatar 29.12.2003 01:50 Pavel Čejka | skóre: 28 | blog: tosinezaslouzijmeno
    Rozbalit Rozbalit vše Trochu OT dotaz
    ... nojo, já vím, ten příspěvek je opravdu hodně mimo mísu.
    29.12.2003 12:51 Petr Opravil
    Rozbalit Rozbalit vše Trochu OT dotaz
    Taky jsem neco takoveho delal, akorat jsem si na to pujcil horkovzdusnou pistoli. Muze tady ale nastat problem u soucastek, ktere vyrobce na desku pred pajenim prilepil lepidlem. Druhy problem je, jak ziskane integraky otestovat, jestli to prezily. To je dulezite zejmena tehdy, kdyz je clovek chce pouzit na nejaky vyvoj, aby zbytecne dlouho nedumal, proc to vlastne nechodi.
    31.12.2003 19:25 Jiri Pittner
    Rozbalit Rozbalit vše prakticka zkusenost
    Zkousel jsem to podle navodu a nejdriv mi to vubec nechtelo chodit, kontrolni cteni po erase nenacitalo 0xff ale nahodny cisla. Odpomohl tomu kondenzator 100nF zapojeny mezi napajenim Atmelu a GND. Docela se mi to libilo, asi zkusim ten Atmel pouzit spolu s nejakym starym mobilem na vyrobu GSM alarmu na chatu.
    3.1.2004 11:24 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše prakticka zkusenost
    Jsem rád, že se to nakonec podařilo zprovoznit. Nicméně ten zmíněný 100nF kondenzátor na schématu uvedený je,
    http://abclinuxu.cz/images/clanky/martinek/1cip-78L05_sch.png
    ale uvedl jsem ho jen jako součást napájecího zdroje.
    5.1.2004 10:58 Jiri Pittner
    Rozbalit Rozbalit vše prakticka zkusenost
    Ja to napajel z laboratorniho zdroje, proto jsem se na schema zdroje ani poradne nepodival :-). Stejne je asi lepsi, kdyz ten kondenzator bude hodne blizko procesoru.
    7.1.2004 13:08 Jakub Chalupnik | skóre: 7
    Rozbalit Rozbalit vše prakticka zkusenost
    U vsech experimentu s digitalni technikou doporucuju blokovaci kondenzatory 100nF (nebo 10nF pro "smeti" - logiku 74xxx) u kazdeho svabu, v idealnim pripade napajenej primo mezi nozicky. Muze vam to usetrit cas pri hledani neexistujici chyby :)
    17.6.2005 09:20 ilicz
    Rozbalit Rozbalit vše Re: prakticka zkusenost
    jo to je prevelice moudra rada.... sami jsme takhle vyfiltrovavali na nasem HW hnusny ruseni, ktery delal RS232...
    2.1.2004 04:25 Jakub Ladman
    Rozbalit Rozbalit vše bůůů (brek)
    Ještě jsem to nedočetl a už brečím. Autorovi bych doporučil v datasheetu prohlédnout vnitřní zapojení portů. Pak by jistě nepřipojil ledku mezi port a zem, ale mezi kladný pól a port. PS: někdo tu psal, že provozuje avrstudio pod wine, nutně potřebuju simulátor, a nenašel jsem nikde nic tak dobrýho jako ten v avrstudiu (resp. nenašel jsem nic, kromě kombinace ddd->avr-gdb->simulavr, kde si ale nemůžu klikat na bity atd., a neumím simulovat přerušení). Nedaří se mi to ale absolutně nainstalovat. verze 4 nainstaluju, ale pak nefunguje a verze 3.5 se odmítá i nainstalovat s hlášenou chybou něco jako že nenašel disk s volným místem pro dočasné soubory, přitom ostatní programy s tím problém nemají a volného místa je přehršel (pro tento účel). Díky za případnou radu, podle vlastního uvážení třeba na ladmanj~at~volny~dot~cz, pokud ne sem. Jakub
    2.1.2004 19:21 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše bůůů (brek)
    Diodu jsem tak zapojil schválně, abych se vyhnul komplikovanému popisu výstupní impedance pinů. Chtěl jsem, aby jednička byla "svítí" a nula "nesvítí". I v tomto zapojení je port schopen dodat 20mA, což je o řád více, než je nutno pro nízkopříkonovou ledku. Ale když už jste to nakousl, máte samozřejmě pravdu, že je lepší vše zapojovat mezi VCC a pin, čímž lze získat až 80mA.
    4.1.2004 14:04 Peter
    Rozbalit Rozbalit vše AVR Kit prosim radu...
    Udelal jsem si tohle "udelatko" pro paleni cipu pod Linuxem, ale nezbehne mi posledni faze, t.j. napaleni procesoru. Kdyz dam napalit program udela je tohle: Reinitializing device Atmel AVR 90S2313 found. Aborted (core dumped) ...potom si dam stahnout data z procesoru zahlasi tohle: Cannot identify device because it is locked. Device similar to the ATmega103-old is found. Downloading flash ...snad milion cisel...v jedne radce... Device is locked. Aborted (core dumped). Kdyz pak udelam uisp -dlpt=/dev/parport0 -dprog=dapa --erase, vse je v poradku, najde uz 90s2313 a pak jede i download (cpu je vsak prazdne). Preklad zdrojoveho kodu je proveden dobre, proste nezbehne napaleni procesoru. Mam to na univerzalni desce, napajeni je z laboratorniho zdroje a krystal pro procesor je 10MHz. Uzivam Mandrake 9.2 s defaultnim jadrem 2.4.22 na P4/2400,256 RAM,80GB HDD ale to asi neni az tak podstatne.Skuste mi nekdo poradit,kdyz muzete.Kdyz dam procesor do profi programatoru Elnec,vse probehne OK,tedy CPU je urcite v poradku.
    5.1.2004 08:56 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše AVR Kit prosim radu...
    Mám pocit, že se podobným problémem se již někdo setkal,
    http://mail.gnu.org/archive/html/uisp-dev/2003-02/msg00019.html
    ale diskuse nějak utichla.
    Jakou verzi uisp používáte? Zkuste poslat výpis při použití parametru -v=4. Jak dlouhý je kabel k paralelnímu portu (doporučuje se max. 70cm)?
    Co se stane, když použijete
    uisp -dlpt=/dev/parport0 --erase --upload --verify if=program.hex -dprog=dapa -v=4
    To, že obvod funguje v programátoru ještě není záruka jeho bezchybnosti, protože čip lze programovat dvěma různými způsoby (paralelně a sériově). Teoreticky je možné, že váš programátor používá paralelní řežim, zatímco -dprog=dapa je režim sériový. Ale to je pouze hypotéza.
    5.1.2004 17:28 Saša Vrtěl (avrtel at mbox dot catr dot cz)
    Rozbalit Rozbalit vše AVR Kit prosim radu...
    Já mám taky MDK 9.2 s defaultním jádrem a to programování mi funguje bez problémů (a to mám kabel 110 cm :-) )
    21.1.2004 16:43 LK
    Rozbalit Rozbalit vše AVR Kit prosim radu...
    Tak presne to mi delalo taky. Bylo to proto, ze Atmel mam napajeny z PS2 a kolega (ktery mi to napajeni udelal) tam nekam zapojil velky odpor, abych pry neodpalil pocitac (nerozumim tomu, predavam, jak jsem koupil). Protoze pokus o programovani koncil na segfault, tak ten odpor sundal a od te doby jedna basen. Uz jsem si iniciativne udelal semafor :-)
    21.1.2004 23:34 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše AVR Kit prosim radu...
    Tak to vypadá, že stabilita napájení je asi hodně důležitá. V případě problémů by snad mohl pomoct vyhlazovací kondenzátor zapojený co nejblíž čipu.
    27.1.2004 15:30 Martin Valensky
    Rozbalit Rozbalit vše A co vetsi cipy, terba AtMega?
    jdou pomoci toho "programatoru" a postupu naprogramovat treba AtMega64?
    19.3.2006 14:58 Martin Kohler
    Rozbalit Rozbalit vše Re: A co vetsi cipy, terba AtMega?
    Jdou. Ted pracuji s ATMEGA32
    2.2.2004 09:03 ctvrtyk
    Rozbalit Rozbalit vše Obousmerne UARTem
    Jo maka mi to pekne. Ledka blika jako o zavod :o) V Hyperterminalu zdravim svet, ale... Nejsem prave Guru v Cecku. Pustil jsem se do toho, abych zkusil moznost ridit nejake pitomosti a zpetne ziskavat info o jejich stavech. Pokud nekdo muzete, idealne autor :o), tak bych potreboval postrcit pri obousmerne seriove komunikaci. Uplne uzasne by bylo, tak jak je napsana funkce "print", mit i funkci trebas "read", nebo tak nejak. Dal bych to snad uz zmaknul sam. Diky.
    2.2.2004 20:42 Saša Vrtěl
    Rozbalit Rozbalit vše Obousmerne UARTem
    Jo, to by se mi taky líbilo. Ale vypadá to, že seriálek nám skončil :-((
    2.2.2004 22:16 ctvrtyk
    Rozbalit Rozbalit vše Obousmerne UARTem
    Atmelikovi davam pekne pokourit. PCcku tedy taky :o) No, uz zachytavam stisknuti klavesy a rozsvitim si ledku, ale zapas nekonci, pac se mi nedari vracet ty znaky zpet na terminal. Nektere klavesy reaguji a nektere vubec (???) a vypisuje mi to porad zavinac (???). Kdyby se preci jen nekdo znaly ustrnul...
    23.6.2004 11:23 karel.obadal@ido.cz
    Rozbalit Rozbalit vše MAX 232
    Dobry den,

    Dioda blika, ale druhy krucek mi uz jaksi nejde a nevim jak najit chybu. Obvod MAX232 PCE se mi nikde nedari sehnat a vsude maji dle prodavacu adekvatni nahrady (MAX232N, ST232BN) tvari se pritom presvedcive takze myslim, ze nekecaji. Jak vystopovat chybu?

    Diky K. Obadal
    5.8.2004 00:32 Marter
    Rozbalit Rozbalit vše Re problem s avr-gcc
    Mam podobny problem. Led diodu som rozblikal, ale druhy priklad som nemohol ani prelozit mal som problem s riadkom "UBRR = 51;" a "UDR = *message;" kompilator oznamil chybu: invalid lvalue in assignment, pouzivam Linux Debial woody. Compilator : avr-gcc. Verzia : Reading specs from /usr/lib/gcc-lib/avr/3.0.3/specs Configured with: ../src/configure -v --enable-languages=c --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --enable-shared --with-gnu-as --with-gnu-ld --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-checking --build=i386-linux --host=i386-linux --target=avr Thread model: single gcc version 3.0.3

    Prosim pomozte mi niekto strasne sa mi pacil tento clanok ale nemozem pokracovat dalej. e-mail marter@szm.sk
    5.9.2004 01:14 milos
    Rozbalit Rozbalit vše trochu viac blikania
    Mojim detickam to blikanie nic nehovori... Tak som pridal par riadkov do programu a je z toho elektronicka kocka a stravime pri tom viac minut s pouzitim Clovece nezlob se... PD4 je LED, PD5 spinacie tlacidlo. Zdrojak (editujte prvy riadok, zapis prispevku ma to donutil zmenit):
    #include "avr/io.h"
    
    void delay(unsigned int ms) {
      unsigned int i,j;
      for ( j=0; j<1000; j++)
        for ( i=0; i< ms ; i++);
    }
    
    void blink( unsigned int howmany ){
    
      unsigned int i,j;
      cbi (PORTD, PD4);
      delay(500);
      for(j=0;j<3;j++){
            for( i=0; i< howmany; i++){
                sbi (PORTD, PD4);
                delay (150);
                cbi (PORTD, PD4);
                delay(90);
            }
            delay(1000);
      }
    
    
    }
    
    int main (void){
    
      unsigned int i = 0;
      sbi(DDRD,PD4); /*enable port 5 for output*/
      cbi(DDRD,PD5); 
      sbi(PORTD,PD5); /* input = button */
    
      while (1) {
            do {
                i++;
            } while (bit_is_clear(PIND,PD5) == 0);
            blink(i%6+1);
            sbi(PORTD,PD4);
            i=0;
      }
    
      return 0;
    }
    
    8.9.2004 15:08 SAM: | skóre: 23 | blog: marsark_linux
    Rozbalit Rozbalit vše Nechodí makefile
    mám problém, nedaří se mi zkompilovat zdroják. Make file vypíše tuto chybu:

    avr-gcc-3.3.2 -g -mmcu=at90s2313 -Wall -Wstrict-prototypes -Os -mcall-prologues -o helloworld.out -Wl,-Map, /opt/cdk4avr/lib/gcc-lib/avr/3.3.2/../../../../avr/bin/ld: cannot open map file : není souborem ani adresářem make: *** [helloworld.out] Error 1

    Poraďte co s tím? Díky
    10.9.2004 19:02 faqir
    Rozbalit Rozbalit vše Re: Nechodí makefile
    Radkovani v Makefile v textu je rozhozene, musite si s tim pohrat a dat nektere radky dohromady (predpokladam, ze jste prenasel text pres clipboard).

    P.S. Prosba redaktorum: nebylo by mozne vzdycky prikladat zdrojove kody jako samostatny soubor?
    12.9.2004 14:40 SAM: | skóre: 23 | blog: marsark_linux
    Rozbalit Rozbalit vše Re: Nechodí makefile
    Kopíroval jsem to clipboardem. Něco jsem tam už opravil, ale tahle chyba zůstává.

    Určitě by to chtělo možnost downloadu celého souboru.
    12.9.2004 20:27 hohooooo
    Rozbalit Rozbalit vše Re: Nechodí makefile
    Co takhle spojit radek koncici na ¨-Map,¨ s tim nasledujicim? To je logika Watsone ;-) (P.S. Nesmi tam byt mezera samozrejme...)
    13.9.2004 23:19 milos
    Rozbalit Rozbalit vše Re: Nechodí makefile
    ano, spojit to ako je tu pisane a okrem toho namiesto medzier, ktore sa zadaju cez copy paste, je potrebne zadat tabelator (pozri man make), napr. v riadkoch
    $(PROJECT).out : $(PROJECT).o 
      $(CC)
    
    je pred $(CC) tabelator a nie medzery
    2.10.2004 15:34 SAM: | skóre: 23 | blog: marsark_linux
    Rozbalit Rozbalit vše Re: Nechodí makefile
    Makefile mi uz chodi, byl to jeden zapomenuty mezernik. Ted testuji program na blikání ledky, ale nechce mi to blikat. Ledka se buď jen rozsvítí nebo jen zhasne. Zdroják mám přesně podle ukázky. Když chci nahrát do flashe nová data tak mi to hodí tuhle chybu a musím čip odpojit od napájení:
    AVR Direct Parallel Access succeeded after 0 retries.
    Vendor Code: 0x00
    Part Family: 0x01
    Part Number: 0x02
    Cannot identify device because it is locked.
    Device similar to the ATmega103-old is found.
    Page Write Disabled
    FLASH Write Delay (t_wd_flash): 61111 us
    EEPROM Write Delay (t_wd_eeprom): 11111 us
    Erasing device ...
    Reinitializing device
    AVR Direct Parallel Access succeeded after 0 retries.
    Vendor Code: 0x00
    Part Family: 0x01
    Part Number: 0x02
    Cannot identify device because it is locked.
    Device similar to the ATmega103-old is found.
    Page Write Disabled
    FLASH Write Delay (t_wd_flash): 61111 us
    EEPROM Write Delay (t_wd_eeprom): 11111 us
    Uploading: flash
    #Device is locked.
    make: *** [load] Neúspěšně ukončen (SIGABRT)
    
    Kdyz odpojim ledku od pinu 8, tak se tahle chyba neobjeví.
    12.9.2004 20:44 Petr Tomasek
    Rozbalit Rozbalit vše Vracena data?
    Dobry den!

    Mam tento problem: chci aby mikrocip data pres RS232 posilal i prijimal, ovsem jakmile poslu data z mikrocipu do pocitace a tam je ctu (napr. pomoci cat /dev/ttyS0), pak se mi (krome toho, ze se v poradku zobrazi na pocitaci) vrati zpet mikrocipu (a tam nekdy udelaji nejakou neplechu). Pokud data na pocitaci nectu, neplecha se nedeje, z cehoz usuzuji, ze se ani data nevraci zpet. Netusite nekdo, co s tim?

    Dalsi vec: minicom si nejak nerozumi s prenosem bez hw-handshaking. Netusite, jestli by se dal Atmel premluvit k tomu, aby handshaking pouzival? MAX232 ma dva "kanaly" na kazdy smer, umi to ale mikrocip?

    Diky!
    23.8.2005 23:44 buggy
    Rozbalit Rozbalit vše Tak mi to nedela tu 1 min ale o trochu viac
    Nevim jestli se jeste nekdo chytne, na tento calnek ale zkusim to. Jsem se prokousal vsemi priklady, zamenim cbi,sbi apod. No a nakonec mi to nevrchlilo tolik touzebnou jednicku. Co s tim, jak na to?
    
    real    1m0.003s
    user    0m0.001s
    sys     0m0.003s
    
    20.3.2006 16:44 David Sedláček | skóre: 20 | Žďár nad Sázavou
    Rozbalit Rozbalit vše Re: Jednočipy pod Linuxem - II
    Jak zjistim celkovou delku zkompilovaneho programu do jednocipu?
    22.8.2006 01:26 Martinek
    Rozbalit Rozbalit vše Re: Jednočipy pod Linuxem - II
    $ make
    $ wc -c nazevprogramu.hex
    12.8.2008 23:32 collodi
    Rozbalit Rozbalit vše Re: Velikost výsledného .hex souboru
    Zdravím, chci se zeptat na jednu věc. Když skompiluju program a výsledný hex soubor pak podrobím příkazu wc -c, dostanu velikost v Bajtech, to jsem pochopil, pro můj konkrétní soubor to je 11251B -> 11KB. Nesedí tu ale jedna věc. Je to skompilované pro atmega8 , který má 8KB falsh paměti... Program normálně funguje...

    A teď ještě jedna věc. Když pomocí uisp --download stáhnu celou flash do souboru (uisp -dlpt=/dev/parport0 -dprog=stk200 --download > flash.hex) tak mi příkaz wc -c flash.hex vypíše 22574 flash.hex.Což je ještě divnější. Zkrátka jde mi o to jak určit velikost programu tak abych po vydělení 8000 (pamět atmega8) dostal proceto zaplnění paměti ...

    Dík předem za odpovědi
    12.8.2008 23:46 collodi
    Rozbalit Rozbalit vše Re: Velikost výsledného .hex souboru
    Odpovím si sám - avr-size Pořád ale ještě nechápu v jakých jednotkách počítá prográmek wc? Pokud ze stáhlého obsahu flash odstraním řádky, které nevypadají jako kód (první, a poslední 2), tak po vydělení čísla co mi vrátí wc -c číslem co mi vrátí avr-size dostanu 2,75 ... ví někdo proč?
    20.10.2007 08:02 Pat
    Rozbalit Rozbalit vše Re: Jednočipy pod Linuxem - II
    At delam co delam, pri pokusu o kompilaci a loadovani zdrojaku to vypise todle :

    pat pat # make load
    /opt/cdk4avr/bin/avr-gcc -g -mmcu=at90s2313 -Wall -Wstrict-prototypes -Os -mcall-prologues -o helloworld.out -Wl,-Map,
    /opt/cdk4avr/lib/gcc/avr/3.4.5/../../../../avr/bin/ld: cannot open map file : není souborem ani adresářem
    make: *** [helloworld.out] Error 1


    Neporadi nekdo kde hedat chybu? Moduly k paralelnimu portu bezi, Atmel se hlasi, smazat jde, naplnit jednickama take. Mam Gentoo.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.