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í 

Arduino IDE a STM32F1xx - problém s voláním uživ. funkcí

 
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
Barbucha54



Založen: Feb 27, 2014
Příspěvky: 29

PříspěvekZaslal: ne prosinec 08 2024, 10:27    Předmět: Arduino IDE a STM32F1xx - problém s voláním uživ. funkcí Citovat

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
asdf



Založen: Oct 06, 2022
Příspěvky: 334

PříspěvekZaslal: ne prosinec 08 2024, 10:46    Předmět: Citovat

Asi bude nejlepší, když sem dáš ten program.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
bdn



Založen: Jan 16, 2020
Příspěvky: 503

PříspěvekZaslal: ne prosinec 08 2024, 19:11    Předmět: Citovat

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áš?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Barbucha54



Založen: Feb 27, 2014
Příspěvky: 29

PříspěvekZaslal: ne prosinec 08 2024, 19:23    Předmět: Citovat

bdn napsal(a):
Tak dej do funkce print("moje funkce");

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é.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
asdf



Založen: Oct 06, 2022
Příspěvky: 334

PříspěvekZaslal: ne prosinec 08 2024, 20:41    Předmět: Citovat

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?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zaky



Založen: Oct 30, 2010
Příspěvky: 6780
Bydliště: Praha

PříspěvekZaslal: po prosinec 09 2024, 7:39    Předmět: Citovat

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...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mahoney



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

PříspěvekZaslal: po prosinec 09 2024, 10:49    Předmět: Citovat

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...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ondraN



Založen: Aug 16, 2022
Příspěvky: 573
Bydliště: Roztoky

PříspěvekZaslal: po prosinec 09 2024, 11:24    Předmět: Citovat

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é.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
mtajovsky



Založen: Sep 19, 2007
Příspěvky: 3700
Bydliště: Praha

PříspěvekZaslal: po prosinec 16 2024, 18:10    Předmět: Citovat

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
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