Отговори на тема  [ 1 мнение ] 
XC8/Pic18/MPLABX5.50 -поведение на линкера 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 10:22 pm
Мнения: 3074
Мнение XC8/Pic18/MPLABX5.50 -поведение на линкера
Нов проект, съвсем прост-мигалка, стотина байта код .
Никакви указания за линкера - кодът се раполага в най-старшите адреси на флаша. Ако заложа някакви ограничения - граници на РОМа, кодеофсет-
линкерът се подчинява - но пак с тенденции да разполага в старшите адреси на разрешения ром. Като махнах ограниченията - пак го засили към
0xffff. Интересно е и ,че в самото начало се ориентираше към 0x1ffff (mcu-то е със 128кБ).
Друг проект, създаден със сорсове- взети от Codeflow, началният хекс се ориентираше към 0x1000 ( същият Пик-18f87k22, има някакво определение за бут блок с избираем размер 1к или 2к). При опитите с кодеофсет и ограничения - се държеше прилично, но с опити да освободи
колкото може повече адреси между 0 и 0x1000. Премахването на ограниченията върна поведението от началото.
Оригиналнота компилация под Флоукоде също разполага кода от адрес 1000 ( и малко код в началото , адрес 0 - ресет вектор и доста байтове от функцията на прекъсването - може би цялата функция).



В "Properties" на XC8 за двата проекта не виждам нищо , което да задава подобно поведение и съм озадачен.
В папките на XC8 виждам две ексета , eдното pic18cc.exe , предполагам е
същинския тунингован компилатор....който може и да не е много добре тунингован.
Не че е нещо фатално, но ми е странно и ме притеснява. ....

////////
При сорсовете от флоукоде имаше следния проблем

Код:
#define FCP_SET_NODDR(Port, Pin, Value)   \
  #if defined (_LAT##Port##Pin) || defined (_LAT##Port##_LAT##Port##Pin##_POSITION) \
LAT##Port##bits.LAT##Port##Pin = Value;\
#else \
   PORT##Port##bits.R##Port##Pin = Value; \
#endif \


Даваше грешка на първия двоен диез. Oправи се като минах от C99 на С90 и чекнах препроцесорът да работи по правилата на CCS.
Някой може ли да ми разясни кое какво е и защо?
Двойният диез е знак за конкатенация?


Нед Яну 30, 2022 10:27 am
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 1 мнение ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 5 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни