Читаем Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С полностью

Напомнив Вам основные моменты структурного подхода к процессу написания исходного кода и его отладке, рассмотрим процесс превращения файла исходного кода на Си в файл исполняемого кода для определенного типа микроконтроллера. Мы рассмотрим эту технологию с использованием интегрированной среды разработки ICC12 версии 6.12B от компании ImageCraft. Если Вы используете программную среду разработки от другого производителя, то этот материал не будет для Вас бесполезным, поскольку принципы преобразования кодов в процессе создания исполняемого модуля прикладной программы одинаковы для всех аналогичных программных продуктов.

Рис. 3.1. Интерфейс пользователя интегрированной среды разработки ICC12

На рис. 3.1 представлен интерфейс пользователя (картинка на экране монитора), возникающая при запуске среды ICC12. Большое пустое окно в центре экрана предназначено для ввода и редактирования исходного текста программы на Си. Окно меньшего размера в правой части экрана — окно менеджера проектов. Оно предназначено для отображения списка всех используемых в текущем проекте файлов. Окно состояния в нижней части экрана предназначено для отображения текущей информации о режимах работы и состоянии обрабатываемых в среде файлов. В этом окне будут выводиться сообщения об ошибках, возникающих при работе программ компилятора, Ассемблера, линковщика и загрузчика/программатора в процессе обработки файлов текущего проекта. Теоретически, для ввода и редактирования файлов исходного текста программ могут быть использованы любые текстовые редакторы, однако программные продукты класса «интегрированная среда разработки» обязательно содержат собственный редактор текста, которым и следует воспользоваться. Пакет ICC12, как и любая другая интегрированная среда разработки, предоставляет программисту удобный интерфейс пользователя для работы с встроенными в среду программами компилятора, Ассемблера, линковщика, загрузчика и программатора. Каждая из программ может быть запущена на исполнение, как из контекстного меню, так и с помощью кнопок на панели управления. На рис. 3.2 показан интерфейс пользователя среды ICC12 с текстом программы в окне редактирования и сообщениями о результатах ее компиляции в окне состояния.

Рис. 3.2. Интерфейс пользователя интегрированной среды разработки ICC12

В окне редактирования загружен файл исходного текста программы на Си. 

В окне состояния сообщение об успешной компиляции этого файла.

После того, как исходный текст программы написан и находится в окне редактирования, файл программы должен быть обработан препроцессором компилятора Си. Препроцессор – это часть программы компилятора, которая анализирует выражения в исходном тексте, которые начинаются с символа «#». Вспомните, с этого символа начинаются директивы подключения заголовочных файлов, директивы условной компиляции и директивы для объявления подпрограмм прерывания. Если препроцессор не зафиксировал синтаксических ошибок, то вступает в работу синтаксический анализатор и генератор ассемблерного текста компилятора Си. В результате, после обработки компилятором исходного текста программы на Си, будет получен текст исходной программы на языке Ассемблера для данного типа МК. В нашем случае это МК семейства 68HC12. Сгенерированный компилятором текст будет содержать как мнемоники команд ассемблера МК данного семейства, так и псевдокоманды и директивы для программы Ассемблер в составе пакета ICC12. Смысловые названия и шаблоны имен входных и выходных файлов компилятора Си для среды ICC12 приведены на рис. 3.3. Программы компиляторов, которые способны генерировать инструкции языка ассемблера для процессорного ядра, отличающегося (т.е. программно несовместимо) от ядра, на котором программа компилятора исполняется, называют кросс-компилятора ми. Так в нашем случае программа кросс-компилятора, исполняемая на персональном компьютере, генерирует ассемблерный текст для МК 68HC12.

Рис. 3.3. Последовательность работы программ в процессе генерации файла исполняемого кода прикладной программы

Исходный текст программы не обязательно должен быть написан на Си. Однако его написание на языке ассемблера для больших задач приводит к большому числу ошибок, что требует длительного процесса отладки. В проектах, которые связаны с программным обслуживанием быстропротекающих процессов, целесообразно наиболее критичные по времени исполнения фрагменты программы писать на ассемблере, в то время, как основную часть программы — на Си. Компиляторы Си допускают объединение этих двух языков в файле исходного текста программы.

Полученный после обработки программой компилятора файл прикладной программы далее обрабатывается программой Ассемблер. Эта программа преобразует файл программы в файл объектного кода с расширением «o» (см. рис. 3.3).

Перейти на страницу:

Похожие книги

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных