Easyelectronics.ru

Электроника для всех
Текущее время: 06 дек 2021, 00:28

Часовой пояс: UTC + 5 часов


Правила форума


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


JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: какое однако унылое г... это кайло
СообщениеДобавлено: 28 янв 2020, 13:44 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 5304
Откуда: КЧР, поселок Нижний Архыз
RepStosw, можно же просто указать линкеру флажки -nostdlibs -nostartfiles...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: какое однако унылое г... это кайло
СообщениеДобавлено: 28 янв 2020, 14:04 
Старожил
Аватара пользователя

Зарегистрирован: 12 июн 2018, 15:04
Сообщения: 710
Eddy_Em писал(а):
RepStosw, можно же просто указать линкеру флажки -nostdlibs -nostartfiles...


В голом эмбиде может это и поможет. Но когда занимаешься игро-строем, то без stdlib никак, от слова "совсем". Нужны sprintf, malloc/free, STL, templates, lists, memset, memcpy и многое, многое, многое... Ну не писать же всё это с нуля, особенно sprintf :)

sprintf - очень мощная функция. Не видел её реализации в интернете. Не путать с fprintf и printf !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: какое однако унылое г... это кайло
СообщениеДобавлено: 28 янв 2020, 14:13 
Старожил
Аватара пользователя

Зарегистрирован: 12 июн 2018, 15:04
Сообщения: 710
Ещё подкину.... Оказывается в Thumb режиме (ядро ARM9) необходимо выравнивать структуры данных на 4 байта, иначе программа будет неправильно работать из-за missaligned error. Так как в Thumb адресация кратна 2.

Дописать в C-compile options:
Код:
--pointer_alignment=4 --min_array_alignment=4


Полный джентльменский набор флагов для Кейл ARM C:
Код:
-O3 -Otime --apcs=interwork --split_sections --no-exceptions --no-exceptions_unwind --force_new_nothrow --pointer_alignment=4 --min_array_alignment=4 --no_vfe --fpmode=fast


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: какое однако унылое г... это кайло
СообщениеДобавлено: 28 янв 2020, 14:37 
Старожил

Зарегистрирован: 08 июн 2015, 16:26
Сообщения: 705
Это, наверное, связано с самим ядром ARM9, которое может работать в режимах ARM и Thumb (а некоторые и жабу исполнять), в то время как в кортексах только режим Thumb и никаких проблем с выравниванием нет и без флага --pointer-alignment=4 (за исключением случае, обернутых в #pragma pack).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: какое однако унылое г... это кайло
СообщениеДобавлено: 28 янв 2020, 16:51 
Старожил
Аватара пользователя

Зарегистрирован: 12 июн 2018, 15:04
Сообщения: 710
sdv_cyborg писал(а):
Это, наверное, связано с самим ядром ARM9, которое может работать в режимах ARM и Thumb (а некоторые и жабу исполнять), в то время как в кортексах только режим Thumb и никаких проблем с выравниванием нет и без флага --pointer-alignment=4 (за исключением случае, обернутых в #pragma pack).


Глянул код, у меня там обращения к словам (4-байтным) присутствуют. Поэтому адрес должен быть кратен 4-м.

В своё время заглядывался на Жабу (Jazelle) только не понял что это и с чем едят. Но было бы круто протолкнуть вирт-процессор со своей системой команд. Или чтобы на лету CPU парсил код и отдавал зарезервированные ОПкоды Jazelle (обучив его к примеру декодировать код Z80 для эмуляторов), отделяя его от пальца или руки. Получил ли Jazelle этот широкое применение или нет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: какое однако унылое г... это кайло
СообщениеДобавлено: 28 янв 2020, 17:05 
Старожил

Зарегистрирован: 08 июн 2015, 16:26
Сообщения: 705
Насколько мне известно, Jazelle забросили окончательно. Раньше был Jazelle RCT - https://en.wikipedia.org/wiki/ARM_archi ... t_(ThumbEE) - библиотека JIT-компиляции байт-кода Java в Thumb и какие-то аппаратные блоки для ее поддержки. Но и они уже давно заброшены, нынешние ядра ARM тупо опираются на вычислительную дурь и ею берут исполнение JVM во всех мобильничках.
хз, почему это дело забросили, было бы действительно удобно иметь в т.ч. для вышеописанного варианта - использовать аппаратно поддерживаемую JIT-компиляцию для своих нужд каких-нить.
Так что, для таких экспериментов остается только искать оставшиеся на рынке ARM9 с расширением Jazelle DBX - которое и есть аппаратное выполнение опкодов java.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: какое однако унылое г... это кайло
СообщениеДобавлено: 28 янв 2020, 17:25 
Старожил
Аватара пользователя

Зарегистрирован: 12 июн 2018, 15:04
Сообщения: 710
sdv_cyborg писал(а):
Так что, для таких экспериментов остается только искать оставшиеся на рынке ARM9 с расширением Jazelle DBX - которое и есть аппаратное выполнение опкодов java.


Тоесть Jazelle = аппаратный разбор опкодов Java. А вот было бы здОрово научить распознавать ARM CPU опкоды того же Z80 среди мешанины ARM-Thumb-Z80 и в случае Z80 аппаратно эмулировать его систему команд. Можно было бы использовать в эмуляторах приставок с двумя и более процессорами для ускорения.

Мечтатели такого рода мыслей были в 2005...2008 гг. Вот одна из тем, к сожалению, не превратившая сказку в быль: https://zx-pk.ru/threads/5255-sovremenn ... -quot.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: какое однако унылое г... это кайло
СообщениеДобавлено: 28 янв 2020, 17:32 
Старожил

Зарегистрирован: 08 июн 2015, 16:26
Сообщения: 705
Я, конечно, не большой спец в архитектурах ARM, но боюсь, что это будет геморойно, если не невозможно. В любом случае надо делать JIT-компиляцию эмулируемой архитектуры в опкоды java, да и не совсем понятно, является ли блок jazelle в ARM9 параллельным устройством исполнения или это режим основного исполняющего устройства, как ARM и Thumb. Надо будет почитать на досуге на эту тему мануалы на ARM9 и чип SAM9M10, валяющийся под рукой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: какое однако унылое г... это кайло
СообщениеДобавлено: 28 янв 2020, 18:26 
Старожил

Зарегистрирован: 08 июн 2015, 16:26
Сообщения: 705
Ради интереса посмотрел на даташит на SAM9M10 от Atmel. В нем исполнение байт-кода jazelle является отдельным режимом, наравне с Thumb и ARM, поэтому одновременно два потока исполнять нельзя, что неудивительно, это не суперскалярный проц.
С другой стороны, в качестве маразма может быть следующий выход. Т.к. в ядре шесть аппаратных банков регистров - под режимы супервизора, системные режимы и два вида прерываний - то можно тогда в многозадачном режиме работать. Скажем, перекомпилировать заранее код целевой платформы в jazelle и его исполнять в фоновом цикле в user mode в своем банке регистров, а в supervisor mode и interrupt mode исполнять все остальные задачи с разным приоритетом на родном наборе ARM или Thumb. Благо, каждой задаче будет аппаратно выделен свой банк регистров и, по идее, оверхед на сохранение контекста должен быть уменьшен.
Но у меня еще руки до ARM9 не дошли, точнее не знаю. Говорю то, что увидел в даташите.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: какое однако унылое г... это кайло
СообщениеДобавлено: 28 янв 2020, 19:51 
Старожил
Аватара пользователя

Зарегистрирован: 12 июн 2018, 15:04
Сообщения: 710
sdv_cyborg писал(а):
Ради интереса посмотрел на даташит на SAM9M10 от Atmel. В нем исполнение байт-кода jazelle является отдельным режимом, наравне с Thumb и ARM, поэтому одновременно два потока исполнять нельзя, что неудивительно, это не суперскалярный проц.


Насколько реально Jazelle использовать для воспроизведения игр MIDP2 ? Так называемые "Java-игры" J2ME для сотовых телефонов с малым экраном (в jar или jad архивы упакованные). Лет 12 назад бродила в голове идея поднять MIDP2+Java на ARM9 для воспроизведения простеньких игрух для мобильников. Но из-за недостатка информации и опыта эта мечта не материализовалась. Но нашёл другое решение - эмуляторы игровых приставок.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: какое однако унылое г... это кайло
СообщениеДобавлено: 28 янв 2020, 23:31 
Старожил

Зарегистрирован: 08 июн 2015, 16:26
Сообщения: 705
Честно говоря, понятия не имею, но по идее, учитывая, что эти все "java-иры" собственно и работали на базе Java ME, да и ARM9 популярен был во времена этих самых мобильников, то наверняка можно настрополить jazelle на запуск этих игрулек. Только как там с SDK древних телефонов, на которые они опирались - где их взять, не огорожены ли они какими-нибудь лицензиями, их работу ведь тоже нужно эмулировать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: какое однако унылое г... это кайло
СообщениеДобавлено: 29 янв 2020, 08:32 
Старожил
Аватара пользователя

Зарегистрирован: 12 июн 2018, 15:04
Сообщения: 710
sdv_cyborg писал(а):
Честно говоря, понятия не имею, но по идее, учитывая, что эти все "java-иры" собственно и работали на базе Java ME, да и ARM9 популярен был во времена этих самых мобильников, то наверняка можно настрополить jazelle на запуск этих игрулек. Только как там с SDK древних телефонов, на которые они опирались - где их взять, не огорожены ли они какими-нибудь лицензиями, их работу ведь тоже нужно эмулировать.


Копнул глубже. Оказалось всё очень уныло и мутно. Для проигрывания мидлетов, java-апплетов или в простонародье "java-игры" от Java необходимы: CLDC и MIDP. Но это сферический конь в вакууме. Далее LCDUI и MMAPI - набор классов для взаимодействия с аппаратурой телефона (экран, кнопки, звук,...). И тут начинается сырость и несовместимость. Каждый производятел телефонов по-своему реализовывал эту часть, поэтому часть игр не будут вообще запускаться. Поэтому Jar'ы собирали под конкретные модели телефонов с конкретным разрешением дисплея.

Второй момент: не нашёл ни одного j2me-эмулятора (проигрывателя), написанным на язвке C/C++. Всё что есть - написано на Java. Замкнутый круг выходит. А надо-то всего: преобразовать мидлеты в java-байткод и вирт-машиной запустить. Напрашивается путь парсинга самого текста java-кода и его выполнение (как в интерпретаторах). Единственно, надо кинуть мост и написать свою прослойку между железом и классами LCDUI, MMAPI.

В общем J2ME - гадость ещё та: нет никакой определённости в конфигурации железа и по части софта всё захуеверчено вокруг обычной Java.

Ещё есть опыт с LUA. Впечатления самые положительные, на офсайте есть портабельные сорцы на Си. Всё собирается и работает с пол-пинка. Проброс к железу делается там просто великолепно: в виде функций (достаточно написать процедуры взаимодействия с дисплеем, кнопками и звуками).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: какое однако унылое г... это кайло
СообщениеДобавлено: 29 янв 2020, 11:47 
Старожил

Зарегистрирован: 08 июн 2015, 16:26
Сообщения: 705
В том-то и дело, что каждый производитель поставлял свое проприетарное SDK, а сейчас, когда симбианы и прочие J2ME поумирали, никто ничего не открыл. На сам J2ME вроде бы как вообще какие-то то ли патентные, то ли еще какие ограничения, в связи с чем его эмуляторов и нет (или очень мало).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: какое однако унылое г... это кайло
СообщениеДобавлено: 29 янв 2020, 15:50 
Старожил

Зарегистрирован: 08 июл 2013, 17:00
Сообщения: 1193
https://www.oracle.com/java/technologies/java-embedded-java-me-downloads.html
А что про это можешь сказать? Разбирался?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: какое однако унылое г... это кайло
СообщениеДобавлено: 29 янв 2020, 19:16 
Старожил
Аватара пользователя

Зарегистрирован: 12 июн 2018, 15:04
Сообщения: 710
tonyk писал(а):
https://www.oracle.com/java/technologies/java-embedded-java-me-downloads.html
А что про это можешь сказать? Разбирался?


Весело идут нахуй со своими бинарниками, да ещё и регисрацией :)))


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу Пред.  1, 2


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB