Все проекты |
Как раздобыть и установить |
- | |
Чтобы написать программу на Си, естественно, первым делом надо раздобыть компилятор. Компиляторов есть на любой вкус, лично я пользуюсь IAR. Скачать его можно на сайте http://iar.com , правда, дистрибутив весомый - порядка 90 Мб последняя версия. Перед скачиванием вам будет предложено заполнить форму - заполняйте, это ни к чему не обязывает, да и по указанному в форме email-у вам пришлют ключик для установки триальной версии (будет работать месяц). Итак, компилятор скачан и установлен. Запускаем, открываем наш первый проект (File - Open - Workspace). Рассмотрим на его примере необходимые установки. Итак, в окошке workspace делаем правый клик на верхней строчке и выбираем "options". |
|||
1)Тут указывается тип МК, для которого будет строиться программа. Сразу замечу, что в текст программы все равно должен быть включен файл описаний для этого МК. 2)Ниже - модель памяти - если у вас совсем мало переменных, можно вместо Small установить Tiny - построенный код будет чуточку компактнее. Впрочем, совсем чутотку. Поэтому сразу ставим Small 3)По умолчанию ставится галочка ручного конфигурирования - убрать ее. |
![]() |
||
Следующая закладка. Тут я советую просто очистить имена директориев. По умолчанию в папке проекта создаются подпапки типа debug/executable и т.д, что смысла особого не имеет, только искать требуемое сложнее. Возможно, при больших проектах... Но нам это не надо. |
![]() |
||
Следующая закладка. Я всегда выбираю Normal DLIB. Не вдаваясь в подробности библиотек, просто сделаем то же самое. |
![]() |
||
Вкладки Library option, Heap configuration оставляем как есть. На вкладке System ставим галочку Enable bit definition - по умолчанию она почему-то выключена. А это значит что нельзя применять имена бит в регистрах. Вообще непонятно зачем такое надо.
Вкладку MISRA не трогаем, переходим к собственно компилятору |
![]() |
||
По умолчанию тут стоит просто C, ставим Embedded C++ . |
![]() |
||
Оптимизация. Тут можно немножко "поиграться". На картинке - стандартно используемый мною вариант. Если хочется поработать с симулятором или поразбираться в листинге - то оптимизацию выбирайте Medium, Low или вообще None. Код станет длинее, дистинг - читабельнее. Для рабочей программы, особенно когда она достаточно велика, лучше ставить High. А вот Cross call я ставлю только когда размер памяти сильно прижимает - потому что тогда листинг зачастую совсем малоразборчив. Компилятор тогда выискивает всевозможные повторы и выносит их в подпрограммы. Но код позволяет ужать достаточно заметно. |
![]() |
||
Листинг - включаем. Ведь нам наверняка захочется посмотреть, что собственно генерит компилятор на написанные нами строки команд. Весьма познавательно. Советую изучать.
|
![]() |
||
Это для возможности хранить свои include файлы в папке проекта. Ну с компилятором вроде все, теперь линкер. |
![]() |
||
Первые вкладки оставляем как есть - все что нам нужно касательно выходного файла мы укажем в последней. Запрет предупреждения w35 - убирает занудливую ругань по поводу имен бит. Сути не понял, похоже, просто какой-то глюк. |
![]() |
||
Листинг линкера - MAP файл. Установите указанную конфигурацию - она позволит в дальнейшем использовать имена переменных в realtime отладчике. |
![]() |
||
Здесь линкеру указываются имена выходных файлов для собственно прошивки и EEPROM. |
![]() |
||
Ну вот вроде и все. Если что-то все же оказалось непонятным - пишите, разберемся, поправим. Удачи! |