Оптимизирующий кросс-компилятор C51.

Язык C - универсальный язык программирования, который обеспечивает эффективность кода, элементы структурного программирования и имеет богатый набор операторов. Универсальность, отсутствие ограничений реализации делают язык C удобным и эффективным средством программирования для широкого разнообразия задач. Множество прикладных программ может быть написано легче и эффективнее на языке C, чем на других более специализированных языках.

C51 - полная реализация стандарта ANSI (Американского национального института стандартов), насколько это возможно для архитектуры Intel 8051. C51 генерирует код для всего семейства микроконтроллеров Intel 8051. Транслятор сочетает гибкость программирования на языке C с эффективностью кода и быстродействием ассемблера.

Использование языка высокого уровня C имеет следующие преимущества над программированием на ассемблере:

8. глубокого знания системы команд процессора не требуется, элементарное знание архитектуры Intel 8051 желательно, но не необходимо;

9. распределение регистров и способы адресации управляются полностью транслятором;

10. лучшая читаемость программы, используются ключевые слова и функции, которые более свойственны человеческой мысли;

11. время разработки программ и их отладки значительно короче в сравнении с программированием на ассемблере;

12. библиотечные файлы содержат много стандартных подпрограмм, которые могут быть включены в прикладную программу;

13. существующие программы могут многократно использоваться в новых программах, используя модульные методы программирования.

Макроассемблер A51.

Ассемблер A51 совместим с ASM51 Intel для всего семейства микроконтроллеров Intel 8051. Ассемблер транслирует символическую мнемонику в перемещаемый объектный код, имеющий высокое быстродействие и малый размер. Макросредства ускоряют разработку и экономят время, поскольку общие последовательности могут быть разработаны только один раз. Ассемблер поддерживает символический доступ ко всем элементам микроконтроллера и перестраивает конфигурацию для каждой разновидности Intel 8051.

A51 транслирует исходный файл ассемблера в перемещаемый объектный модуль. При отладке или при включенной опции “Include debugging information” этот объектный файл будет содержать полную символическую информацию для отладчика/имитатора или внутрисхемного эмулятора.

Компоновщик L51.

Компоновщик объединяет один или несколько объектных модулей в одну исполняемую программу. Компоновщик размещает внешние и общие ссылки, назначает абсолютные адреса перемещаемым сегментам программ. Он может обрабатывать объектные модули, созданные транслятором C51, ассемблером A51, транслятором PL/M-51 Intel и ассемблером ASM51 Intel.

Компоновщик автоматически выбирает соответствующие библиотеки поддержки и связывает только требуемые модули из библиотек. Установки по умолчанию для L51 выбраны так, чтобы они подходили для большинства прикладных программ, но можно определить и заказные установки.

9.2.4.Отладчик/симулятор WinSim51.

Отладчик исходных текстов используется с транслятором C51, ассемблером A51, транслятором PL/M-51 Intel и ассемблером ASM51 Intel. Отладчик/симулятор позволяет моделировать большинство особенностей Intel 8051 без наличия аппаратных средств. Можно использовать его для проверки и отладки прикладной программы прежде, чем будут изготовлены аппаратные средства. При этом моделируется широкое разнообразие периферийных устройств, включая последовательный порт, внешний ввод - вывод и таймеры.

Быстрый старт.

“Быстрый старт” – это обычный приём разработчиков современных программных средств. Цель состоит в том, чтобы, не углубляясь пока в подробности, дать новичку или достаточно опытному пользователю первое представление о программном средстве, дать возможность быстро получить конкретный результат. Полное представление, знания и умения появятся позже в процессе работы и изучения справочных материалов.

В качестве примера возьмём простейшую программу, с которой начинают изучение языков программирования многие поколения студентов. “Hello World” - программа из папки \Fsi\Examples\Hello\, которая выдаёт в последовательный порт (UART) микроконтроллера строку символов “Hello World” (“Привет Мир”). Весь исходный текст программы содержится в файле hello.c:

 

/***************************/

/* YOUR FIRST 8051 PROGRAM */

/***************************/

 

#include <reg51.h> /* special function register declarations */

/* for the intended 8051 derivative */

#include <stdio.h> /* prototype declarations for I/O functions*/

/****************/

 

/* main program */

/****************/

 

void main (void) { /* execution starts here after stack init */

SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */

TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */

TH1 = 0xf3; /* TH1: reload value for 2400 baud */

TR1 = 1; /* TR1: timer 1 run */

TI = 1; /* TI: set TI to send first char of UART*/

printf ("Hello World\n"); /* the 'printf' function call */

while (1) { /* An embedded program does not stop and */

; /* ... */ /* never returns. We've used an endless */

} /* loop. You may wish to put in your own */

} /* code were we've printed the dots (...) */

 

Прежде чем начать разработку проекта, скопируйте папку \Fsi\Examples\Hello\ в свою личную папку. В этой папке находится всего лишь один файл hello.c.








Дата добавления: 2016-03-27; просмотров: 1272;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.