OberonCore
https://forum.oberoncore.ru/

MicroA2
https://forum.oberoncore.ru/viewtopic.php?f=22&t=5690
Страница 1 из 4

Автор:  Ярослав Романченко [ Воскресенье, 01 Май, 2016 16:58 ]
Заголовок сообщения:  MicroA2

Предлагаю на суд общественности, долго вынашиваемый и обсуждавшийся проект MicroA2. Такое название у нас родилось в процессе обсуждения с BohdanT
Цель проекта - разработка кросс-платформенных графических оконных приложений на базе ОС A2, и с использованием компонентов ОС A2.
На сегодняшний день есть модуль (WinStarter.Mod), позволяющий запустить любое оконное приложение ОС A2 в окне, созданном с помощью WinAPI.
Для этого достаточно минимальных изменений в самом приложении (добавляется одна процедура-фабрика) и небольшого изменения файла конфигурации aos.ini
По-идее будет не сложно сделать подобное и под Linux/Mac OS X. Там придётся сделать подобный модуль для запуска под X11 и придумать как его запустить (aos.ini в Linux/Mac OS X нет, параметры передаются через переменные окружения).
Утилита для сбора необходимых модулей для создания дистрибутива приложения тоже есть (ImportCollector.Mod).
Ознакомиться с предварительным результатом можно по ссылке http://sage.com.ua/cgi-bin/blog.cgi?m=dl&f=MicroA2.zip
Если есть желающие поучаствовать в развитии данного проекта, милости просим! В дальнейшем планируется доделать возможность ресайза окон и др. Можно пообсуждать, что ещё можно добавить...
Несколько скриншотов:

Вложения:
WMAStar.PNG
WMAStar.PNG [ 13.51 КБ | Просмотров: 9099 ]
WMRaycasterMaze.PNG
WMRaycasterMaze.PNG [ 100.58 КБ | Просмотров: 9100 ]
WMRaycaster.PNG
WMRaycaster.PNG [ 83.19 КБ | Просмотров: 9099 ]
WMBass3DTest.PNG
WMBass3DTest.PNG [ 9.5 КБ | Просмотров: 9101 ]

Автор:  ignat99 [ Понедельник, 02 Май, 2016 14:53 ]
Заголовок сообщения:  Re: MicroA2

Очень круто. Вод бы портировать это на микро-контроллеры типа MT626xx. Только бесплатно смысла нет это делать.
Но можно найти на краудсорсинг платформах до $1 000 000. Правда не всё просто, нужны дружеские связи и грамотный пиар.
Кроме того, без изготовления самого железа это дело, на мой взгляд не очень прибыльное.

https://geektimes.ru/post/275142/

Хотя на первое время можно использовать готовое железо, благо это железо стоит $5-$10. Но бутлоадеры, не взломаны, насколько я знаю. А документация попала в паблик только на прошлой неделе да и то не для всех PDF есть пароли.

Автор:  Ярослав Романченко [ Понедельник, 02 Май, 2016 16:47 ]
Заголовок сообщения:  Re: MicroA2

ignat99 писал(а):
Очень круто. Вод бы портировать это на микро-контроллеры типа MT626xx. Только бесплатно смысла нет это делать
ARM-бэкенд для компилятора лежит в репозитории А2.

Автор:  ignat99 [ Понедельник, 02 Май, 2016 17:26 ]
Заголовок сообщения:  Re: MicroA2

Ярослав Романченко писал(а):
ignat99 писал(а):
Очень круто. Вод бы портировать это на микро-контроллеры типа MT626xx. Только бесплатно смысла нет это делать
ARM-бэкенд для компилятора лежит в репозитории А2.


Да я видел. MT62xx специфичный чип. На который и документации то не было. Но сейчас они довольно популярные. Дело должно пойти. Я слышал одна компания из России на MT собралась делать смартфон. Но более старшей модели чип.

https://geektimes.ru/post/274056/

Жаль что о необходимости иметь свою собственную систему, а не доверять загрузочным сертификатам китайцев, люди заговорят только через 2-3 года. И жаль, что в A2 нет поддержки сертификации загрузчика (вроде - точно не знаю), постзагрузчика и ядра.

А сейчас многие MMI китайcкой MAUI, который выглядит, как Android не отличают от самого Android-а с ядром GNU/Linux.

Автор:  Ярослав Романченко [ Понедельник, 02 Май, 2016 18:36 ]
Заголовок сообщения:  Re: MicroA2

ignat99 писал(а):
И жаль, что в A2 нет поддержки сертификации загрузчика (вроде - точно не знаю), постзагрузчика и ядра.
А что означает поддержка сертификации. Сертификация это своего рода административный момент, какая там должна быть поддержка для этого в загрузчике, постзагрузчике и ядре?

Причём, по-моему, в А2 только есть загрузчик и ядро.

Вот, есть загрузчик А2 под различные юниксы, там реально кода, как говорится, что кот наплакал... 11 кБ сам загрузчик + 3-5 кБ библиотечка Threads, специфичная для конкретной host-OS https://svn.inf.ethz.ch/svn/lecturers/a ... ixAos/boot
Под голое железо загрузчик на ассемблере...

Так в чём состоит процесс сертификации, в просмотре кода экспертами, в загрузке в специальный эмулятор?

Автор:  ignat99 [ Понедельник, 02 Май, 2016 18:42 ]
Заголовок сообщения:  Re: MicroA2

https://cloud.mail.ru/public/GSGR/XpHEs ... 2BAOSP.pdf

https://cloud.mail.ru/public/GSGR/XpHEs ... eline-.pdf

Вот этот документики подробнее раскрывают.

Именно поэтому с 2006 года не кто не мог расковырять прошивку, что распаковщик у них аппаратный. IMHO

Автор:  Ярослав Романченко [ Понедельник, 02 Май, 2016 19:10 ]
Заголовок сообщения:  Re: MicroA2

Ну, насколько я понял, в документах идёт речь о подписывании загрузочных образов RSA1024 ключом.

Автор:  ignat99 [ Понедельник, 02 Май, 2016 19:25 ]
Заголовок сообщения:  Re: MicroA2

Подменить образ не удаётся. Только запустить в симуляторе QEMU части кода (распакованные дампы памяти реального устройства), после прохождения этапа загрузки. На PSP (Портативной Сони Плайстейшен) вроде так же точно было сделано.

В мобильных телефонах Самсунг так же (ключи линкуются скриптами линковщика). А мастер ключь только на сервере храниться в центральном офисе и к нему доступ имеет только 1 человек отвечающий за продакшен релизы.

Вроде из обсуждения в форумах следует, что ядра пожаты 7-zip, видимо с ключами/паролями. В таком виде они перепрошиваются.
Но сами ядра можно собрать компиляторами в которых уже прошиты ключи вендера (которые выданы производителем).

Честно признаюсь, что я не копался в бинарниках MTK. Только видел как это было сделано на Самсунге.

Автор:  Ярослав Романченко [ Понедельник, 02 Май, 2016 19:34 ]
Заголовок сообщения:  Re: MicroA2

ignat99 писал(а):
Подменить образ не удаётся. Только запустить в симуляторе QEMU части кода (распакованные дампы памяти реального устройства), после прохождения этапа загрузки. На PSP (Портативной Сони Плайстейшен) вроде так же точно было сделано.
Вобщем, редиски они, эти производители.
Вот, тут и возникает вполне резонный вопрос... Почему-бы России не штамповать подобные чипы на своей территирии. Со своими мастер-ключами и т.д.
Но, ты ignat99, похоже, противник такой идеи?

Модератору: И похоже уже надо просить модератора отделить обсуждение подписывания ядер в отдельную тему...

Автор:  ignat99 [ Понедельник, 02 Май, 2016 19:47 ]
Заголовок сообщения:  Re: MicroA2

Я как раз за то чтоб разобраться с этим вопросом и заменить прошивку на чужих модулях.
Я просто знаю людей (сами ко мне обращались по поводу логического синтезатора), поэтому уверен что не сможет не Микрон не Ангстрем-Т выпустить чип подобный MT62xx в ближайшее время. По цене - $3!!! По цене $300 смогут. Но такой не нужен.

А нужно делать по цене $0.20 чтоб конкурировать. А в Зеленограде и кадров готовых нет и обучать почти не кому.

Автор:  Ярослав Романченко [ Понедельник, 02 Май, 2016 19:51 ]
Заголовок сообщения:  Re: MicroA2

ignat99 писал(а):
А нужно делать по цене $0.20 чтоб конкурировать. А в Зеленограде и кадров готовых нет и обучать почти не кому.
По-тому, что установка такая была дана в СНГ всё разваливать и разворовывать. А Китай тем временем чипы штамповал...

Автор:  ignat99 [ Понедельник, 02 Май, 2016 19:54 ]
Заголовок сообщения:  Re: MicroA2

Поймите меня правильно. Проект то как раз сделать не проблема. А вот технология/станки это гораздо большая зависимость от производителей, чем разобраться с одним маленьким модулем за $3.

Давайте тогда свои станки делать. Если готовые стоят 200 миллионов долларов. То сколько надо потратить на то чтоб такие станки просто скопировать (включая программы в станках, которые то же защищены и ещё лучше).

Так что лучше шашкой не махать, а разобраться с одним маленьким и дешёвым чипом с ARM и ещё несколькими модулями.

https://cloud.mail.ru/public/GSGR/XpHEs ... MT250x.pdf

И запустить на нём графическую среду и своё ядро. Благо продаются они в избытке. Есть и в трекерах за $20 и в часах за $8 и в модемах за $5.

Автор:  ignat99 [ Понедельник, 02 Май, 2016 19:59 ]
Заголовок сообщения:  Re: MicroA2

По теме топика. Кросс платформенная, на мой взгляд,это совместимая с https://sourceforge.net/projects/chibios/, https://github.com/PX4/NuttX

А вовсе не с Linux или Windows. И она будет востребована для реальных систем. Начиная от навигаторов и заканчивая мониторами автопилотов. Правда некоторые модули A2 мне показались тяжёлыми.

У меня стоит на сервере aos через X11

Есть 2 фала:
Auto.dsk
Configuration.XML

В каталоге с ними я просто набираю:
aos

И A2 запускаетя.

Код:
cat /usr/bin/aos
#!/bin/sh
# Template for running a public copy of UnixAos

if ulimit -n 1024 ; then
    :
else
    echo "failed:  ulimit -n 1024"
    exit 1
fi

#==================
# set home to the directory where UnixAos resides.
#
home=/usr/aos

#==================
# create a symbolic link to the installation directory (needed for
# mounting the relative file systems
# cf. Configuration.XML
#
if [ -h .aoshome ] ; then rm .aoshome ; fi
ln -s ${home}  .aoshome

#==================
# The environment variable AOSPATH defines a list of directories where
# UnixAos is looking for its components.
#
AOSPATH=".:$home/obj:$home/system:$home/fonts/Oberon:$home/fonts/ttf:$home/fonts/ccg:./source:$home/source"
export AOSPATH

#==================
# System configuration:
# Aos:
#   StackSize (kB)
#   DisplaySize (% of screen size (min 50), or absolute WxH (min 640x480))
#   TraceModules 0/1 (1: trace module loading)
#   TraceCommands 0/1 (1: trace command invocations)
#   DisableShrinkHeap 0/1 (1: shrinking heap disabled)
#
# Oberon subsystem:
#   Color 0/1 (0: FillerColor:=0; 1: FillerColor:=12)
#   MB 1/2/3  (number of mouse buttons)
#   OberonWatch 0/1
#
AOSCONFIG="StackSize 128  DisplaySize 100  Color 0"
export AOSCONFIG

#==================
# start UnixAos
#
exec $home/aos.linux "$@"


aos.linux - это исполняемый файл в который можно передать стандартные параметры.

Как видим параметры можно передать из командной строки, либо установить прямо в этом файле.
Настройки ssh приводить не буду. Но для интересующихся:

http://unix.stackexchange.com/questions ... 6285_12772

Автор:  Ярослав Романченко [ Понедельник, 02 Май, 2016 20:46 ]
Заголовок сообщения:  Re: MicroA2

ignat99 писал(а):
По теме топика. Кросс платформенная, на мой взгляд,это совместимая с https://sourceforge.net/projects/chibios/, https://github.com/PX4/NuttX
А какая в них графическая подсистема? X11?
Если да, то А2 должна там запуститься, возможно с минимальными доработками.
Фактически, что-бы А2 запустилась, нужно что-бы запустился загрузчик и что-бы была какая-то библиотека что-бы создать окно или линейный фреймбуфер.

ignat99 писал(а):
В каталоге с ними я просто набираю:
aos
И A2 запускаетя.
Я тоже пробовал и под Линуксом и под Mac OS X. Действительно, запускается!

Автор:  ignat99 [ Понедельник, 02 Май, 2016 21:25 ]
Заголовок сообщения:  Re: MicroA2

http://www.chibios.com/forum/viewtopic.php?f=3&t=2309

the uGFX side (as ChibiOS/RT is our main platform): The STM32F429i-Discovery board is fully supported by uGFX.

Обсуждение.

http://www.chibios.com/forum/viewtopic. ... 79&p=18205

Получается что для каждой графической подсистемы (графического ядра чипа или SPI), свои видимо настройки.

Автор:  Ярослав Романченко [ Понедельник, 02 Май, 2016 21:31 ]
Заголовок сообщения:  Re: MicroA2

Ну, вот, например, мы хотим портировать A2 под ChibiOS/RT...
Открываем документацию о том как создать процесс
http://wiki.chibios.org/dokuwiki/doku.p ... eatethread
Адаптируем загрузчик, под семантику, принятую в ChibiOS/RT. Собираем загрузчик, собираем ядро А2 и остальные исходники, не входящие в ядро под нужную архитектуру.
Для загрузки в параметрах указываем использование графического адаптера-заглушки - DisplayNull (я не увидел упоминаний на сайте, что есть какая-то графическая подсистема)
В Configuration.XML в секцию автозапуска добавляем что-нибудь что-бы помигало где-то светодиодами.
Запускаем.
Потом ищем спецификации какого-нибудь дисплея, подключаем к нашей отладочной плате, пишем драйвер. Прописываем вместо DisplayNull и получаем А2 с графическим интерфейсом. как-то так.

Автор:  Ярослав Романченко [ Понедельник, 02 Май, 2016 21:41 ]
Заголовок сообщения:  Re: MicroA2

На самом деле, ещё возможно придётся написать для ChibiOS/RT аналог небольшого количества модулей, идущих с префиксом Unix. Там до 10-ка модулей... Основной Unix.Glue.Mod

Автор:  Ярослав Романченко [ Понедельник, 02 Май, 2016 21:58 ]
Заголовок сообщения:  Re: MicroA2

ignat99 писал(а):
Я просто знаю людей (сами ко мне обращались по поводу логического синтезатора), поэтому уверен что не сможет не Микрон не Ангстрем-Т выпустить чип подобный MT62xx в ближайшее время. По цене - $3!!! По цене $300 смогут. Но такой не нужен.
Я, правда, цену не узнавал... Но, вот, такое есть http://baikalelectronics.ru/products/M/

Автор:  Valery Solovey [ Понедельник, 02 Май, 2016 23:14 ]
Заголовок сообщения:  Re: MicroA2

А где есть информация о том, как писать программы под A2?

Автор:  Ярослав Романченко [ Вторник, 03 Май, 2016 00:04 ]
Заголовок сообщения:  Re: MicroA2

Valery Solovey писал(а):
А где есть информация о том, как писать программы под A2?
Информации не густо и не совсем первой свежести, но есть http://svn.assembla.com/svn/oberonru/trunk/Docs/
В частности:
Об использовании многопоточности http://svn.assembla.com/svn/oberonru/tr ... mework.pdf
Обзор существующих приложений А2 http://svn.assembla.com/svn/oberonru/tr ... dation.pdf
Про реал-тайм сборщик мусора http://svn.assembla.com/svn/oberonru/tr ... s/RTGC.pdf
Быстрый вводный курс по программированию под А2 http://svn.assembla.com/svn/oberonru/tr ... tGuide.pdf
О том как искать место ошибки по сообщениям Trap (информация немного устаревшая) http://svn.assembla.com/svn/oberonru/tr ... /Traps.pdf
Небольшой обзор WinAos http://svn.assembla.com/svn/oberonru/tr ... WinAos.pdf

Хорошим источником информации также является диссертация Томаса Фрея http://e-collection.library.ethz.ch/view/eth:27966
Там, в диссертации, например, я нашёл ответ как исправить подвисание приложения, над которым бился несколько дней :)

Страница 1 из 4 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/