Stránka 1 z 1

Podivná chyba v MPLABu

Napsal: 18 črc 2020, 12:42
od forbidden
Psal jsem program ve starší verzi 3.45, všechno fungovalo jak mělo. Program zabíral ani ne polovinu místa v paměti. Pak jsem ale kvůli novýmu programátoru přešel na novější verzi 5.35 a začly se dít věci. Program najednou zabírá skoro dvojnásobek, při kompilaci spousty warningů a navrch nefunguje správně.
Zkoušel jsem i založit novej projekt a do něj naimportovat původní netknutý soubory ze starýho a je to úplně stejný. Jakmile dám kompilaci, strašně naroste velikost a hotovo. Zdrojových souborů jsem se ani nedotknul. Nechápu, co se děje. XC8 kompiler se taky měnil z 1.38 na 2.1.
Netuší někdo co s tím?

Dík

Napsal: 18 črc 2020, 16:13
od MiloPS3
sice ti nepomuzu a asi tohle nechces slyset , mam PK 2/3 a nepouzivam je pres mplab ,jakejkoliv,pouzivam je pres ty samotny aplikace co sou k nim, a asi mas na mysli MPLAB X ? podle screenu, porad jedu pres MPLAB 8.92 a nahravam hex pres ty aplikace, pokud uz teda musim ale nechci pouzit MPLAB X tak nahravam pres MPLAB IPE, IPE by melo umet i ten PK4.... , pokud pojde neni duvod pouzivat novejsi MPLABX...

Napsal: 18 črc 2020, 18:51
od bdn
- Zkus se podívat s jakými parametry optimalizace IDE spouští kompilátor. Např. u Atmel Studio 7.0 je to zhruba -O1, -O2, -O3 nebo -Os. Stejný kód po kompilaci udělá jinou velikost výstupního .hex

- Zkus stáhnout nějaký jednoduchý příklad od Microchipu z jejich AN a zkompilovat. Zda ti to bude dělat stejný problém.

Napsal: 18 črc 2020, 22:12
od forbidden
2 MiloPS3: dřív jsem to taky dělal takto, PICkit2 nijak zvlášť s MPLABem nespolupracoval, ale protože jsem chtěl zkusit něco novějšího, musel jsem koupit PICkit4. Ten už žádnou separátní aplikaci, kromě IPE, nemá.
Zkusím asi nejdřív kouknout na ty parametry, co psal bdn. Pak nahraju tu starší XC8 a uvidíme. Když nic nepomůže, tak napíšu úplně jednoduchej program na testy a budu do něj přidávat části toho mýho, někde to možná pak významně nabude a budu alespoň vědět, co se mu kde nelíbí. V nejhorším mám schovanou tu starší verzi, kde jsem to rozepsal.
Ono to i přes tu velikost v podstatě funguje, jen z nějakýho důvodu blbne čtení z EEPROM, to musím ještě vyzkoušet, kde je problém. Možná to s tím vůbec nesouvisí.
Jinak je to MPLAB X a musím teda říct, že i když mi celkem vyhovuje, má to nějaký mouchy. Občas háže nesmyslný chyby v kódu třeba a jiný. Na webu je těch much popsaných dost.

Napsal: 20 črc 2020, 10:59
od FHonza
A nezměnily se s novou verzí i standardní knihovny ? Vyzkoušel bych přeložit nějaký "Hello world" ve staré a nové verzi. Hned bude vidět jestli to tím není. Za nárůstem také může být zarovnání v paměti, ale to se asi nepoužívá.

Napsal: 20 črc 2020, 11:09
od forbidden
To je klidně možný, že se změnily, uvidíme. I v té starší verzi jsem zaznamenal podivný nenadálý změny velikosti při některých příkazech. Třeba blbý printf, když vypisuju jeden řetězec, chová se to dobře, ale když v rámci jednoho příkazu vypisuju dva řetězce, nesmyslně naroste spotřeba paměti programu. Jak bude čas, vrhnu se na to.

Napsal: 13 srp 2020, 21:12
od forbidden
Tak jsem na to přišel, stačilo v configu XC8 změnit standard C99 na C90. Starší MPLAB asi ani C99 neuměl, zbavil jsem se tím taky nesmyslných (podle mě) warningů při překladu. Taky jsem dal navrdo optimalizaci na velikost a teď je to dokonce ještě i menší, než ve staré verzi.

Napsal: 22 zář 2020, 19:11
od voitano
Mám pocit, že se vývojáři začínají v tech gigabajtech instalací ztrácet, momentálně jsem po dlouhé době zkusil v mplabx a ipe programátoru zapnout pickit3(klon), Win7 ho jakž takž vidí, ale oba programy ani náhodou.

Když jsem nainstaloval staré verze z dob XP - programátor pickit 3.1 nebo mplab 8.9, tak ty je vidí a pracují. Asi se po nějakém win updatu někde něco podělalo......

Napsal: 23 zář 2020, 15:47
od Wolfik
Jó občas se hodí vědět, co se děje pod pokličkou při překladu... :lol: