ORANGE - универсальный программатор микросхем Serial EEPROM

     

Hardware Programming Language) разработан специально




20.01.2003

    Язык HPL ( Hardware Programming Language) разработан специально для описания низкоуровневых протоколов обмена с различными устройствами.

Рассмотрим реализацию языка HPL в трансляторе программатора Orange.
Cимволом (*) обозначены примеры в данном документе.
Cимволом (W) обозначены операторы и команды, поддерживаемые только Windows версией.

Символ ';' является признаком комментария - конец строки начиная с этого символа не обрабатывется. Все пробелы внутри текста удаляются, за исключением текстовых строк, заключенных в кавычки "". Ключевые слова пишутся только в верхнем регистре (большими буквами).

    Описание протокола состоит из нескольких секций, обязательными из них являются три: начальная, [READ] - чтение слова и [WRITE] - записи слова.



Кроме этого, дополнительно можно использовать необязательные секции:
[SETUP] - начальная установка, вызывается однократно при загрузке модуля
[INIT] - инициализация, вызывается однократно перед всеми операциями.
[WRITEINIT] - инициализации записи, вызывается один раз перед началом записи EEPROM.
[WRITEEND] - завершение записи, вызывается один раз после записи всех слов EEPROM.
[READBLOCK] - Чтение блока
[WRITEBLOCK] - Запись блока
[END] - завершение операции, вызывается один раз для любой операции.
    При необходимости могут быть описаны дополнительные пользовательские секции, которые добавляются в меню под своим именем. Их названия также записываются в скобках []. При использовании пробелов имена следует дополнительно заключать в кавычки:
(*)["Test 1"]
Можно использовать локальные секции (функции). Для описания функций перед именем добавляется символ '_' :
(*) [_START]
Функции должны быть описаны в модуле до их использования. Вызов функции осуществляется по имени:
(*) _START.
Передача параметров возможна с использованием регистров. Разрешено использовать внутри функций вызовы других функций. Не рекомендуется использование рекурсивных вызовов.
Секции чтения и записи вызываются при выполнении операций Read и Write для каждого слова.
Порядок вызова секций в режиме чтения:

[INIT]
FOR (ADR=0,ADR {
    [READ]
}
[END]

Порядок вызова секций в режиме записи:

[INIT]
[WRITEINIT]
FOR (ADR=0,ADR {
     [WRITE]
     IF (Проверка записи)
         [READ]
}
[WRITEEND]
[END]
Порядок вызова для пользовательских команд:
[INIT]
[USERSECTION]
[END]
В начальной секции описываются:
     Все остальные секции имеют одинаковый формат записи. в одной строке может быть описано несколько инструкций, между собой они разделяются запятыми.
Краткое описание инструкций приведено ниже:
    Подробней изучить конструкции языка можно примере поставляемых в составе программатора файлов *.hpl.

Содержание раздела