Организация и функционирование ЭВМ\Помощь по HLCCAD\
Stand alone device

Stand alone device

StandAloneDevice (SAD) являются устройствами, модель которых представлена высокуровневой моделью. SAD-устройства не имеют проекта-владельца. Создание устройства осуществляется из редактора схемы при выборе определённого из списка в локальном меню.
Система автоматически вызывает функцию "Prefix_Creator" (Prefix задаётся в параметрах модели как и имя DLL-библиотеки). Функция аналогична вызову функции внешнего редактора устройства. Обычно эта функция создаёт описание устройства и настраивает его параметры.

Для каждого SAD-устройства может быть определён компилятор входных описаний (см. параметр устройства "ассемблер").

Функция ассемблера определена следующим образом:
Pascal:
type
TOnErrorProc = procedure (Code : integer; Line,Column : integer; Text : PChar); stdcall;
TOnNewFileProc = procedure (FileName : PChar); stdcall;
TOnNewLineProc = procedure (Line : integer); stdcall;
TAsmProc = procedure(DLLPath,AsmFile,Args : PChar; OnError : TOnErrorProc; OnNewFile : TOnNewFileProc; OnNewLine : TOnNewLineProc; LangName : PChar); stdcall;
C++:
typedef void (__stdcall _OnErrorProc) (DWORD code, DWORD Line, DWORD Column, char* Text);
typedef void (__stdcall _OnNewFileProc) (char* FileName);
typedef void (__stdcall _OnNewLineProc) (DOWRD Line);
typedef void (__stdcall AsmProc) (char *DLLPath, char* AsmFile, char* Args, TOnErrorProc* OnError, TOnNewFileProc* OnNewFile, TOnNewLineProc* OnNewLine, char* LangName);
где:
DLLPath - имя DLL файла ассемблера
AsmFile - имя асемблируемого фацла
Args - аргументы (описание см. ниже)
OnError - обработчик событий об ошибках
OnNewFile - обработчик компиляции файла
OnNewLine - обработчик компиляции строки исходного текста
LangName - названия текущего языка системы

Аргументы позволяют настроить компилятор под конкретное описание устройства. Строка аргументов генерируется системой автоматически. Строка начинается с префикса '-D'. Далее следуют название параметров и их значения. Параметры разделяются запятыми.
dvcName="Device name"
pin[PinName]_dim = разрядность контакта
prm[ParamName]_value = значение параметра устройства
Например:
-DdvcName="AT90S2313",pinRst_dim=1,prmCodeMemory_value="demo.avr"

Генерация и загрузка результата возлагается полностью на ассемблер и саму модель