ARM a Makefile
hutta.j na seznam.cz
hutta.j na seznam.cz
Sobota Leden 26 21:27:14 CET 2013
Pokud IDE nema funkci generovani makefile , muze byt napsani makefile
slozitejni nez napsani samotneho programu.
Podival jsem se jak je to z podporou makefile u MDK-ARM, jak compiler tak
linker lze volat z prikazoveho radku, cili pouziti makefile nic nebrani, ale
IDE ( uVision) nema prikaz pro vygenerovani makefile.
Kdyz se podivam na compiler control string, dost pochybuji, ze nekdo bude
makefile tvorit rucne.
Hutta
---------- Původní zpráva ----------
Od: Petr Labaj <labaj na volny.cz>
Datum: 26. 1. 2013
Předmět: Re: ARM a Makefile
"
Proc lidi nepouzivaji Makefile? Protoze spousta lidi ani nevi, co to je (tim
ted zrovna
nemyslim vzorek lidi z hw.cz, i kdyz i tady se obcas vyskytuji nazory, ze je
vhodnejsi
pouzit predchystany example, nez se snazit problemtiku nastudovat).
Kdyz se podivate do prakticky libovolneho fora o programovani nejakeho
procesoru,
tak kazda druha otazka tam je "pod Eclipse to chodi, ale pod mym XYZ to
nejde".
Nikdo z nich nepremysli nad tim, ze preklad je veci kompilatoru, tedy
toolchainu,
a ze s tim ma barevna klikaci nadstavba IDE spojitost jen okrajovou.
Konkretne:
- knihovny prekladam predem a delam z nich jednu knihovnu (*.a)
- knihovny jsou ulozene v pevne definovanem adresari, ktery je spolecny pro
vsechny projekty
- adresar projektu ma shodne jseno s projektem, v nem jsou podadresare:
- src
- include
- ld
- tmp
- v adresari projektu je jen Makefile, vystup "projekt.elf" a soubor s
opisem hlasek
z prekladu "projekt.txt", vcetne vypisu o delce code a data
- v podadresari tmp jsou *.obj, *,lst ke kazdemu modulu, "projekt.map" a
"projekt.dis",
coz je nejkompletnejsi mozny disassembler vysledneho projektu, vcetne
hexdumpu,
tedy veskera informace pro pripadne hledani
- Makefile ma krome obvykleho "clean" jeste "clean_tmp", ktery maze pracovni
soubory,
ale ponecha "projekt.elf" a "projekt.txt".
Diky predkompilovanym knihovnam je build projektu velmi rychly.
Na urovni systemu je pradnastavena volba -j pro paralelni preklad. Mym cilem
vzdy je, aby jedno kolo preklad+link nikdy netrvalo dele nez 2 sekundy (na
Linuxu, kde
mi soucasne toolchainy, natr. pro STM32, chodi vyrazne rychleji nez na
Windows).
Pokud by to melo u hodne velkeho projektu trvat dele, je treba se zamyslet a
rozlozit to.
Knihovny pouzivam jen naprosto minimalne, vetsinu veci si radeji napisu sam
a vim,
co a jak tam je. A muzu to snadno preportovat jinam.
Vyjimkou jsou hodne komplexni periferie jako USB a Ethernet.
S verzovacimi SW jsem se nikdy neszil (coz povazuji za svou chybu). Takze
verzovani
pomoci pojmenovanych *.zip.
PL
"
----- Original Message -----
From: František Burian(mailto:BuFran na seznam.cz)
To: hw-list na list.hw.cz(mailto:hw-list na list.hw.cz)
Sent: Saturday, January 26, 2013 7:58 PM
Subject: ARM a Makefile
Zdravím osazenstvo,
Mám tu záludné dotazy na sobotní večer.
Všechny example které tu proběhly jsou nativní pro Code::Blocks. Chtěl
bych se zeptat (čistě z neznalosti)
z jakých důvodů nikdo nevytváříte projekt jako Makefile. Myslím že pro
možnost kompilace pod různými OS
(a že tu jsou i lidé z Linuxových luhů a hájů) by byl Makefile lepší volbou.
Zakládat nový projekt na kterém v
budoucnosti může pracovat více lidí jako Makefile, nebo jako standardní C::B
projekt ?
Druhý dotaz směřuje k zakládání projektu - když bych chtěl od počátku
založit projekt tak, aby jej snadno
chápali druzí, aby zkušení v něm dobře "četli", aby šel například
zkompilovat i bez Code::Blocks, jakým způsobem
bych měl rozčlenit adresářovou strukturu ? Rád bych věděl Vaše názory jak
zakládáte své projekty, případně
jak členíte strukturu. Řekněme že se jedná o středně rozsáhlý projekt, kde
bude komunikace s PC, nějaké UI s
"točítkama" pro uživatele, nějaká matematika. Vše v rámci ARM
mikrokontroleru (STM32F1 nebo STM32F4).
Třetí dotaz směřuje též k založení a "znovupoužití" projektu někým jiným -
jedná se o stahování a instalaci
periferních knihoven, ve kterých jsou změny oproti originálu. Přikládat a
verzovat tuto knihovnu společně s
projektem, nebo raději napsat uživateli postup odkud stáhnout a co kde a jak
přeplácnout a modifikovat v tom
originálu. Já bych byl pro první variantu, ještě nevím zdali to není rozpor
s licencí (musím prověřit) ale zdá se
mi to přístupnější většímu počtu uživatelů. (na zprovoznění by stačilo mít
provozuschopný toolchain a jen
stáhnout zdrojový kód z SVN). Uvažujme situaci jeden projekt (tedy NE
situaci kdy knihovnu využívá vícero
projektů)
Dík za tipy.
Franta.
"
"
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20130126/181e11b7/attachment.htm>
Další informace o konferenci Hw-list