Компилятор PICC V9.83, От HI-TECH |
Здравствуйте, гость ( Вход | Регистрация )
Компилятор PICC V9.83, От HI-TECH |
5.12.2011, 10:25
Сообщение
#1
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
В принципе, компилятор хороший, судя по дизассемблерному листингу.
Но только в режиме PRO. В режиме Lite он начисто забывает о существовании доброго десятка полезных команд. Среди них: incf, decf, decfsz и заодно практически все новые команды от свежих PIC10/12/16. Кроме этого, в режиме Lite он достаточно забавно транслирует операторы if, for и прочие аналогичные, вставляя кучу промежуточных goto. В режиме PRO ничего такого нет. В результате код в режиме Lite получается значительно длиннее и медленнее, чем в режиме PRO, о чем фирмачи честно предупреждают. Но, дальше - самое интересное - устранение косяков Lite версии в PRO выдается за оптимизацию и за офигительное достижение фирмы HI-TECH. Ну, чтобы информация была полной - Lite версия free, а PRO приблизительно 1000$. И тут возникает ряд вопросов: 1. И не лень было специалистам HI-TECH специально фаршмачить в угоду маркетингу? 2. Определите национальность руководства фирмы HI-TECH. 3. Они что, своих пользователей держат за полных придурков, которые не в состоянии заглянуть в дизассемблерный листинг? PS. ПМСМ, такое приветствоваться не должно. Поэтому есть идеи по этому поводу. О них можно поговорить отдельно в известном месте. Если кто желает, могу поделиться. |
|
|
Гость_MrYuran_* |
5.12.2011, 11:47
Сообщение
#2
|
Гости |
PS. ПМСМ, такое приветствоваться не должно. Поэтому есть идеи по этому поводу. Путя тут два. 1) послать мелкочипов с ихними поделиями и маркетинговыми изысками. 2) если не подходит п.1, то пилить самостоятельно back-end для GNU GCC (SDCC вроде с младшими пиками работал) А вообще, сильно подозреваю, что "про" от "непро" отличается набором ключиков компилятора. |
|
|
5.12.2011, 12:46
Сообщение
#3
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
О них можно поговорить отдельно в известном месте. Если кто желает, могу поделиться. Ладно, пощли, поговорим. А то мне как раз их советовал один друг. Заодно про MikroEl стоит поговорить. C виду они мне нравятся. Хоть бы примерами, которых не нашел в Mplab , зато нашел вместо них пару странных огрызков ненужного мне кода. |
|
|
5.12.2011, 17:25
Сообщение
#4
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
|
|
|
5.12.2011, 18:26
Сообщение
#5
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
|
|
|
6.12.2011, 10:42
Сообщение
#6
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
Поясните тогда, что применяется для младших PIC-ов? И в чем там дебилизм? 2. Дебилизм в хронических расхождениях с С99 и кол-ве багофич. В 2009 наелся, хватит. 1. SDCC либо Pic Micro Pascal для pic18 пользуюсь микрочиповским - с Вашей же подачи поставил все переменные статик - радуюсь уже полтора года. За что и спасибо. |
|
|
6.12.2011, 12:19
Сообщение
#7
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
2. Дебилизм в хронических расхождениях с С99 и кол-ве багофич. В 2009 наелся, хватит. 1. SDCC либо Pic Micro Pascal для pic18 пользуюсь микрочиповским - с Вашей же подачи поставил все переменные статик - радуюсь уже полтора года. За что и спасибо. простите ламера, переменные static - это чтобы стек не мучить? Или просто избегать ошибок при распределении-выделении памяти? Или, опять же, скорость увеличить за счет того же? Что до Паскаля - это интересно. Неудобно было признаться, но я в нем умею, еще со старых пор. И он мне приятен, тем что хоть и больше набирать тексту, но набранное заметнее гораздо. То есть меньше риска пропустить какую-то закорючку и тебя (ТУТ ЖЕ!!!) неправильно поймут. Как-то определеннее он, что ли. Помнится, Протел был на чем-то типа этого написан, возможно, на Дельфи. Ну ничо так, работал... Неизвестно, на чем AD теперь... Да, так вот, кто-то еще скажет о Паскале пару теплых слов? |
|
|
Гость_MrYuran_* |
6.12.2011, 12:24
Сообщение
#8
|
Гости |
|
|
|
6.12.2011, 12:58
Сообщение
#9
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
|
|
|
Гость_MrYuran_* |
6.12.2011, 13:05
Сообщение
#10
|
Гости |
Для пиков ещё некий товарищ пытался сделать мелкофреймворк и программировать на C# в мелкостудии.
Правда, нынче сайт проекта лежит на боку... |
|
|
6.12.2011, 13:30
Сообщение
#11
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Для пиков ещё некий товарищ пытался сделать мелкофреймворк и программировать на C# в мелкостудии. Правда, нынче сайт проекта лежит на боку... Это фтопку. Нам бы чего поопределеннее, поближе к железу. И однозначное такое, не допускающее многократных толкований. |
|
|
Гость_MrYuran_* |
6.12.2011, 14:44
Сообщение
#12
|
Гости |
Нам бы чего поопределеннее, поближе к железу. А я так наоборот, отгораживаюсь от железа как только могу. Слишком уж часто и непредсказуемо оно меняется. В идеале было бы писать, тестить и отлаживать на ПЦ, а потом окончательно финальный тест на МК. Но это опять отдельная и увесистая тема. И опять в неопределённом светлом будущем (которое имеет тенденцию так и не наступать) |
|
|
6.12.2011, 18:04
Сообщение
#13
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
простите ламера, переменные static - это чтобы стек не мучить? Или просто избегать ошибок при распределении-выделении памяти? Или, опять же, скорость увеличить за счет того же? Вы правы. Static - это из-за особенностей архитектуры PIC18 и программного стека MCC18. Если переменная локальная, то она размещается в программном стеке. Все переменные, объявленные в программе main(), являются локальными по отношению к ней. И тут начинается возня с программным стеком MCC18, отличающаяся затратами кода. У PIС24 уже есть аппаратная поддержка стека и там следование стандарту ANSI C не приводит к затратам кода. Возвращаясь к PIC18. Если объявить переменную с квалификатором static, то она будет иметь абсолютный адрес. А это, с учетом особенностей архитектуры PIC18, приводит к минимальному коду. |
|
|
6.12.2011, 18:36
Сообщение
#14
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
|
|
|
6.12.2011, 19:07
Сообщение
#15
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
О, даже и в main? Ну это еще хуже, чем я думал... Похоже на глюк. Хотя, если разобраться - нормально, main тоже всего лишь функция. Если мне не изменяет склероз, то это требование стандарта. Глобальные переменные объявляются либо в отдельном заголовочном файле, либо до функции main(). В последней версии MCC18 они по умолчанию - статические. |
|
|
6.12.2011, 19:20
Сообщение
#16
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
|
|
|
6.12.2011, 19:51
Сообщение
#17
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
|
|
|
6.12.2011, 20:13
Сообщение
#18
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
Прошу Вас изложить инструкции по применению SDCC. Если это не отнимет у Вас много времени. Якши. 1. Читаем бегло хрень 2. Заглядываем в доку на компилер - какие там ключики 3. Пишем makefile 4. Добиваемся совместимости с mpasm Конкретнее - я к утречку выложу, нада ж подготовить примеры и шоб работало. |
|
|
6.12.2011, 20:24
Сообщение
#19
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Якши. 1. Читаем бегло хрень 2. Заглядываем в доку на компилер - какие там ключики 3. Пишем makefile 4. Добиваемся совместимости с mpasm Конкретнее - я к утречку выложу, нада ж подготовить примеры и шоб работало. А, что? К MPLAB, или иной IDE не прикручивается? Только через makefile? |
|
|
6.12.2011, 20:44
Сообщение
#20
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
А, что? К MPLAB, или иной IDE не прикручивается? Только через makefile? Я не пробовал, ибо это было до "дружбы" с mplab-c18, мыкфайл не пугал особо Нынче пишут Цитата apparently sdcc is not fully supported yet Плагин вроде под эклипс был... или нет? не помню. Есть под C::B пошаговое руководство. Линуховых под PIKLAB - не пробовал. Как-то так. Не был. Не состоял. Не участвовал. PS wiki for SDCC under C::B |
|
|
Текстовая версия | Сейчас: 28.3.2024, 20:58 |