Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Генерация симулятора процессораСодержание книги Поиск на нашем сайте Для генерации симулятора ядра в виде С++ класса необходимо вызвать компилятор 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; просмотров: 86; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.156 (0.008 с.) |