Zaslal: ne prosinec 08 2024, 10:27 Předmět: Arduino IDE a STM32F1xx - problém s voláním uživ. funkcí
Zdravím vespolek. Narazil jsem na problém v programování STM32F103 pod Arduino IDE. Nadefinovaná funkce není kompilátorm akceptovaná a není zařazena do programu. Tj. pokud nadefinuji funkci, tak jak je to obv v Arduino IDE, kterou pak následně volám z těla programu, vůbec se neprovede. Sice jsme nezkoumal výsledný zdrojový kód, ale soudě podle velikosti vygenerovaného kódu se funkce vůbec nepřeloží. Když pak obsah té samé funkce vložím přímo do těla prograni, instrukce se provedou. Netušíte někdo čím to může být? děkuji za názor.
Tak dej do funkce print("moje funkce"); a hned uvidíš na terminálu, zda se volá nebo né.
Zkoumat podle velikosti kódu, zda se funkce volá nebo nevolá, to já nechápu jak to děláš?
No právě, i když se tam dá výpis prostřednictřvím Serial.print, tak nic nevypíš. Tudíž evidentně se funkce neprovádí a tudíž se asi ani nepřeložila. Posouzení velikosti kódu mám na mysli tak, že nechám zkomlilovat program s fukcí a bez funkce a velikosti jsou cca stejné.
Tak typicky se tohle stává, když tu funkci zapomeneš zavolat. Nebo když to zapomeneš znova přeložit. Ale co víc asi tak poradit, když se nemůžeme na ten kód podívat? Nechceš ho sem dát?
Založen: Oct 30, 2010 Příspěvky: 6780 Bydliště: Praha
Zaslal: po prosinec 09 2024, 7:39 Předmět:
To v dnešní době opravdu někdo dobrovolně pracuje v prostředí, v němž nelze provádět debug? Tedy krokovat program, zastavovat na breakpointech a tak? Proč??? _________________ Krátce před tím, než se to rozbilo, tak to ještě fungovalo...
Zaky, co to je za povzdechy? Každej ať si pracuje v čem chce a jak potřebuje... Já třeba používám debug LED a textový editor, nehledě na to že ne každý čip vždy podporuje HW debug - ale hlavně jde o to, že nemůžeš druhým brát svobodu, co je dobré pro tebe, nemusí vždy být dobré pro druhého...
Založen: Aug 16, 2022 Příspěvky: 573 Bydliště: Roztoky
Zaslal: po prosinec 09 2024, 11:24 Předmět:
Taky je možné, že se ta funkce volá ve větvi, která se nikdy nemůže provést z logických důvodů a překladač to v rámci optimalizace vyhodí. Jak už ale napsali předchůdci, bez toho kódu ti nikdo moc víc než obecné rady nedá.
P.S. Typicky vznikají chyby v tom, že třeba v podmínce if se zapomene při porovnání druhé =
např. if(x=0) namísto if(x==0)
Oba příkazy jsou přitom syntakticky správné ale logicky úplně jiné. A ten první se nikdy nevykoná, tak překladač odstraní kód pro splnění podmínky(dosadí se do x nula a výsledek je vždy false). Druhý se vykoná když je x nulové.
Založen: Sep 19, 2007 Příspěvky: 3700 Bydliště: Praha
Zaslal: po prosinec 16 2024, 18:10 Předmět:
Tak ať si každý zvolí prostředí jaké mu vyhovuje, ale zrovna STčka HW debug podporují a debugger ST Link stojí pár šupů. A pokud se k tomu přidá dnes již vyspělé CUBE a TrueStudio nebo rovnou CUBE IDE nemá to chybu. A pak se jeden nemusí peklovat s prostředím, které mu nedá odpověď, proč to nefunguje.
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
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.