Компилятор PICC V9.83, От HI-TECH |
Здравствуйте, гость ( Вход | Регистрация )
Компилятор PICC V9.83, От HI-TECH |
7.12.2011, 8:20
Сообщение
#21
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
Еще ресурс полезный
Я тут покопался, за 2,5 года много воды утекло. Сразу н найдешь. Сейчас убегаю, но к данному вопросу вернусь обязательно. Тем более, что sdcc 3.1 хотелось потестить. |
|
|
Гость_MrYuran_* |
7.12.2011, 8:43
Сообщение
#22
|
Гости |
Только через makefile? Это как первый секс Сначала необычно, потом привыкаешь. Кроме makefile есть ещё другой подход- scons (Software CONStructor). Питоноскрипт. (Паша не одобрит) А я вот уже ни за какие коврижки не доверю такой интимный процесс, как сборку прошивки, какому-то автоматическому буилдеру, т.к. секс все равно возможен, но уже нетрадиционный... |
|
|
7.12.2011, 9:46
Сообщение
#23
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Это как первый секс Сначала необычно, потом привыкаешь. Кроме makefile есть ещё другой подход- scons (Software CONStructor). Питоноскрипт. (Паша не одобрит) А я вот уже ни за какие коврижки не доверю такой интимный процесс, как сборку прошивки, какому-то автоматическому буилдеру, т.к. секс все равно возможен, но уже нетрадиционный... Я начинал с Электроники60 и ОС RT11, если кто помнит. Там все было через файлы с ключами, только называлось это по-другому. А окончательную сборку я гоняю в симуляторе в виде дизассемблированного дампа. Там все косяки видно сразу. И если, что-то не нравится, я комфортно переключаю нужные рюшечки. А не судорожно копошусь в тексте, ища один-единственный символ... Поэтому makefile у меня может иметь место, если компилятор будет хорош и бесплатен. MPLAB позволяет работать и в таком режиме. |
|
|
7.12.2011, 10:05
Сообщение
#24
|
|
Adept Группа: Пользователи Сообщений: 522 Регистрация: 20.4.2011 Из: Novosibirsk Пользователь №: 346 |
Это как первый секс Сначала необычно, потом привыкаешь. Я так и не привык. :( Кроме makefile есть ещё другой подход- scons (Software CONStructor). Питоноскрипт. (Паша не одобрит) +100500! Уже лет пять-шесть как не нарадуюсь. Про make вспоминаю как про страшный сон. Или когда жизнь заставляет. А я вот уже ни за какие коврижки не доверю такой интимный процесс, как сборку прошивки, какому-то автоматическому буилдеру, т.к. секс все равно возможен, но уже нетрадиционный... Сборка из оболочки хороша для попробовать или для быстрого поднятия проекта на незнакомой платформе. Потом, конечно, надо переходить на привычные рельсы (хороший редактор + хорошая система сборки). |
|
|
7.12.2011, 13:41
Сообщение
#25
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Подтвердите, господа, мои опасения.
Сборка, вот эта вот о которой все говорят — это обязательно? То есть, если есть всего один файл - все равно надо? Понятно, что хедеры как бы все равно участвуют. Но самому непременно надо разбивать проект на много много маленьких кусочков, для получения удовольствия от склеивания? Или, если проект небольшой, можно этого не делать? Потому что все эти ключи к компилятору... Там и так не могу разобраться, получается что написать инструкцию для сборки, по сути, как еще одну программу что ли... Завидую тем, кто такой умный. |
|
|
Гость_MrYuran_* |
7.12.2011, 15:07
Сообщение
#26
|
Гости |
получается что написать инструкцию для сборки, по сути, как еще одну программу что ли... Завидую тем, кто такой умный. Не программу, а сценарий. Сборка происходит в любом случае, независимо от количества исходных файлов. Идея раздельной компиляции проста до безобразия. Каждый файл (модуль) компилируется отдельно, в результате получается .obj, представляющий собой откомпилированные фрагменты кода с символическими ссылками вместо связей. Второй этап - собственно сборка (линковка). Линкер собирает эти откомпилированные кусочки, располагает их по конкретным адресам и вместо ссылок прописывает непосредственные связи. Автоматический сборщик делает тоже так, но в его работу вмешаться невозможно. В то время как ручной вариант полностью под контролем разработчика. А самое главное - абсолютная независимость от среды разработки. Хоть в блокноте рисуй. |
|
|
7.12.2011, 17:00
Сообщение
#27
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
|
|
|
Гость_MrYuran_* |
8.12.2011, 7:26
Сообщение
#28
|
Гости |
На самом деле - ничего этого не надо. В большинстве наших с Вами случаев. Ещё один плюс - волей-неволей приходится в конце концов открыть документацию на компилятор. И внезапно узнать много нового и интересного. Ну да ладно, не буду уже утомлять... Я для себя уже давно выбрал GCC. Как ИАРовцы не скажут, "one tool, more platforms" |
|
|
8.12.2011, 12:52
Сообщение
#29
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
Ещё один плюс - волей-неволей приходится в конце концов открыть документацию на компилятор. И внезапно узнать много нового и интересного. Например? Читал неоднократно. Пришел в ужас - от количества опций рябит в глазах, и каждый раз одна из них может вообще иначе все скомпилировать. Сделать программу нерабочей или неправильно рабочей. Все это ради того, чтобы иметь возможность хранить наработки, рассчитанные под разные варианты применения и складывать их как кубики? Это точно надо на среднее семейство ПИК, когда вся программа в 2 к укладывается максимум, а то и пару сот бит? И обязательно надо вслепую складывать кубики? мне кажется? просмотреть их на предмет соответствия условиям (камню, и что там еще) — перед компиляцией вручную — полезнее. Ну, в общем, примера хочу. Производительность — как-то могу понять. Желание иметь независимость от камня - понять могу. Но исполнение этого желания надо думать, не от нас зависит. лучше бы подстраховаться, нет? |
|
|
8.12.2011, 17:23
Сообщение
#30
|
|
Adept Группа: Пользователи Сообщений: 522 Регистрация: 20.4.2011 Из: Novosibirsk Пользователь №: 346 |
Например? Читал неоднократно. Пришел в ужас - от количества опций рябит в глазах, и каждый раз одна из них может вообще иначе все скомпилировать. Сделать программу нерабочей или неправильно рабочей. Вы преувеличиваете. Реально там всего несколько ключей основных вроде задающих уровень оптимизации и подобного. А остальные вспомогательные - пути, форматы промежуточных файлов и т.д. Совсем не сложно на самом деле. Надо просто попробовать. С простого. Или с примера, благо их есть полно подо всё, что угодно. |
|
|
8.12.2011, 19:15
Сообщение
#31
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Например? Читал неоднократно. Пришел в ужас - от количества опций рябит в глазах, и каждый раз одна из них может вообще иначе все скомпилировать. Сделать программу нерабочей или неправильно рабочей. В принципе, если все написано правильно, то такого быть не должно. Программа должна работать при всех уровнях оптимизации. Еще один аспект, на который обычно обращают внимание - это, так называемый startup, т. е. некий код, предшествующий Вашей программе. Все это ради того, чтобы иметь возможность хранить наработки, рассчитанные под разные варианты применения и складывать их как кубики? Это точно надо на среднее семейство ПИК, когда вся программа в 2 к укладывается максимум, а то и пару сот бит? Полезно, но необходимостью не является. Можно старым дедовским копипастом. Желание иметь независимость от камня - понять могу. Но исполнение этого желания надо думать, не от нас зависит. лучше бы подстраховаться, нет? Полная независимость от камня невозможна. А зачастую она требует значительного оверхеда. Ещё один плюс - волей-неволей приходится в конце концов открыть документацию на компилятор. И внезапно узнать много нового и интересного. Я всегда вдумчиво просматриваю документацию на компиляторы АСМ, С и Линкер. Особенно в разделе ключей. И что мешает в IDE быстро нащелкать рюшечками желаемую комбинацию ключей и убедиться в том, что все правильно, посмотрев на получившийся результат в виде командной строки? Если говорить об MPLAB-е, то он выводит все командные строки для всех включенных в дело программ. Для MCC18 их 3 штуки - C компилятор, Ассемблер и Компоновщик. |
|
|
10.12.2011, 0:56
Сообщение
#32
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
тссс....тише не спугните... замигал первый в жизни светодиодик.
теперь тихонечно тихонечно модифицируем эту маленькую тест-программку... И сразу писать проект, ну тот самый... Бо времени нету катастрофически. |
|
|
10.12.2011, 16:31
Сообщение
#33
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
Всё, песец!
Обещал сдцц мэйкфайл, оно сырое мама не горюй. Психанул, пишу свой удобный вариант, только их 4, по числу платформ. А мне 51-е понадобились.. |
|
|
11.12.2011, 14:55
Сообщение
#34
|
|
сундук Группа: Пользователи Сообщений: 4043 Регистрация: 21.11.2009 Из: Ростов-на Дону Пользователь №: 15 |
Всё, песец! Обещал сдцц мэйкфайл, оно сырое мама не горюй. Психанул, пишу свой удобный вариант, только их 4, по числу платформ. А мне 51-е понадобились.. Есть результаты по реальному применению сабжа темы. Результаты оптимизации - 5-. Качество ассемблерного кода - 5 (в режиме PRO). Изделие гонялось 8 часов с порчей сети инвертором в 6 кВт. Замечаний к работе МК и программы нет. Если кому нужны инструкции по установке и применению - их есть у меня. |
|
|
19.12.2011, 9:31
Сообщение
#35
|
|
ЕРЖ-антисемит Группа: Пользователи Сообщений: 1900 Регистрация: 24.11.2009 Из: Великий Новгород Пользователь №: 23 |
Не знаю, врёт товарищ или нет, но забавно получается. http://ithappens.ru/story/8049
|
|
|
Гость_MrYuran_* |
19.12.2011, 10:03
Сообщение
#36
|
Гости |
Не знаю, врёт товарищ или нет, но забавно получается. http://ithappens.ru/story/8049 У Криса Касперски в книжке по оптимизации подобный пример был, только на "взрослом" процессоре, с выходом за границы выравнивания кэша. Помню тему на элхе, где программу для DSP-процессора оптимизировали по скорости в десятки (!) раз. |
|
|
19.12.2011, 19:46
Сообщение
#37
|
|
ДИКТАТОР Группа: Мод Сообщений: 23809 Регистрация: 20.11.2009 Из: Житомир Пользователь №: 3 |
У Криса Касперски в книжке по оптимизации подобный пример был, только на "взрослом" процессоре, с выходом за границы выравнивания кэша. Помню тему на элхе, где программу для DSP-процессора оптимизировали по скорости в десятки (!) раз. А где это в «невзрослых процессорах» сиречь МК , 32 бита читаются за одно обращение? Хотя да, вроде есть такие уже... |
|
|
20.12.2011, 8:40
Сообщение
#38
|
|
тот самый Группа: Мод Сообщений: 13629 Регистрация: 24.11.2009 Из: Харьковская обл., UA Пользователь №: 25 |
Не знаю, врёт товарищ или нет, но забавно получается. http://ithappens.ru/story/8049 А нехрен generic types напрямую использовать! Хотя бы, через stdint.h |
|
|
Гость_MrYuran_* |
20.12.2011, 8:55
Сообщение
#39
|
Гости |
|
|
|
Текстовая версия | Сейчас: 28.3.2024, 23:09 |