Воскресенье, 16.12.2018
Андрей Захаров
Меню сайта
Наш опрос
Оцените мой сайт
Всего ответов: 72

Статистика

Рейтинг@Mail.ru

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Радио
turbo51_2     Начало работы

Turbo51 - консольное приложение, поэтому работать в эмуляторе ДОС с ним не  очень-то удобно. Возможно, из-за этого у кого-то могут возникнуть сомнения по  поводу использования компилятора. Но все не так плохо, даже наоборот. Проблема  легко решается с помощью  текстового  редактора PSPad, который позволяет запускать  внешние программы с командной строки,  что делает комбинацию PSPad + Turbo51  удобной средой разработки программ для  микроконтроллеров  MCS-51 на языке Паскаль. 
Поэтому не нужно бояться, все достаточно просто и  приятно.
Естественно, перед началом работы нужно скачать указанные программы:

Turbo51 можно также скачать ОТСЮДА.

Установку редактора производим обычным порядком. Тут есть одна заморочка, о которой я сейчас расскажу. Выше приведена ссылка на скачивание редактора PSPad последней текущей версии, но я рекомендую скачать более раннюю версию: Скачать PSPad 4.5.3Дело в том, что, как будет описано ниже, при запуске компиляции программы в нижней части экрана монитора появляется окно, отображающее поток сообщений от компилятора. Это окно редактора, который перехватывает этот поток и  выводит в собственном окне. Но есть разница в отображении версиями 4.5.3 и 4.5.4. Если версия 4.5.3 сама прокручивает сообщения и завершает вывод отображением последнего, то версия 4.5.4 прокрутку не производит, приходится делать это вручную, что неудобно. А важно видеть именно последние строки сообщений, поскольку в них присутствует информация о длине кода, используемом объеме памяти и результатах компиляции, в том числе об обнаруженных ошибках.

Распаковываем архив с Turbo51 в директорию, какую определим и создадим сами. В этой  директории мы  имеем два подкаталога: Bin и Rtl, которые содержат нужные нам файлы,  а именно:
Turbo51.exe
Turbo51.L51
System.U51
i8032.pas
i8032.inc.
Файлы i8032.pas и i8032.inc необходимы, если мы программируем микроконтроллер с  расширениями MCS52,  в частности, для работы с таймером/счетчиком 2. В них же можно  зарезервировать и  другие имена  регистров  специальных функций, если используется  микроконтроллер,  имеющий какие-то дополнительные регистры. В подкаталоге ABS  содержатся файлы,  необходимые в том случае,  если у нас  наверняка объем программы  не  превысит 2К и мы хотим  несколько сэкономить память программ, используя AJMP и ACALL  вместо LJMP и LCALL.  Я этот  вариант не использую.  Для начала, чтобы не заморачиваться с путями, которые можно определить в командной  строке, просто  копируем перечисленные файлы в каталог нашего проекта, где они будут  размещаться  вместе с файлами исходных текстов нашей программы и модулей.
Теперь запускаем редактор PSPad, настраиваем подсветку по шаблону Object Pascal, выбрав цвета, которые нам нравятся, и создаем файл программы с расширением pas. Окно редактора будет выглядеть примерно так:


Затем создаем и сохраняем файлы нужных нам модулей, не забыв сохранить проект. Теперь пора заняться компилированием программы. Для этого ищем кнопочку


и нажимаем ее.
В результате появляется окно "Командная строка".


Прописываем командную строку и путь к каталогу, содержащему наш проект, выбираем все checkbox, нажимаем кнопку Ok, и тут же начинается процесс компиляции, при этом в нижней части окна программы появляется дополнительное окно, которое отображает поток сообщений ДОС от компилятора.
В командной строке должны содержаться:
- спецификация файла Turbo51.exe
- ключи программы
- спецификация файла нашей программы.
Назначение ключей можно и нужно изучить по документации.


Все окно редактора будет выглядеть примерно так:


Ну, а теперь все в ваших руках - отладка ...

В общем, по описанной схеме я вначале и работал, но потом появилось множество модулей, которые использовались разными программами. Естественно, эти модули время от времени подвергались модернизации, поэтому приходилось следить за их обновлением в каждом  каталоге  проектов,  что весьма  затруднительно. Как я уже отметил, по указанной схеме  ВСЕ файлы,  включая Turbo51, хранились в  одном каталоге. Когда мне это надоело, я поступил  следующим  образом, благо, компилятор позволяет  это сделать. Я создал каталог C:\Turbo51, который в числе прочего содержал подкаталог C:\Turbo51\Bin,  который,  в свою очередь, содержал файлы и два каталога  C:\Turbo51\Bin\Unit и  C:\Turbo51\Bin\Inc.


В первом я разместил файлы исходных текстов моих модулей, во втором - тексты включаемых файлов. Естественно, командная строка сильно удлинилась, так как в ней были прописаны пути к указанным директориям. Чтобы не набирать каждый раз эту длинную строку, я разместил ее в тексте программы как комментарий, а затем, в начале каждого сеанса работы копировал эту строку в "Команда" окна "Командная строка".
Примерно так выглядит командная строка с указанием путей:
c:\turbo51\bin\turbo51 -h -a -o -b -g -uc:\turbo51\bin -uc:\turbo51\bin\unit -ic:\turbo51\bin\inc c:\turbo51\pol9a\pol9a,
где ключ -u определяет путь к модулям (Unit), а ключ -i путь к включаемым файлам.
В данном случае модули находятся в каталогах c:\turbo51\bin и c:\turbo51\bin\unit, а включаемые файлы в каталоге c:\turbo51\bin\inc. c:\turbo51\pol9a\pol9a - путь к файлу моей программы.

Компиляцию программы в составе проекта можно производить еще более удобным способом. Через меню "Проект" - "Параметры проекта" открываем окно "Параметры проекта" и выбираем закладку "Компилятор":


В строке "Компилятор" прописываем или выбираем путь и имя файла Turbo51.exe,
в строке "Параметры" прописываем параметры командной строки компилятора,
в строке "Папка по умолчанию" выбираем каталог (скорее всего, это каталог проекта), в который будут помещаться выходные файлы программы. 
Выбираем все СheckBox.
Закрываем окно "Параметры проекта", а затем нажимаем кнопочку
или комбинацию клавиш Ctrl F9 и производим компиляцию.
Этот метод хорош тем, что параметры командной строки сохраняются в проекте.


По ссылке можно скачать основной файл программы для примера с расписанными заготовками подпрограмм обработки прерываний stenc.pas.




Синтаксис командной строки компилятора:

OptionDescription
-AГенерировать ассемблерный файл
-BПерекомпилировать все модули
-CПоказывать номер не только строки, но и столбца с ошибкой
-DDefine conditionals
-EКаталог вывода BIN/HEX/U51/OMF
-FНайти исходную строку по адресу
-GГенерировать файл map
-HГенерировать файл Intel HEX
-IЗадать каталог с включаемыми файлами
-JЗадать каталог объектного файла
-LAИспользовать библиотеку Turbo51A.l51
-MМодифицировать модули
-MGУстановить по умолчанию тип памяти для глобальных переменных (type = D, I or X)
-MLУстановить по умолчанию тип памяти для локальных переменных (type = D, I or X)
-MPУстановить по умолчанию тип памяти для параметрических переменных (type = D, I or X)
-MTУстановить по умолчанию тип памяти для временных переменных (type = D, I or X)
-OГенерировать файл OMF-51
-OXГенерировать расширенный файл OMF-51 (needed for source-level debugging)
-QБыстрая компиляция
-SПроверять синтаксис
-TL51/CFG directory
-UЗадать каталог с файлами модулей
-$Command line compiler switch

Поиск


Календарь
«  Декабрь 2018  »
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
24252627282930
31

Точное время

Погода
Ставрополь
Архипо-Осиповка
Домбай
Екатеринбург
               
      
          


Визиты
Сайт существует
Калькулятор
Copyright Andrew © 2018
Яндекс.Метрика