IPB

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Компилятор 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





Гости






Цитата(Прохожий @ 5.12.2011, 12:25) *
PS. ПМСМ, такое приветствоваться не должно.
Поэтому есть идеи по этому поводу.

Путя тут два.
1) послать мелкочипов с ихними поделиями и маркетинговыми изысками.
2) если не подходит п.1, то пилить самостоятельно back-end для GNU GCC (SDCC вроде с младшими пиками работал)

А вообще, сильно подозреваю, что "про" от "непро" отличается набором ключиков компилятора.
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 5.12.2011, 12:46
Сообщение #3


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 23809
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(Прохожий @ 5.12.2011, 11:25) *
О них можно поговорить отдельно в известном месте.
Если кто желает, могу поделиться.

Ладно, пощли, поговорим.
А то мне как раз их советовал один друг.
Заодно про MikroEl стоит поговорить.
C виду они мне нравятся.
Хоть бы примерами, которых не нашел в Mplab , зато нашел вместо
них пару странных огрызков ненужного мне кода.
Перейти в начало страницы
 
+Цитировать сообщение
_pasha
сообщение 5.12.2011, 17:25
Сообщение #4


тот самый
Иконка группы

Группа: Мод
Сообщений: 13629
Регистрация: 24.11.2009
Из: Харьковская обл., UA
Пользователь №: 25



Цитата(orthodox @ 5.12.2011, 12:46) *
про MikroEl стоит поговорить.

Стоит.
Нахуй они нужны?
ЗЫ сабж тоже. HI-TECH - ацтой, пугающий пуганых своим видавшим виды дебилизмом.
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 5.12.2011, 18:26
Сообщение #5


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(_pasha @ 5.12.2011, 18:25) *
Стоит.
Нахуй они нужны?
ЗЫ сабж тоже. HI-TECH - ацтой, пугающий пуганых своим видавшим виды дебилизмом.

Поясните тогда, что применяется для младших PIC-ов?
И в чем там дебилизм?
Перейти в начало страницы
 
+Цитировать сообщение
_pasha
сообщение 6.12.2011, 10:42
Сообщение #6


тот самый
Иконка группы

Группа: Мод
Сообщений: 13629
Регистрация: 24.11.2009
Из: Харьковская обл., UA
Пользователь №: 25



Цитата(Прохожий @ 5.12.2011, 18:26) *
Поясните тогда, что применяется для младших PIC-ов?
И в чем там дебилизм?

2. Дебилизм в хронических расхождениях с С99 и кол-ве багофич. В 2009 наелся, хватит.
1. SDCC либо Pic Micro Pascal
для pic18 пользуюсь микрочиповским - с Вашей же подачи поставил все переменные статик - радуюсь уже полтора года. За что и спасибо.smile.gif
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 6.12.2011, 12:19
Сообщение #7


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 23809
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(_pasha @ 6.12.2011, 11:42) *
2. Дебилизм в хронических расхождениях с С99 и кол-ве багофич. В 2009 наелся, хватит.
1. SDCC либо Pic Micro Pascal
для pic18 пользуюсь микрочиповским - с Вашей же подачи поставил все переменные статик - радуюсь уже полтора года. За что и спасибо.smile.gif

простите ламера, переменные static - это чтобы стек не мучить?
Или просто избегать ошибок при распределении-выделении памяти?
Или, опять же, скорость увеличить за счет того же?

Что до Паскаля - это интересно.
Неудобно было признаться, но я в нем умею, еще со старых пор.
И он мне приятен, тем что хоть и больше набирать тексту, но набранное заметнее гораздо.
То есть меньше риска пропустить какую-то закорючку и тебя (ТУТ ЖЕ!!!) неправильно поймут.
Как-то определеннее он, что ли. Помнится, Протел был на чем-то типа этого написан, возможно, на Дельфи.
Ну ничо так, работал... Неизвестно, на чем AD теперь...

Да, так вот, кто-то еще скажет о Паскале пару теплых слов?
Перейти в начало страницы
 
+Цитировать сообщение
Гость_MrYuran_*
сообщение 6.12.2011, 12:24
Сообщение #8





Гости






Цитата(orthodox @ 6.12.2011, 14:19) *
Да, так вот, кто-то еще скажет о Паскале пару теплых слов?

Предельный случай - язык АДА.
(Наши в ответ придумали язык РАЯ, но это совсем другая история...)
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 6.12.2011, 12:58
Сообщение #9


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 23809
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(MrYuran @ 6.12.2011, 13:24) *
Предельный случай - язык АДА.
(Наши в ответ придумали язык РАЯ, но это совсем другая история...)

Предельные случаи и для Си можно выдумать.
Однако Паскаль построже был раньше, похоже что и сейчас тоже.
Перейти в начало страницы
 
+Цитировать сообщение
Гость_MrYuran_*
сообщение 6.12.2011, 13:05
Сообщение #10





Гости






Для пиков ещё некий товарищ пытался сделать мелкофреймворк и программировать на C# в мелкостудии.
Правда, нынче сайт проекта лежит на боку...
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 6.12.2011, 13:30
Сообщение #11


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 23809
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(MrYuran @ 6.12.2011, 14:05) *
Для пиков ещё некий товарищ пытался сделать мелкофреймворк и программировать на C# в мелкостудии.
Правда, нынче сайт проекта лежит на боку...

Это фтопку.
Нам бы чего поопределеннее, поближе к железу.
И однозначное такое, не допускающее многократных толкований.
Перейти в начало страницы
 
+Цитировать сообщение
Гость_MrYuran_*
сообщение 6.12.2011, 14:44
Сообщение #12





Гости






Цитата(orthodox @ 6.12.2011, 15:30) *
Нам бы чего поопределеннее, поближе к железу.

А я так наоборот, отгораживаюсь от железа как только могу.
Слишком уж часто и непредсказуемо оно меняется.
В идеале было бы писать, тестить и отлаживать на ПЦ, а потом окончательно финальный тест на МК.
Но это опять отдельная и увесистая тема.
И опять в неопределённом светлом будущем (которое имеет тенденцию так и не наступать)
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 6.12.2011, 18:04
Сообщение #13


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(orthodox @ 6.12.2011, 14:19) *
простите ламера, переменные static - это чтобы стек не мучить?
Или просто избегать ошибок при распределении-выделении памяти?
Или, опять же, скорость увеличить за счет того же?

Вы правы.
Static - это из-за особенностей архитектуры PIC18 и программного стека MCC18.
Если переменная локальная, то она размещается в программном стеке.
Все переменные, объявленные в программе main(), являются локальными по отношению к ней.
И тут начинается возня с программным стеком MCC18, отличающаяся затратами кода.
У PIС24 уже есть аппаратная поддержка стека и там следование стандарту ANSI C не приводит к затратам кода.
Возвращаясь к PIC18.
Если объявить переменную с квалификатором static, то она будет иметь абсолютный адрес.
А это, с учетом особенностей архитектуры PIC18, приводит к минимальному коду.
Перейти в начало страницы
 
+Цитировать сообщение
orthodox
сообщение 6.12.2011, 18:36
Сообщение #14


ДИКТАТОР
Иконка группы

Группа: Мод
Сообщений: 23809
Регистрация: 20.11.2009
Из: Житомир
Пользователь №: 3



Цитата(Прохожий @ 6.12.2011, 19:04) *
Все переменные, объявленные в программе main(), являются локальными по отношению к ней.

О, даже и в main? Ну это еще хуже, чем я думал... Похоже на глюк.
Хотя, если разобраться - нормально, main тоже всего лишь функция.
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 6.12.2011, 19:07
Сообщение #15


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(orthodox @ 6.12.2011, 20:36) *
О, даже и в main? Ну это еще хуже, чем я думал... Похоже на глюк.
Хотя, если разобраться - нормально, main тоже всего лишь функция.

Если мне не изменяет склероз, то это требование стандарта.
Глобальные переменные объявляются либо в отдельном заголовочном файле, либо до функции main().
В последней версии MCC18 они по умолчанию - статические.
Перейти в начало страницы
 
+Цитировать сообщение
_pasha
сообщение 6.12.2011, 19:20
Сообщение #16


тот самый
Иконка группы

Группа: Мод
Сообщений: 13629
Регистрация: 24.11.2009
Из: Харьковская обл., UA
Пользователь №: 25



Цитата(orthodox @ 6.12.2011, 18:36) *
О, даже и в main? Ну это еще хуже, чем я думал... Похоже на глюк.
Хотя, если разобраться - нормально, main тоже всего лишь функция.

Это паскаль как раз и давит на мозг своими иррегулярностями - главный begin end. не рассматривается как процедура.
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 6.12.2011, 19:51
Сообщение #17


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(_pasha @ 6.12.2011, 21:20) *
Это паскаль как раз и давит на мозг своими иррегулярностями - главный begin end. не рассматривается как процедура.

Прошу Вас изложить инструкции по применению SDCC.
Если это не отнимет у Вас много времени.
Перейти в начало страницы
 
+Цитировать сообщение
_pasha
сообщение 6.12.2011, 20:13
Сообщение #18


тот самый
Иконка группы

Группа: Мод
Сообщений: 13629
Регистрация: 24.11.2009
Из: Харьковская обл., UA
Пользователь №: 25



Цитата(Прохожий @ 6.12.2011, 19:51) *
Прошу Вас изложить инструкции по применению SDCC.
Если это не отнимет у Вас много времени.

Якши.
1. Читаем бегло хрень
2. Заглядываем в доку на компилер - какие там ключики
3. Пишем makefile
4. Добиваемся совместимости с mpasm

Конкретнее - я к утречку выложу, нада ж подготовить примеры и шоб работало. pardon.gif
Перейти в начало страницы
 
+Цитировать сообщение
Прохожий
сообщение 6.12.2011, 20:24
Сообщение #19


сундук
***

Группа: Пользователи
Сообщений: 4043
Регистрация: 21.11.2009
Из: Ростов-на Дону
Пользователь №: 15



Цитата(_pasha @ 6.12.2011, 22:13) *
Якши.
1. Читаем бегло хрень
2. Заглядываем в доку на компилер - какие там ключики
3. Пишем makefile
4. Добиваемся совместимости с mpasm

Конкретнее - я к утречку выложу, нада ж подготовить примеры и шоб работало. pardon.gif

А, что? К MPLAB, или иной IDE не прикручивается?
Только через makefile?
Перейти в начало страницы
 
+Цитировать сообщение
_pasha
сообщение 6.12.2011, 20:44
Сообщение #20


тот самый
Иконка группы

Группа: Мод
Сообщений: 13629
Регистрация: 24.11.2009
Из: Харьковская обл., UA
Пользователь №: 25



Цитата(Прохожий @ 6.12.2011, 20:24) *
А, что? К MPLAB, или иной IDE не прикручивается?
Только через makefile?

Я не пробовал, ибо это было до "дружбы" с mplab-c18, мыкфайл не пугал особо

Нынче пишут
Цитата
apparently sdcc is not fully supported yet


Плагин вроде под эклипс был... или нет? не помню.
Есть под C::B пошаговое руководство.
Линуховых под PIKLAB - не пробовал.
Как-то так. Не был. Не состоял. Не участвовал.
PS
wiki for SDCC under C::B
Перейти в начало страницы
 
+Цитировать сообщение

2 страниц V   1 2 >
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.3.2024, 22:52