Перейти к содержанию
    

Eclipse & GDB & MIPS

Здравствуйте!

 

Есть MIPS32 под которую есть уже кем то ранее собранный MIPS Toolchain который благополучной интегрирован с Eclipse

Но при отладке я вижу не все регистры сопроцессора, как я понимаю прописаны они в GDB

В связи с этим вопрос, как можно внести правки и как собрать новый тулчейн, интегрируемый в Eclipse?, как я понимаю это единственное решение

Спасибо!

 

П.С. работаю с версиями для Ws и для Linux

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, another_one said:

как я понимаю прописаны они в GDB

Не совсем. То, что показывает gdb прописано в target descriptor, который должен считываться с удалённого девайса. Но можно его и вручную подсунуть (set tdesc в gdb)

https://sourceware.org/gdb/onlinedocs/gdb/Target-Descriptions.html#Target-Descriptions

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за ответ!

Но что-то я не могу найти в пути установки \\MIPS\SDK\ ни одного *.gdb файла

А строчку "set tdesc" TC находит только в mipsel-mti-elf-gdb.exe

 

И я не совсем понял есть ли альтернативное решение пере сборки, или нет, по ссылкам не понял технологию

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, another_one said:

Но что-то я не могу найти в пути установки \\MIPS\SDK\ ни одного *.gdb файла

 

Вы его должны написать сами (или поискать где то на стороне готовый), а потом подсунуть gdb через его команду set tdesc

2 hours ago, another_one said:

И я не совсем понял есть ли альтернативное решение пере сборки, или нет, по ссылкам не понял технологию

 

Технология простая - в gdb встроенна поддержка архитектуры по максимуму, но так как поддержка тех или иных фич архитектуры отличается от процессора к процессору, то конкретное подмножество поллерживаемых фич (и разновидностей архитектуры) описывается в tdesc файле. В gdb есть встроенные, используемые по умолчанию (они далеко не самые полные), но он может после подключения к конкретному камню запросить у адаптера (который к камню подключал - например у OpenOCD) tdesc файл под процессор. Но адаптер может это и не поддерживать. Тогда можно этот файл скормить прямо в отладочной сесии через set tdesc

PS. В сорцах gdb эти файлы лежат в дире binutils\gdb\features\

 

Для MISP там есть:

 

mips64-linux.xml

mips-linux.xml

mips64-dsp-linux.xml
mips64-linux.xml

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

спасибо за подробный ответ!

Но я снова не понял(

 

Вы имеете ввиду под "сорцах gdb" где-то отдельно лежащие исходники(например на гитхаб)?

Я в своей папке MIPS_SDK не могу найти папку binutils

On 4/27/2023 at 10:00 PM, xvr said:

Вы его должны написать сами (или поискать где то на стороне готовый), а потом подсунуть gdb через его команду set tdesc

не совсем понял что я должен описать в создании этого файла, необходимые регистры и их адреса?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, another_one said:

Вы имеете ввиду под "сорцах gdb" где-то отдельно лежащие исходники(например на гитхаб)?

 

https://www.sourceware.org/gdb/

2 hours ago, another_one said:

Я в своей папке MIPS_SDK не могу найти папку binutils

On 4/27/2023 at 8:00 PM, xvr said:

У вас сорцов нет. gdb в составе toolchain'а поставляется в бинарнике.

2 hours ago, another_one said:

не совсем понял что я должен описать в создании этого файла, необходимые регистры и их адреса?

 

Просто регистры.

Конкретно:

mips64-linux.xml

Spoiler
<?xml version="1.0"?>
<!-- Copyright (C) 2007-2022 Free Software Foundation, Inc.

     Copying and distribution of this file, with or without modification,
     are permitted in any medium without royalty provided the copyright
     notice and this notice are preserved.  -->

<!DOCTYPE target SYSTEM "gdb-target.dtd">
<target>
  <architecture>mips</architecture>
  <xi:include href="mips64-cpu.xml"/>
  <xi:include href="mips64-cp0.xml"/>
  <xi:include href="mips64-fpu.xml"/>

  <feature name="org.gnu.gdb.mips.linux">
    <reg name="restart" bitsize="64" group="system"/>
  </feature>
</target>

 

mips64-cpu.xml

Spoiler
<?xml version="1.0"?>
<!-- Copyright (C) 2007-2022 Free Software Foundation, Inc.

     Copying and distribution of this file, with or without modification,
     are permitted in any medium without royalty provided the copyright
     notice and this notice are preserved.  -->

<!DOCTYPE feature SYSTEM "gdb-target.dtd">
<feature name="org.gnu.gdb.mips.cpu">
  <reg name="r0" bitsize="64" regnum="0"/>
  <reg name="r1" bitsize="64"/>
  <reg name="r2" bitsize="64"/>
  <reg name="r3" bitsize="64"/>
  <reg name="r4" bitsize="64"/>
  <reg name="r5" bitsize="64"/>
  <reg name="r6" bitsize="64"/>
  <reg name="r7" bitsize="64"/>
  <reg name="r8" bitsize="64"/>
  <reg name="r9" bitsize="64"/>
  <reg name="r10" bitsize="64"/>
  <reg name="r11" bitsize="64"/>
  <reg name="r12" bitsize="64"/>
  <reg name="r13" bitsize="64"/>
  <reg name="r14" bitsize="64"/>
  <reg name="r15" bitsize="64"/>
  <reg name="r16" bitsize="64"/>
  <reg name="r17" bitsize="64"/>
  <reg name="r18" bitsize="64"/>
  <reg name="r19" bitsize="64"/>
  <reg name="r20" bitsize="64"/>
  <reg name="r21" bitsize="64"/>
  <reg name="r22" bitsize="64"/>
  <reg name="r23" bitsize="64"/>
  <reg name="r24" bitsize="64"/>
  <reg name="r25" bitsize="64"/>
  <reg name="r26" bitsize="64"/>
  <reg name="r27" bitsize="64"/>
  <reg name="r28" bitsize="64"/>
  <reg name="r29" bitsize="64"/>
  <reg name="r30" bitsize="64"/>
  <reg name="r31" bitsize="64"/>

  <reg name="lo" bitsize="64" regnum="33"/>
  <reg name="hi" bitsize="64" regnum="34"/>
  <reg name="pc" bitsize="64" regnum="37"/>
</feature>

 

mips64-cp0.xml

Spoiler
<?xml version="1.0"?>
<!-- Copyright (C) 2007-2022 Free Software Foundation, Inc.

     Copying and distribution of this file, with or without modification,
     are permitted in any medium without royalty provided the copyright
     notice and this notice are preserved.  -->

<!DOCTYPE feature SYSTEM "gdb-target.dtd">
<feature name="org.gnu.gdb.mips.cp0">
  <reg name="status" bitsize="64" regnum="32"/>
  <reg name="badvaddr" bitsize="64" regnum="35"/>
  <reg name="cause" bitsize="64" regnum="36"/>
</feature>

 

ну и mips64-fpu.xml

Spoiler
<?xml version="1.0"?>
<!-- Copyright (C) 2007-2022 Free Software Foundation, Inc.

     Copying and distribution of this file, with or without modification,
     are permitted in any medium without royalty provided the copyright
     notice and this notice are preserved.  -->

<!DOCTYPE feature SYSTEM "gdb-target.dtd">
<feature name="org.gnu.gdb.mips.fpu">
  <reg name="f0" bitsize="64" type="ieee_double" regnum="38"/>
  <reg name="f1" bitsize="64" type="ieee_double"/>
  <reg name="f2" bitsize="64" type="ieee_double"/>
  <reg name="f3" bitsize="64" type="ieee_double"/>
  <reg name="f4" bitsize="64" type="ieee_double"/>
  <reg name="f5" bitsize="64" type="ieee_double"/>
  <reg name="f6" bitsize="64" type="ieee_double"/>
  <reg name="f7" bitsize="64" type="ieee_double"/>
  <reg name="f8" bitsize="64" type="ieee_double"/>
  <reg name="f9" bitsize="64" type="ieee_double"/>
  <reg name="f10" bitsize="64" type="ieee_double"/>
  <reg name="f11" bitsize="64" type="ieee_double"/>
  <reg name="f12" bitsize="64" type="ieee_double"/>
  <reg name="f13" bitsize="64" type="ieee_double"/>
  <reg name="f14" bitsize="64" type="ieee_double"/>
  <reg name="f15" bitsize="64" type="ieee_double"/>
  <reg name="f16" bitsize="64" type="ieee_double"/>
  <reg name="f17" bitsize="64" type="ieee_double"/>
  <reg name="f18" bitsize="64" type="ieee_double"/>
  <reg name="f19" bitsize="64" type="ieee_double"/>
  <reg name="f20" bitsize="64" type="ieee_double"/>
  <reg name="f21" bitsize="64" type="ieee_double"/>
  <reg name="f22" bitsize="64" type="ieee_double"/>
  <reg name="f23" bitsize="64" type="ieee_double"/>
  <reg name="f24" bitsize="64" type="ieee_double"/>
  <reg name="f25" bitsize="64" type="ieee_double"/>
  <reg name="f26" bitsize="64" type="ieee_double"/>
  <reg name="f27" bitsize="64" type="ieee_double"/>
  <reg name="f28" bitsize="64" type="ieee_double"/>
  <reg name="f29" bitsize="64" type="ieee_double"/>
  <reg name="f30" bitsize="64" type="ieee_double"/>
  <reg name="f31" bitsize="64" type="ieee_double"/>

  <reg name="fcsr" bitsize="64" group="float"/>
  <reg name="fir" bitsize="64" group="float"/>
</feature>

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...