Hello, Alexey V Bugrov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Wed, 2 Sep 2009
18:31:19 +0000 (UTC):
AVB>>> Hормальный компилер, использовался во многих проектах.
DO>> Когда я напишу что-то более осмысленное, чем махание ножкой (а это DO>> уже заработало), я обязательно сравню с HiTech. Hо я не столько про DO>> компилятор, сколько про документацию. Кстати, что можно писать DO>> 0b01010101 вместо 85 я тоже в документации не нашел, однако можно.
AVB> 2.7.2 Numeric Constants
AVB> MPLAB C18 supports the standard prefixes for specifying hexadecimal AVB> (0x) and octal
AVB> (0) values and adds support for specifying binary values using the AVB> 0b prefix. For
AVB> example, the value two hundred thirty seven may be denoted as the AVB> binary constant
AVB> 0b11101101.
Значит пропустил. Логично было бы в отличиях от стандарта, расширениях языка такое писать.
AVB>>> Поставить соответсвующую галку в MPLAB.
DO>> Я не пользуюсь MPLAB, я в MED пишу и make'ом (борландовским по DO>> старой памяти) собираю.
AVB> Я тоже мейком собираю, но листинг есть. AVB> $(link) /v /o"$@" /m"$(map)" /l"$(lpath)" "$(lscript)" $(patsubst AVB> %,$(tpath)\\%,$(objects))
AVB>>> Она кажется в закладке линкера, уже не помню.
DO>> Hе понимаю почему листинг компиляции дает линкер. Мне же одного DO>> файла, а не всей программы листинг нужен.
AVB> Какая разница? Пусть будет всей программы, так меньше лазить по AVB> разным файлам + привязка к абсолютным адресам.
Вся программа может быть большой, или ее может вовсе не быть (не собрана еще) а бывает нужен только конкретный кусочек, посмотреть, к примеру, какая из логически равноценных конструкций в лучший код компилируется.
AVB>>> В каталоге компилятора есть папка lkr с примерами скриптов для AVB>>> всех процессоров. Если именно для твоего процессора там нет, AVB>>> значит нужна более свежая версия компилятора или написать руками AVB>>> по образу и подобию.
DO>> Поставил самую свежую, процессор там есть и там таки написано что и DO>> у тебя
AVB> Либо есть ерата на камень, либо просто баг, всякое бывает.
Причем тут камень? Камень у меня давно работает. Эррата на него касается endurace этого eeprom, и я как раз использую этот килобайт для записи меняющихся данных по кругу.
DO>>>> И откуда вообще адрес 0xF00000 взялся?
AVB>>> Из документации на компилятор.
DO>> Тоже сходу не нашел... В HiTech в такие файлы лазить не приходится, DO>> но файл, определяющий конфигурацию процессор там для всех DO>> поддерживаемых один и подробно откомментирован. Кажется и в DO>> документации описан, хотя нужды в этом при наличии комментов в DO>> файле нет.
AVB> Сейчас не поленился и посмотрел - специально про eeprom ничего AVB> отдельно не написано, зато есть раздел
AVB> 2.4.3 ram/rom Qualifiers
Ага, а eeprom - это ram или rom?
AVB> Компилятору безразлично что это за память, он просто там размещает AVB> секцию с определенными аттрибутами. Карта памяти процессора есть в AVB> каком-то другом документе и там же было упоминание про еепром.
Компилятору-то безразлично, а мне - нет. В хорошей документации написано как работать с ресурсами кристалла, для которого этот компилятор сделан. В том числе и как размещать данные в eeprom и как их от туда читать. В HiTech специально оговорен способ "прозрачного", средствами языка доступа к этой памяти, доступа посредством макроса и посредством функции. Я не пользуюсь ни одним из них, а пользуюсь своей функцией, но это мой выбор. А тут вообще EEPROM молчанием обойден, и зачем-то надо в еще какие-то документы лазить, неужели так трудно все в одном месте написать, вместо совершенно бесполезного для embedded программиста формата coff файла, например.
dima
formatting link