Podivná chyba v MPLABu

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
forbidden
Příspěvky: 8808
Registrován: 14 úno 2005, 01:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

Podivná chyba v MPLABu

#1 Příspěvek 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
Přílohy
novej MPLAB
novej MPLAB
původní MPLAB
původní MPLAB

Uživatelský avatar
MiloPS3
Příspěvky: 259
Registrován: 07 srp 2010, 02:00

#2 Příspěvek 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...

Uživatelský avatar
bdn
Příspěvky: 436
Registrován: 16 led 2020, 01:00

#3 Příspěvek 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.

Uživatelský avatar
forbidden
Příspěvky: 8808
Registrován: 14 úno 2005, 01:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#4 Příspěvek 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.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#5 Příspěvek 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á.

Uživatelský avatar
forbidden
Příspěvky: 8808
Registrován: 14 úno 2005, 01:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#6 Příspěvek 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.

Uživatelský avatar
forbidden
Příspěvky: 8808
Registrován: 14 úno 2005, 01:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#7 Příspěvek 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.
Přílohy
config.gif
config
(36.22 KiB) Staženo 145 x

Uživatelský avatar
voitano
Příspěvky: 466
Registrován: 02 pro 2009, 01:00

#8 Příspěvek 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......

Wolfik
Příspěvky: 1076
Registrován: 28 črc 2009, 02:00

#9 Příspěvek od Wolfik »

Jó občas se hodí vědět, co se děje pod pokličkou při překladu... :lol:

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“