MyTetra Share
Делитесь знаниями!
Какие есть инструменты и ресурсы для работы с процессором SH-2 RISC (SuperH), предположительно используемом в Yamaha PSR-E473
Время создания: 03.04.2025 10:53
Текстовые метки: yamaha, E473, синтезатор, процессор, микропроцессор, контроллер, SH-2, RISC, SuperH
Раздел: Музыка - Пианино - Yamaha
Запись: xintrea/mytetra_syncro/master/base/1743666781f8ucvka74a/text.html на raw.github.com

В синтезаторе Yamaha E-473 используется микропроцессор SWX03S. Обозначение в документации Yamaha - SCC105A, раrt. N: YK611A0. Внутренняя частота 135.4752MHz. Внешний тактовый генератор на 67.7376MHz. Предположительная архитектура - SuperH SH-2 RISC.


Что есть про этот микропроцессор в интернете?



Официальная документация


Руководство программиста SH-2 (англ. SuperH SH-2 Programming Manual):


Говорят, что есть в архивах Renesas (Product Selector: RH850 Automotive MCUs, Product Selector: RX 32-Bit Performance / Efficiency MCUs). Там должны быть описаны регистры, инструкции и тайминги. По факту упоминаний архитектуры SuperH или SH-2 не найдено. Однако, по косвенным признакам, аналогичную архитектуру могут иметь чипы SH7264 или SH7262.


Набор Starter Kit с чипом SH7264 выглядит так:




Ссылка: https://www.renesas.com/en/products/microcontrollers-microprocessors/other-mcus-mpus/superh-risc-engine-family-mcus/sh7264-starter-kit-plus-renesas-starter-kit-sh7264?queryID=7f187dc26eab5ac24b27859e2862457f


Документация для чипов SH7264 и SH7262 общая.





Ссылка на документацию: https://www.renesas.com/en/document/mah/sh7262-group-sh7264-group-users-manual-hardware?queryID=ae099f5a0d5a9fd664aff564a76d0027


Технические справочники для конкретных чипов (например, HD64170) можно поискать на сайтах вроде DatasheetArchive. Ничего по аббревиатурам SWX03S, SCC105A, YK611A0 найдено не было.



Ножки микросхем


По ножкам: у SWX03S (SCC105A) имеется 176 выводов. У серии SH7262/SH7264 следующее кол-во ножек:



SH7262 1Mb version - 176 ножек

SH7262 640Kb version - 176 ножек


SH7264 1Mb version - 208 ножек

SH7264 640Kb version - 208 ножек



Очень точное соответствие с SH7262! Весьма возможно, что SWX03S - это перелицованый SH7262.


Теперь можно сравнить картинки с даташитов.




Это микросхема SWX03S




Это микросхема SH7262



Как видно, совпадений по ножкам нет. Совпадает только общее количество. Нужно составить таблицы для одного и второго чипа, и попытаться найти соответствия. Если сигналы просто перекоммутированы на другие выводы, это можно заметить. Надо разбираться дальше.


Согласно даташиту на SH7262, его ножки могут выполнять 4 функции. И таблица обозначения ножек содержит 4 столбца. Надо разбираться, что значат эти функции.



Открытые проекты и эмуляторы


GNU Binutils (GAS, objdump):


— Поддерживает ассемблер и дизассемблирование SH-2.

— Исходный код в репозиториях GCC (GitHub).

(см. ниже про sh-elf)


Эмулятор MAME:


— Реализует SH-2 для аркадных автоматов (например, Sega Saturn).

— Код CPU-ядра: mame/src/devices/cpu/sh/sh2.cpp.



Проект QEMU:


— Частичная эмуляция SH-2 (менее точная, чем MAME).



Если нужно дизассемблировать код


Могут помочь утилиты пакета sh-elf-*:


Имеется утилита sh-elf-objdump (из пакета GNU Tools for SuperH). Где sh - это не сокращение от shell, а название архитектуры. Взять его можно с https://github.com/andwn/sh-gcc-toolchain. Этот проект представляет собой просто один Makefile. При его сборке командой make, выкачиваются различные архивы с каких-то зеркал, на которых лежат исходники для Hitachi SuperH-2. После сборки, файлы устанавливаются либо традиционной командой sudo make install, либо через checkinstall -D (для Debian-подобных дистрибутивов).



Чтобы установка через checkinstall -D нормально сработала, перед запуском команды надо создать каталог /opt/toolchains, такая особенность заложена в Makefile.

А так же при запуске checkinstall -D необходимо изменить номер версии Version (пункт 3) со строки toolchain на что-нибудь типа 1.0.0, иначе пакет не будет создан.



После этого, становится доступна программа sh-elf-objdump. Она находится в каталоге /opt/toolchains/sh-elf/bin. Его надо прописать в переменную PATH. Так как все исполнимые файлы в этом каталоге начинаются на "sh-elf-*", они не будут перекрывать никакие другие системные инструменты.


Пример запуска:



sh-elf-objdump -D -b binary -m sh2 firmware.bin



Какие архитектуры будут доступны sh-elf-objdump --help:



sh-elf-objdump: поддерживаемые цели:

elf32-sh elf32-shl

coff-sh coff-shl coff-sh-small coff-shl-small

elf32-little elf32-big

srec symbolsrec

verilog tekhex binary ihex plugin


sh-elf-objdump: поддерживаемые архитектуры:

sh sh2 sh2e sh-dsp sh3 sh3-nommu sh3-dsp sh3e sh4 sh4a sh4al-dsp sh4-nofpu sh4-nommu-nofpu sh4a-nofpu sh2a sh2a-nofpu sh2a-nofpu-or-sh4-nommu-nofpu sh2a-nofpu-or-sh3-nommu sh2a-or-sh4 sh2a-or-sh3e



Так же могут помочь интерактивные дизассемблеры:


— Radare2/Ghidra с поддержкой SH-2. В Ghidra v. 11.3.1 точно есть поддержка архитектур SuperH и SuperH4. Поэтому непонятно, входит ли SH-2 в архитектуры SuperH и SuperH4. Похоже, все-таки SH-2 должна поддерживаться, ибо в каталоге /opt/ghidra_11.3.1_PUBLIC/Ghidra/Processors/SuperH/data/languages лежат файлы:



sh-1.sla

sh-1.slaspec

sh-2a.sla

sh-2a.slaspec

sh-2.sla

sh-2.slaspec

superh2a.cspec

superh.cspec

superh.ldefs

superh.pspec

superh.sinc



Так же в этом разделе:
 
MyTetra Share v.0.67
Яндекс индекс цитирования