Pořadí linkování |
- Nastavit adresáře v nichž jsou uloženy použité proměnné s jejich relativními cestami
- Proměnné FILES a OBJS naplnit soubory které budou kompilovány do projektu, včetně .HTML souborům
- Do proměnou CGI nastavit použité .CGI soubory s jejich cestami
- Definovat název výsledného souboru, který se bude vždy kompilovat při změně vstupních souborů
- Připravit include soubory s IP a ETHERNET (MAC) adresou, vložit do kódu nezbytné deklarace
- Následuje výčet definic překladů jednotlivých vstupních souborů, včetně .HTML s jejich parametry
- Poslední se překládá soubor www8051.o do něhož se linkerem přilinkovávají všechny připravené .OBJ soubory, včetně nezbytných funkcí z knihoven
- Výsledný soubor www8051.o je rozdělen na binární soubory pro EEPROM a FLASH paměť procesoru a uložen do souborů .EEP a .ROM
- Případně je z těchto souborů vytvořen výsledný www8051.hex který umístí .ROM část od nuly a .EEP část od adresy 2000H (8kb) což většina programátorů akceptuje jako data pro interní EEPROM procesoru
Samotné komunikační rutiny, které obsluhují řadič ethernetu REALTEC 8019AS a další jsou složeny z mnoha zdrojových souborů, ale výsledně jsou uloženy celkem ve 2 knihovnách, pro použití s ukázkovými příklady, přeložených pro dvě hlavní konfigurace:
- První konfigurace je přeložena pro podporu 2 TCP stacků, aktivní navazování spojení na stacku č. 1 a podporu sériové linky. V názvu obsahuje označení 23.
- Druhá konfigurace je přeložena pro podporu 1 TCP stacku, a je bez podpory sériové linky. V názvu obsahuje označení 80.
Předpřeložené, přejmenované knihovny libw.a a libk.a, jsou:
- libw80.a – Obecné rutiny jako je například matematika, výpisy kódu a podobně, určené pro jeden komunikační port. Předpokládá se port 80 (http) ale číslo portu lze nastavit.
- libk80.a – Síťové rutiny jako je například práce s virtuálním TCP/IP stackem atd..
- libw23.a – Obecné rutiny jako je například matematika, výpisy kódu a podobně, určené pro dva komunikační porty. Předpokládá se port 23 (telnet) a port 80 (http) ale čísla portů lze nastavit.
- libk23.a – Síťové rutiny jako je například práce s virtuálním TCP/IP stackem atd..
Bližší podrobnosti o knihovnách je možno najít v popisu vývojového systému a popisu knihoven libk a libw
Linker pro zadávání jmen knihoven na příkazovém řádku používá několik konvencí:
- Knihovny se hledají v adresáři (adresářích) zadaných příkazem –L
- Jména knihoven jsou zkrácena, není uvedeno počáteční lib a koncové .a. Jméno knihovny je uvozeno příkazem –l. Tj. např. knihovnu libk80.a na příkazovém řádku linkeru zadáme pomocí příkazu –lk80
Jak bylo uvedeno, knihovny je nutné linkovat v pořadí libk a potom libw vzhledem k tomu, že síťová knihovna používá některé obecné funkce z knihovny libw a linkování není rekurzivní. (V rámci jedné knihovny však samozřejmě je, nezáleží proto na pořadí, v jakém jsou do knihoven přidávány jednotlivé moduly.)
Makefile se zpracovává odshora dolů, pokud make narazí na položku, která mu chybí a má ji proto vytvořit (přeložit) začne prohledávat Makefile znovu odpočátku,
Nyní si ještě jednou přečtěte v popisu struktury Makefile odstavec deklarující vytvoření “www8051.o“ – celá problematika by již měla být jasnější.
POPIS Web51 | NOVINKY | FAQ | OBJEDNÁVKA | DOWNLOAD |
(c)Copyright 2000, 2001, HW server & Radek Benedikt
Web51@HW.cz, Web51.HW.cz Final applications of the Web51 : www.HWgroup.cz |