Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

C18 - проблем със статична променлива
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=13323
Страница 1 от 1

Автор:  marcuka68 [ Чет Ное 06, 2014 4:24 pm ]
Заглавие:  C18 - проблем със статична променлива

Здравейте! Отново странни неща стават с кода ми. Преди да отида да обядвам, всичко работеше, както се очаква. Като се върнах и препрограмирах отново, static променливите взеха да не искат да се инициализират и са само с нулева стойност. PIC18F45K22. Единственото, което съм пипал, са настройките на програматора - PIC Kit3. Това се наложи, понеже го дадох на колегата за малко и после не успях да се свържа с него, в MPLAB 8.хх. Ресетнах му настроиките в MPLABX и се свързах, след което проблемите започнаха.
Не знам, възможно ли е да съм пипнал нещо по настроиките на средата, което да ми е скапало нещата? Всякакви идеи са добре дошли, благодаря предварително на отзовалите се.

Прикачени файлове:
Problem.JPG
Problem.JPG [ 59 KiB | Прегледано 2689 пъти ]

Автор:  marcuka68 [ Чет Ное 06, 2014 5:30 pm ]
Заглавие:  Re: C18 - проблем със статична променлива

Нещата се оправиха по още по-странен начин - като компилирам сорса, в MPLABX. Но пък тук не се поддържа extended mode и кодът винаги е доста по-голям. Това може да се дължи и на включени опции в процеса на компилация, които не успявам да променя: -ms -oa- -o-.
Има ли някои, които вече се е занимавал с подобни проблеми?

Автор:  [ Чет Ное 06, 2014 10:37 pm ]
Заглавие:  Re: C18 - проблем със статична променлива

Как разбра, че в MPLAB X не се поддържа extended mode за PIC18 ?? Това си е опция на компилатора.
Ако забравиш да зададеш правилния linker-ски файл може да ти изплюва някакво съобщение,
че не се поддържа, но иначе extended mode си работи, поне от пролетта на 2013г.

Когато настанат такива главоблъсканици най-изпитаното решение е да започнеш с нов проект от нулата.

Автор:  marcuka68 [ Пет Ное 07, 2014 10:32 am ]
Заглавие:  Re: C18 - проблем със статична променлива

Ами при опита ми да го пусна в extened mode, средата ми се скара, потърсих в интернет и там пишеше, че този режим не се поддържа в MPLABX. Сигурно съм прочел нещо старо или е отговорил някой, който е знаел колкото мен. Прикачил съм настроиките на компилатора, с които опитах да компилирам в extended mode. Със същия линкерски файл, в MPLAB8 се компилира. Дали знаеш къде бъркам?
Ти кои компилатор ползваш за ПИК16/18?

Прикачени файлове:
Extended.JPG
Extended.JPG [ 229.06 KiB | Прегледано 2586 пъти ]
Linker.JPG
Linker.JPG [ 51.14 KiB | Прегледано 2586 пъти ]

Автор:  [ Пет Ное 07, 2014 2:58 pm ]
Заглавие:  Re: C18 - проблем със статична променлива

Компилатора не ти дава грешка, а линкера, доколкото виждам. Компилатора разпечатва предупреждение, че "default access RAM is not supported in extended mode", което си го пише в документацията на процесора, потърси extended mode описанието, за да видиш какво не можеш да правиш в този режим. Най-вероятно имаш някаква променлива, която си дефинирал в default access RAM ( може би си използвал "near" спецификатор ? ) , а в extended mode не можеш да имаш променливи дефинирани в default access RAM.

Не помня коя версия съм използвал, беше миналата година. Ще погледна по-късно, процесора беше PIC18F4580.

Автор:  marcuka68 [ Пет Ное 07, 2014 3:24 pm ]
Заглавие:  Re: C18 - проблем със статична променлива

Сега, като помислих, не мога да ползвам extended mode, защото ползвам лайт версията на компилатора. А по-рано ми се стори, че компилиран с MPLABX кодът е по-голям, защото там изразходваната ФЛАШ памет е в байтове, а в MPLAB8 е в думи.

Автор:  relsys [ Пет Ное 07, 2014 3:53 pm ]
Заглавие:  Re: C18 - проблем със статична променлива

Ех, тая изразходвана памет....

Изразходваното време е по - ценно ми се струва. 18F45K22 има 32К. Ако толкова не ти стига памет, винаги можеш да минеш на 46К22, там има 64К.
В крайна сметка, вече има и MZ с 2 МБ :D , поне 5 години ще ти отнеме да го напълниш с писане :)

Автор:  marcuka68 [ Пет Ное 07, 2014 3:59 pm ]
Заглавие:  Re: C18 - проблем със статична променлива

relsys написа:
Ех, тая изразходвана памет....

Изразходваното време е по - ценно ми се струва. 18F45K22 има 32К. Ако толкова не ти стига памет, винаги можеш да минеш на 46К22, там има 64К.
В крайна сметка, вече има и MZ с 2 МБ :D , поне 5 години ще ти отнеме да го напълниш с писане :)


Имаш право, по-ценно е времето, ама знам ли, утре може да я запълня паметта, та ми се иска да знам това-онова, ако се наложи.

Автор:  marcuka68 [ Пет Ное 07, 2014 6:43 pm ]
Заглавие:  Re: C18 - проблем със статична променлива

marcuka68 написа:
Сега, като помислих, не мога да ползвам extended mode, защото ползвам лайт версията на компилатора. А по-рано ми се стори, че компилиран с MPLABX кодът е по-голям, защото там изразходваната ФЛАШ памет е в байтове, а в MPLAB8 е в думи.



Леко взех да пиша глупости - не е причината, че компилаторът ми е лайт версия, нали в МПЛАБ8 се компилира с разрешен разширен режим. Прегледах за употреба на near променлива из кода. Имаше само rom такава. Е, както се вижда, за сега ще си карам без разширения режим. Хайде, че е петък вечер! :)

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/