Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Области действия переменных и подпрограммСодержание книги
Поиск на нашем сайте Любой объект, который объявляется в программе, написанной на языке программирования C‑51, имеет область действия. В языке программирования C область действия объекта распространяется на всю программу, то есть любой объект является глобальным. К объектам запрещено обращение до того, как они будут объявлены, поэтому при обращении к объекту, объявленному в другом программном модуле этот объект должен быть объявлен в данном программном модуле как external. Например: extern char code ERROR []; /*Строка сообщения об ошибке */extern struct mrec current; /* Текущее измерение */extern struct interval setinterval; /* Значения установленных интервалов */extern struct interval counter; /* Счетчик интервалов */ При использовании внутри модуля переменной, уже объявленной в другом модуле, могут возникнуть проблемы при связывании программы. Если использование переменной с тем же именем, что и в другом модуле делает программу более наглядной, то можно в одном из модулей (или во всех сразу) с атрибутом static. Например: static int i; //Глобальная переменная, недоступная из других модулей //(а значит и не мешающая им) void tmp(void){i=5;} Некоторые блоки могут содержать структурные операторы, как показано в следующих примерах. Использование внутренних блоков позволяет объявлять локальные переменные. Использование локальных переменных позволяет использовать одни и те же ячейки памяти для различных переменных и тем самым экономить ресурсы памяти данных. Локальные переменные существуют только в пределах структурного оператора. Если внутри структурного оператора были присвоены локальным переменным какие-то значения, то не следует ожидать, что вернувшись снова в этот оператор, переменные сохранят присвоенные ранее или вычисленные значения. Пример 1:
Пример 2:
В случае, если требуется сохранить значение переменных и при повторном вхождении в подпрограмму или структурный оператор, эту переменную необходимо объявить с атрибутом static. Например: void tmp(void){static int i=5;} То же самое относится и к подпрограммам. Если требуется объявить подпрограмму, которая не должна быть видна из других модулей, то ее необходимо объявить с атрибутом static. Это кроме прочего приведет к тому, что если эта подпрограмма не используется и в данном модуле, то она просто не будет транслироваться и занимать место в памяти программ. Пример объявления подпрограммы с атрибутом static: static void tmp(void){i=5;} Иногда требуется локальные переменные хранить не в одних и тех же ячейках памяти, а в стеке. Это требуется, например, при вызове подпрограммы самой из себя. В таком случае подпрограмма должна быть объявлена как reentrant. Теперь, после краткого знакомства с языком программирования С‑51, давайте познакомимся с процессом написания программ. Как уже мы упоминали в начале книги, программы пишутся в интегрированной среде программирования. Знакомству с такой средой программирования и будет посвящена следующая часть книги.
Глава 23. Язык программирования ASM‑51 Язык программирования АSM‑51поддерживает модульное написание программ. Графическое изображение процесса разработки программы на языке программирования ASM-51 приведено на рис. 23.1.
Рис. 23.1. Схема процесса написания программы на языке программирования ASM-51 Файл, в котором хранится программа, написанная на языке АSM‑51 (исходный текст программы), называется исходным модулем. Его можно создать, используя любой текстовый редактор. Для файла исходного текста программы принято использовать следующие расширения: asm, a51, srs, s51. Получить объектный модуль можно, указав имя исходного модуля программы в качестве параметра вызова программы-транслятора в DOS-строке или строке командного файла: asm51.exe modul.asm Получить исполняемый модульпрограммы можно, указав все имена объектных модулей программы в качестве параметров вызова программы-редактора связей в DOS-строке или строке командного файла: bl51.exe main.obj, modul1.obj, modul2.obj Имя исполняемого модуля программы по умолчанию совпадает с именем первого объектного файла в списке параметров строки запуска редактора связей. Исполняемый модуль программы записывается в файл c именем, но без расширения. Большинство программаторов не может работать с объектным форматом исполняемого модуля программы, поэтому для загрузки машинного кода в микроконтроллер необходимо преобразовать объектный формат исполняемого модуля в общепринятый для программаторов HEX-формат. При таком преобразовании вся отладочная информация, содержащаяся в исполняемом модуле, теряется. Машинный код процессора, записанный в HEX-формате, называется загрузочным модулем. Загрузочный модуль программы можно получить при помощи программы-преобразователя oh.exe, передав ей при вызове в качестве параметра имя файла исполняемого модуля, например: oh.exe main
Рис. 23.2. Пример системы отладки программного обеспечения для микроконтроллеров. После того, как программные модули успешно оттранслированы, размещены по конкретным адресам и связаны между собой, для отладки программы можно воспользоваться внутрисхемным эмулятором. Это инструментальное средство позволяет отображать переменные программы на дисплее персонального компьютера и оказывает значительную помощь при отладке программ непосредственно на разрабатываемой аппаратуре. Необходимое для отладки программ оборудование показано на рис. 23.2. Отдельные участки программы могут быть отлажены и при помощи специальных программ-отладчиков (симуляторов). Как эмуляторы, так и симуляторы предназначены для обнаружения логических ошибок, содержащихся в исходном тексте программы, поэтому после обнаружения ошибки приходится исправлять исходный текст и заново транслировать его для получения исправленной версии исполняемого или загрузочного модуля. Тем не менее, окончательная отладка программного обеспечения для разрабатываемого устройства производится только после записи загрузочного модуля в память микроконтроллерной системы. Именно на этом этапе находятся и устраняются последние ошибки, допущенные при написании программы.
|
||
|
Последнее изменение этой страницы: 2017-02-07; просмотров: 282; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.214 (0.01 с.) |