Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Генерация симулятора процессора ⇐ ПредыдущаяСтр 5 из 5
Для генерации симулятора ядра в виде С++ класса необходимо вызвать компилятор PPDL со следующими параметрами командной строки: ppdl.exe dev_name.hdl – s out_file_name
Параметры: dev_name.hdl – имя файла, содержащего PPDL-описание процессора out_file_name – имя выходного файла (без расширения), содержащего класс, симулирующий работу процессора. В случае успеха компилятор сгенерирует два файла с именами out_file_name.h и out_file_name.cpp Генерация ассемблера Для генерации кода ассемблера (декодера инструкции) для встраивания в утилиту gnu assembler необходимо вызвать компилятор PPDL со следующими параметрами командной строки: ppdl.exe dev_name.hdl – a out_file_name
Параметры: dev_name.hdl – имя файла, содержащего PPDL-описание процессора out_file_name – имя выходного файла (без расширения), содержащего набор функций для декодирования инструкций ассемблера
Генерация дизассемблера Для генерации кода ассемблера (декодера инструкции) для встраивания в утилиту gnu assembler необходимо вызвать компилятор PPDL со следующими параметрами командной строки: ppdl.exe dev_name.hdl – d out_file_name
Параметры: dev_name.hdl – имя файла, содержащего PPDL-описание процессора out_file_name – имя выходных файлов (out_file_name.h и out_file_name.cpp), содержащих описание С++ класс для описания дизассемблера.
В сгенерированном дизассемблере следует использовать функцию: char* disasm(char *bin,int& size);.
Данная функция принимает на вход указатель на бинарный код команды и возвращает ассемблерную мнемонику команды и размер декодированной бинарной команды (в байтах) в переменную size. Генерация XML файла описания архитектуры Компилятор PPDL позволяет сгенерировать XML файл описания архитектуры. Для генерации XML файла необходимо вызвать компилятор PPDL со следующими параметрами командной строки: ppdl.exe dev_name.hdl –x out_file_name Параметры: dev_name.hdl – имя файла, содержащего PPDL-описание процессора out_file_name – имя выходного XML файла с расширением, например nmproc.xml
Интерфейс симулятора
Любой симулятор, генерируемый программой ppdl – это класс, унаследованный от стандартного класса tDevice. Класс tDevice имеет стандартный интерфейс, предоставляющий отладчику возможность управлять процессом выполнения программного кода на процессоре. В данной главе приведены некоторые функции класса tDevice, использующиеся для работы с отладчиком.
1.3 tDProcCfg* GetCfg() Функция возвращает указатель на структуру процессора tDProcCfg. Данная структура содержит информацию об архитектуре процессора. Список элементов данной структуры приведен в таблице:
В следующей таблице приведены элементы структуры tDRegister
В следующей таблице приведены элементы структуры tDMemBus
В следующей таблице приведены элементы структуры tDProcFlag
1.4 void getmem(void *mem,int busnum,int addr,int size_in_words); Функция копирует size _ in _ words слов из памяти процессора, подключенной к шине busnum по адресу addr в массив mem.
1.5 void setmem(void *mem,int busnum,int addr,int size_in_words); Функция копирует size _ in _ words слов из массива mem в память процессора, подключенной к шине busnum по адресу addr
1.6 int DisAssembly(char *str,int busnum,int addr,int size);
Функция копирует в строку str дизассемблированный код подпрограммы по адресу addr памяти на шине busnum размером size слов в формате: адрес инструкция шестнадцатеричный код команды.
1.7 int set_bp(unsigned long addr); Функция устанавливает точку останова по адресу addr.
Возвращаемое значение 1 – если точка останова была поставлена 0 – в случае ошибки
1.8 int clear_bp(unsigned long addr) Функция удаляет точку останова по адресу addr. Возвращаемое значение 1 – если точка останова была успешно удалена 0 – в случае ошибки
1.9 int start(); Функция запускает симулятор на исполнение Возвращаемое значение 1 – если симулятор был запущен на исполнение 0 – в случае ошибки
1.10int stop(); Функция останавливает работу симулятора Возвращаемое значение 1 – если симулятор был успешно остановлен 0 – в случае ошибки
Int isRun() Функция возвращает ненулевое значение, если симулятор запущен на исполнение, 0 в противном случае
|
||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-07-18; просмотров: 33; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.27.244 (0.01 с.) |