Смещение: Содержимое файла (в 16-ричном формате):
00000000: 00000074 Смещение к именам файлов
00000004: 0000001А
00000008: 09
00000009: 02
0000000A: 415652204F626A6563742046696C6500 Cтрока A0F
0000001А: 000000Е10500000В00 Первая запись
00000023: 000001950200000C01
0000002С: 000002950300000C01
00000035: 000003E40000000D00
0000003Е: 000004950200000Е01
00000047: 000005950300000Е01
00000050: 000006CFF900000F00
00000059: 000007950А01000400
00000062: 000008F3F101000500
0000006В: 000009950801000600 Последняя запись
00000074: 4F424A5F44454D4F2E41534D00 "0BJ_DEM0.ASH\0"
00000081: 44454С41592Е41534D00 "DELAY.ASM\0"
0000008В: 00 Конец объектного файла
4.2. Компилятор языка С CodeVision AVR
CodeVision представляет собой кросс-компилятор языка С, графическую оболочку и автоматический генератор программ, ориентированные на работу с семейством микроконтроллеров AVR фирмы Atmel. Внешний вид окна программы показан на рис. 4.5.
Рис. 4.5.
Программа представляет собой 32-разрядное приложение для работы в операционных системах Windows 95, 98, NT4.0 и 2000.
Кросс-компилятор включает в себя почти все элементы, соответствующие стандарту ANSI. Также в компилятор включены дополнительные возможности, ориентированные на использование архитектурных особенностей микроконтроллеров этого семейства и встроенных систем в целом.
Объектные файлы COFF позволяют осуществлять отладку программ с просмотром содержимого переменных. Для этого следует применять свободно распространяемый фирмой Atmel (www.atmel.com) отладчик AVR Studio debugger версии 3.5 или более поздний.
Для отладки систем, использующих последовательную передачу данных, в графической оболочке имеется встроенный Terminal.
Кроме стандартных библиотек языка С, компилятор имеет библиотеки для работы с:
• ЖКИ индикаторами со встроенным контроллером;
• шиной I2C фирмы Philips;
• датчиком температуры LM75 фирмы National Semiconductor;
• часами реального времени PCF8563 и РС8583 фирмы Philips, DS1302 и DS1307 фирмы Dallas Semiconductor;
• однопроводным протоколом фирмы Dallas Semiconductor;
• датчиками температуры DS1820 и DS1822 фирмы Dallas Semiconductor;
• датчиком температуры/термостатом DS1621 фирмы Dallas Semiconductor;
• памятью EEPROM DS2430 и DS2433 фирмы Dallas Semiconductor;
• шиной SPI;
• управлением режимами пониженного потребления энергии;
• временными задержками.
Также в CodeVision имеется автоматический генератор программ, который позволяет в течение считанных минут получить готовый код для следующих функций:
• настройка доступа к внешней памяти;
• определение источника прерывания Reset;
• инициализация портов ввода/вывода;
• инициализация внешних прерываний;
• инициализация таймеров/счетчиков;
• инициализация сторожевого таймера;
• инициализация UART;
• инициализация аналогового компаратора;
• инициализация встроенного АЦП;
• инициализация интерфейса SPI;
• инициализация поддерживаемых библиотеками CodeVision микросхем, работающих с однопроводным интерфейсом и шиной I2С;
• инициализация модуля ЖКИ-индикатора со встроенным контроллером.
Среда CodeVision AVR включает в себя программное обеспечение для работы с совместимым с платой STK200 программатором. После компиляции исходной программы на языке С полученный код может быть непосредственно запрограммирован в микроконтроллер. Этот программатор использует всего четыре сигнала: MOSI, MISO, SCK, RESET. Известно много простейших программаторов, соединяющихся с последовательным или параллельным портом IBM совместимого персонального компьютера.
Читателям предлагается на примере простейшей схемы познакомиться с применением демонстрационной версии компилятора языка С CodeVisionAVR, Для этого придется изготовить простой совместимый с STK200 кабель внутрисхемного программирования и несложную схему с микроконтроллером AT90S2313. В итоге проделанную работу можно будет проверить, запустив простую программу на языке С.
На рис. 4.6 показана электрическая принципиальная схема кабеля. Микросхема 74НС244 представляет собой буфер с тремя состояниями на выходах, что позволяет избежать влияния кабеля на схему после программирования микроконтроллера, не отключая кабеля.