Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

Jak použít Makefile ?

 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
markoni



Založen: Oct 30, 2006
Příspěvky: 2310
Bydliště: Poblíž Zlína

PříspěvekZaslal: pá září 30 2022, 10:43    Předmět: Jak použít Makefile ? Citovat

Zdravím
Možná tato otázka co položím bude znít jako hloupá .Mám projekt který má i soubor Makefile ale já nevím jak jej použít ? díky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
josef_novak



Založen: May 06, 2017
Příspěvky: 787

PříspěvekZaslal: pá září 30 2022, 10:53    Předmět: Citovat

https://cs.wikipedia.org/wiki/Make

V adresáři bývají soubory jako install (readme), ve kterých se vyskytují i detaily nebo syntaxe, které jde použít při kompilaci. Také tam může být doplněno, jaké knihovny je potřeba doinstalovat apod.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
markoni



Založen: Oct 30, 2006
Příspěvky: 2310
Bydliště: Poblíž Zlína

PříspěvekZaslal: pá září 30 2022, 11:29    Předmět: Citovat

Tak to není spustitelný soubor třeba v příkazovém řádku a on by se postaral o správné nastavení adresářů a podobně? díky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nixdorf



Založen: May 06, 2017
Příspěvky: 570

PříspěvekZaslal: pá září 30 2022, 12:16    Předmět: Citovat

Nie, makefile za teba kafíčko neuvarí. Je to texťák, ktorý prešrotí make, aby vedelo, čo a ako skompilovať a s čím zlinkovať, s akými parametrami buildu. Dependencies, teda nutné knižnice, apiny, ich verzie, kde majú byť umiestnené, hodnoty premenných prostredia, toolset ktorý treba a iné ďalšie predispozície, treba vždy prelúskať z požiadaviek, zväčša uvedené v README, install, contrib, v markdowne a tak ďalej. Tie musia byť splnené ešte predtým, než spustíš build.
V prípade, že tomu tak nie je, nič ti nebráni makefile otvoriť ako text a zistiť, aké náležitosti budeš musieť mať splnené, akurát to je mierne zložitejšie než si pozreť readme.
Á propos, ak nechceš buildovať zo zdrojákov, stiahni si priamo binárku alebo cez vhodný package manager, v závislosti od distribucie (ak si na *nix)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zmije



Založen: Jun 30, 2005
Příspěvky: 1568
Bydliště: Pardubický kraj

PříspěvekZaslal: pá září 30 2022, 22:12    Předmět: Citovat

"Makefile" je vpdstatě skript. Jeho interpret je program "make".
Když napíšeš make, tak se spustí program make, který hledá v aktuálním adresáři soubor Makefile a když ho najde, tak ho začne zpracovávat.

Je to tvůj program, nebo cízí? Jestli jsou zdrojáky veřejně dostupné tak se pochlub, co je to zač, třeba ti někdo poradí víc.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
markoni



Založen: Oct 30, 2006
Příspěvky: 2310
Bydliště: Poblíž Zlína

PříspěvekZaslal: so říjen 01 2022, 10:14    Předmět: Citovat

Jsou veřejně dostupné je to zapakované v archivu http://1-2-8.net/mwva/mrazik/hdo/stm32f051_hdo.tgz . díky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
markoni



Založen: Oct 30, 2006
Příspěvky: 2310
Bydliště: Poblíž Zlína

PříspěvekZaslal: so říjen 01 2022, 16:05    Předmět: Citovat

Zmije napsal(a):
"Makefile" je vpdstatě skript. Jeho interpret je program "make".
Když napíšeš make, tak se spustí program make, který hledá v aktuálním adresáři soubor Makefile a když ho najde, tak ho začne zpracovávat.

Já jsem si taky myslel že ten soubor makefile není jen texták že musí se něčím spustit jenže jsem nevěděl jak Idea
A výsledek je tento kde je chyba nebo co mě tam chybí ? díky



makefile.jpg
 Komentář:
 Velikost:  73.55 kB
 Zobrazeno:  110 krát

makefile.jpg


Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
josef_novak



Založen: May 06, 2017
Příspěvky: 787

PříspěvekZaslal: so říjen 01 2022, 16:38    Předmět: Citovat

Pod Linuxem to bez problému zkompiluji.
Dej si do Googlu tohle "make (e=2): The system cannot find the file specified." a hledej, ale většinou se zmiňuje PATH.
kód:

root@debian:~/test-part/hdo$ make
arm-none-eabi-gcc -mthumb -mcpu=cortex-m0 -c -Os -I. -I./inc -I./lib/inc -Wall -g -ffunction-sections -fdata-sections -fmessage-length=0 -fno-short-enums -fno-rtti -fno-exceptions -o main.o main.cpp
arm-none-eabi-gcc -mthumb -mcpu=cortex-m0 -c -Os -I. -I./inc -I./lib/inc -Wall -g -ffunction-sections -fdata-sections -fmessage-length=0 -fno-short-enums -fno-rtti -fno-exceptions -o gpio.o ./src/gpio.cpp
arm-none-eabi-gcc -mthumb -mcpu=cortex-m0 -c -Os -I. -I./inc -I./lib/inc -Wall -g -ffunction-sections -fdata-sections -fmessage-length=0 -fno-short-enums -fno-rtti -fno-exceptions -o usart1.o ./src/usart1.cpp
arm-none-eabi-gcc -mthumb -mcpu=cortex-m0 -c -Os -I. -I./inc -I./lib/inc -Wall -g -ffunction-sections -fdata-sections -fmessage-length=0 -fno-short-enums -fno-rtti -fno-exceptions -o print.o ./src/print.cpp
arm-none-eabi-gcc -mthumb -mcpu=cortex-m0 -c -Os -I. -I./inc -I./lib/inc -Wall -g -ffunction-sections -fdata-sections -fmessage-length=0 -fno-short-enums -fno-rtti -fno-exceptions -o adcirq.o ./src/adcirq.cpp
arm-none-eabi-gcc -mthumb -mcpu=cortex-m0 -c -Os -I. -I./inc -I./lib/inc -Wall -g -ffunction-sections -fdata-sections -fmessage-length=0 -fno-short-enums -fno-rtti -fno-exceptions -o filter.o ./src/filter.cpp
arm-none-eabi-gcc -mthumb -mcpu=cortex-m0 -c -Os -I. -I./inc -I./lib/inc -Wall -g -ffunction-sections -fdata-sections -fmessage-length=0 -fno-short-enums -o startup.o ./src/startup.c
arm-none-eabi-gcc -mthumb -mcpu=cortex-m0 -c -Os -I. -I./inc -I./lib/inc -Wall -g -ffunction-sections -fdata-sections -fmessage-length=0 -fno-short-enums -o csystem.o ./src/csystem.c
arm-none-eabi-gcc -mthumb -mcpu=cortex-m0 -nostartfiles -Wl,--gc-sections -o Hdo.elf  main.o gpio.o usart1.o print.o adcirq.o filter.o startup.o csystem.o -L ./lib/ -T stm32_flash.ld -laeabi-cortexm0
Project size :
arm-none-eabi-size Hdo.elf
   text    data     bss     dec     hex filename
   2932       4     364    3300     ce4 Hdo.elf

arm-none-eabi-objcopy --strip-unneeded -O binary Hdo.elf Hdo.bin
gcc -Os -o calculate ./calc/coef.c -lm
root@debian:~/test-part/hdo$
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mahoney



Založen: Oct 26, 2019
Příspěvky: 381

PříspěvekZaslal: so říjen 01 2022, 17:52    Předmět: Citovat

Ehh… Není už jednodušší mu tu binárku poslat, když jsi to zkompiloval?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
markoni



Založen: Oct 30, 2006
Příspěvky: 2310
Bydliště: Poblíž Zlína

PříspěvekZaslal: so říjen 01 2022, 18:08    Předmět: Citovat

Já nevím co je tam za problém mě by stačilo kdybys mi poskytl HDO.bin s jen s malou úpravou souboru main.cpp
kód:
#include "main.h"
/**
 * @file
 *
 * @brief Spínač HDO.
 * Ve starším příkladu byl pro tento účel použit procesor ARM poněkud zastaralé struktury.
 * Zde použijeme procesor STM32F051 s tím, že snad chvilku přežije a pokud ne, mělo by to
 * jít snadno přeportovat na jiný. I když - zde jsou použity poněkud netradiční postupy.
 * -# Není použita standardní periferní knihovna.
 * -# Dokonce i standardní hlavička byla nahrazena řadou vlastních definic periferií, jen tak
 *      na zkoušku, že to jde i jinak. Používá bitová pole.
 * -# Celé je to psáno v C++ a to tak, že používá vše, co jen na tak malém procesoru lze
 *      efektivně využít. Dědičnost, polymorfizmus, šablony.
 *
 * Výsledný obraz kódu je dost kompaktní, s použitím optimalizace je C++ docela efektivní
 * nástroj pro tvorbu firmware. Kód by měl fungovat na F0 Discovery kitu s následujícím
 * pinoutem:
 *
 * -# PA5 - vstup DAC, hlídané napětí.
 * -# PA2 - Relé, aktivní úroveň H.
 * -# PA3 - Povolovací výstup (nemusí být použit, stálá úroveň H - speciální IO pro test to prostě potřeboval).
 * V konstruktoru Filter::Filter() :
 * -# PC8 - modrá led na kitu, bliká s periodou 240 ms, indikuje, že fw žije.
 * -# PC9 - zelená led na kitu, svítí při jednotlivých bitech telegramu.
 *
 * Telegramy se i zde vypisují na sériový port (PA9) s nastavením 8N1, 9600 Bd.
 *
 * */
// Dvě nezávislé třídy se pak spojí v součinnost operátorem +=
static AdcIrq adc (1000, 5);    // 1MHz / 1000 = 1 kHz, kanál 5 (pin PA5)
static Filter hdo (1706);       // Viz calculate

static GpioClass  relay (GpioPortA, 2);         // Relé je na IC-DX
static GpioClass  enabl (GpioPortA, 3);         // a ten potřebuje vybavení.

int main (void) {
  enabl << true;      // Pomocný výstup pro IC-DX, není nutný
  // Nastavit úroveň spínání
  hdo.setTriger (0x20000);
  // Výstupní pin
  hdo.setOutput (&relay);
  // Výkonný povel
  hdo.setCommand("A1B8DP5");
  // Nad adc je hdo - to pokračuje v práci.
  adc += hdo;         // spojit
  // Skonči v nekonečné smyčce.
  for (;;) {
    hdo.Telegram();
    __WFI();          // Lze i uspat jádro, ADC ho včas probudí.
  }
  return 0;
}

já bych si pokusil nahrát do kitu pomocí tohohle,doufám že nepřepíšu paměť s bootloaderu poněvač by to bylo v p****** , nicméně budu řešit dále proč mi to nejde díky



STM32 ST-LINK Utility.jpg
 Komentář:
 Velikost:  181.36 kB
 Zobrazeno:  93 krát

STM32 ST-LINK Utility.jpg


Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
josef_novak



Založen: May 06, 2017
Příspěvky: 787

PříspěvekZaslal: so říjen 01 2022, 20:01    Předmět: Citovat

Tu je celá složka po kompilaci.


hdo.zip
 Komentář:

Stáhnout
 Soubor:  hdo.zip
 Velikost:  181.84 kB
 Staženo:  91 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mahoney



Založen: Oct 26, 2019
Příspěvky: 381

PříspěvekZaslal: ne říjen 02 2022, 17:28    Předmět: Citovat

2josef_novak: To GCC pro ARM máš z repozitáře, nebo je to nějaký externí nástroj? Co máš za distro?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
josef_novak



Založen: May 06, 2017
Příspěvky: 787

PříspěvekZaslal: ne říjen 02 2022, 20:18    Předmět: Citovat

1) Stačí doinstalovat gcc-arm-none-eabi
2) Debian
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
markoni



Založen: Oct 30, 2006
Příspěvky: 2310
Bydliště: Poblíž Zlína

PříspěvekZaslal: po říjen 03 2022, 16:04    Předmět: Citovat

Já mám Atollic v tom IDE jsem dělal před nevím kolika ti lety podle http://mcu.cz/comment-n2058.html . Ty ostatní projekty fungují co jsou bez chyby, taky nevím jestli jsem ten projekt HDO importoval dobře .díky


atollic.jpg
 Komentář:
 Velikost:  230.29 kB
 Zobrazeno:  96 krát

atollic.jpg


Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
markoni



Založen: Oct 30, 2006
Příspěvky: 2310
Bydliště: Poblíž Zlína

PříspěvekZaslal: pá listopad 25 2022, 12:54    Předmět: Citovat

josef_novak napsal(a):
Tu je celá složka po kompilaci.

Já bych potřeboval v souboru main.cpp upravit místo

hdo.setCommand("A1B2DP5");

tak
hdo.setCommand("A1B8DP5");

a znovu to zkompilovat díky předem josef_novak
mě to dělá chybu



chyba kompilace.jpg
 Komentář:
 Velikost:  291.35 kB
 Zobrazeno:  81 krát

chyba kompilace.jpg


Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.17 sekund