motofan logo
3 страниц V < 1 2 3        
> 

Carry - эмулятор., Блог.

Andy51
сообщение 17.4.2010, 16:51


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255
Модель телефона: E398, Milestone 2
Прошивка: 49R w/ElfPack2


Настроение:
^^,



Рейтинг: 1224



DmT, ну а самое главное-то, gdb-сервер, ожидается?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
G-XaD
сообщение 17.4.2010, 17:54


Мастер
****

Группа: Разработчики
Сообщений: 171
Регистрация: 6.11.2007
Из: Donetsk City / Ukraine
Пользователь №: 153 083
Модель телефона: E1, k810
Прошивка: r373_g_0e.30.79r

Рейтинг: 323



бр, "\" и "/" есть разница, но странная? Через прямой слэш файл находит но не открывает?

Код
D:\moto\carry\demo>carry -elf elfs\symple.elf
File "elfs\symple.elf" is unavaible.

D:\moto\carry\demo>carry -elf elfs\simple.elf
1782495755
64582
Hello world!
0
0

D:\moto\carry\demo>carry -elf elfs/simple.elf
1784999095
57918
// и ничего не выводит :(


дальше больше:
Код
D:\moto\carry\demo>copy elfs\PFprintf_test.elf my.elf
Скопировано файлов:         1.

D:\moto\carry\demo>carry -elf my.elf
1821156287
57918

D:\moto\carry\demo>carry -elf .\my.elf
1814185313
57918
// результаты не важны...
DONE
^C
Прикрепленный файл PFprintf_test.zip   ( 3.8 килобайт ) Кол-во скачиваний: 84
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 17.4.2010, 18:20


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



Цитата(Andy51 @ Вчера, 22:51)

DmT, ну а самое главное-то, gdb-сервер, ожидается?
*


Я бы хотел смоч сделать, посмотрим как пойдет.
В принципе не самое это и важное.
G-XaD,
Спасибо. Баг пока не нашел, но обязательно пофиксю к релизу.

Сообщение отредактировал DmT - 18.4.2010, 19:31
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 18.4.2010, 10:56


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



G-XaD,
Код
PFprintf("test: string with number, %n\n", 99);

вот эта строчка у меня вызвала некоторое удивление.
тип n согласно референсу:
Цитата
Nothing printed. The argument must be a pointer to a signed int, where the number of characters written so far is stored.

а у тебя указано 99. т.е. функция должна была записать число символов записанных до "%n" по адресу 99. Что естественно невозможно.
в результате чего получаем на выходе это:
Код
test: Simple string
test: Simple string with 2 params, 1, 2
test: Simple string with 4 params, 1, 2, 3, 4
test: Simple string with 8 params, 1, 2, 3, 4, 5, 6, 7, 8
test: string with address, 0x12345678
test: string with pointer, 0x12000009
ERROR: getting physical addr by virtual addr=0x00000063 fail: device not found.
test: string with number,
test: string with char, x
test: ANSI string, 'hello, world!'
test: Unicode string, '(u)hello, world!'
DONE



_____________________________
дописал потом:

Баг выявленный G-Xad'ом пофиксил. Ошибка была в PUSH/POP

Сообщение отредактировал DmT - 18.4.2010, 15:47
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XVilka
сообщение 20.4.2010, 3:43


Мастер
****

Группа: Разработчики
Сообщений: 244
Регистрация: 4.12.2006
Из: Москва
Пользователь №: 109 689
Модель телефона: Motorola Milestone
Прошивка: CM10

Рейтинг: 244



Поскольку код на Си - можно портировать на qemu, а у него есть поддержка gdb

Просто добавить транслятор еще один и пару файлов.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 20.4.2010, 10:13


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255
Модель телефона: E398, Milestone 2
Прошивка: 49R w/ElfPack2


Настроение:
^^,



Рейтинг: 1224



XVilka, ты думаешь, я этого уже не предлагал? Я уже давно говорил DmT - не трахай моск и поковыряй qemu лучше. И сам я его смотрел - там основная сложность в том, что он под винду собирается только в режиме полной эмуляции, а userspace - только под никсы. Впрочем, при должном усилии это исправляется.

А так щас полезет всё больше и больше ошибок типа
Цитата(DmT @ 18.4.2010, 14:56)

Баг выявленный G-Xad'ом пофиксил. Ошибка была в PUSH/POP
*



И, главное, без GDB от этого проекта вообще нет никакого толку.
Цитата(DmT @ 17.4.2010, 22:20)

В принципе не самое это и важное.
*


Вот как же неважное, если без отладки - это так, порадоваться что вот на компе работает... если конечно вообще работает. EmuElf именно так и задумывался - в первую очередь не для того, чтоб под винды гонять эльфы, а чтоб отлаживать средствами VS. Я-то надеялся, что можно будет теперь эльфы с ассемблерными вставками дебагить...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
XVilka
сообщение 20.4.2010, 15:12


Мастер
****

Группа: Разработчики
Сообщений: 244
Регистрация: 4.12.2006
Из: Москва
Пользователь №: 109 689
Модель телефона: Motorola Milestone
Прошивка: CM10

Рейтинг: 244



я просто щас переношу разработки нокии и омапзум на последний срез qemu - там достаточно просто добавлять нужные устройства и обработчик - для создания системной эмуляции Дроида. Кое-какой код можно посмотреть в skyeye.
Кстати юзерспейс сейчас собирается и под винду - не без шаманизма конечно, путем правки makefile и configure, но это меньше чем писать с нуля.

Да, в последних qemu полная поддержка не толькр gdb но и vnc.

Так что если вдруг кто решиться на qemu делать - могу помочь словом и советом , опыт уже есть.

П.С. - очень эффективное JNI - смотрите исходники nano VM и JamVM - обе очень быстро работают.
Как пример для изучения схем работы - отличный. И там хорошо реализована трансляция библиотек в нативный код.

Сообщение отредактировал XVilka - 20.4.2010, 15:14
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 21.4.2010, 5:12


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



Цитата(Andy51 @ Вчера, 16:13)

И, главное, без GDB от этого проекта вообще нет никакого толку.
*


Ну впринципе я вижу, но я с тобой согласен что gdb нужен по любому. Вот только я не знаю как к нему подступиться.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 26.4.2010, 16:24


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



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

Сообщение отредактировал DmT - 26.4.2010, 18:19
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 27.4.2010, 9:18


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


Настроение:
...



Рейтинг: 1535



DmT, так потоки ещё с доса были))) в чём проблема то многозадачности?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 27.4.2010, 10:59


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



Цитата(baat @ Сегодня, 15:18)

в чём проблема то многозадачности?
*


Ну попробуй сделать, если это так просто
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 29.4.2010, 16:37


Гуру
******

Группа: Разработчики
Сообщений: 1 327
Регистрация: 20.7.2006
Из: Г. Омск
Пользователь №: 92 049
Модель телефона: C380 и Talkabout
Прошивка: разные

Рейтинг: 510



Цитата(DmT @ 26.4.2010, 23:24)

К тому же надо эмулировать невытесняющую многозадачность, на невытесняющую пока руки не поднимаются.
*


Сам понял, что написал? smile.gif
А вообще - нужно для каждого потока создать контекст процессора и написать функцию эмулятора таким образом, чтобы она эмулировала работу одного из процессоров на протяжении некоторого отрезка кода. И возвращала структуру с описанием, что для этого потока нужно вне неё сделать. Это упростит решение многих проблем и с многозадачностью, и с callback'ами, и наверняка ещё с чем-нибудь.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 29.4.2010, 18:06


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255
Модель телефона: E398, Milestone 2
Прошивка: 49R w/ElfPack2


Настроение:
^^,



Рейтинг: 1224



В qemu многозадачность реализована с помощью потоков операционной системы. И в каждом потоке выполняется функция эмуляции независимо. Во всяком случае, такой подход проще, чем написание ещё и собственного шедулера потоков.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
baat
сообщение 29.4.2010, 18:25


Самый Наглый
******

Группа: В отставке
Сообщений: 1 282
Регистрация: 18.5.2006
Из: Дом, милый дом...
Пользователь №: 83 674
Модель телефона: старая модель...
Прошивка: какая уж есть...
Победитель конкурса 2008


Настроение:
...



Рейтинг: 1535



Andy51, я про это уже писал, но видимо вилосипедомания не только у меня проявляется)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 2.5.2010, 9:22


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



Andy51,
Да, спасибо, я уже знаю. своими силами писать менеджер потоков я естественно не буду. И не планоровал изначально. Другое дело что приложения (Application) управляются AFW и все работают в одном потоке. И при этому еще обрабатываются всякие AFWшные функции типа рассылки ивентов.
Многозадачность (ту что на телефоне обеспечивает VRTX) я точно сделаю через многозадачность хостовой операционки.
А многозадачность уровня AFW еще буду думать как сделать так, чтобы было наиболее похоже с тем что на телефоне.
Ты кстати не знаешь в какой момент происходит переключение выполняемого приложения в AFW?
Цитата(baat @ 30.4.2010, 0:25)

я про это уже писал
*


Не вижу.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
motoprogger
сообщение 2.5.2010, 13:07


Гуру
******

Группа: Разработчики
Сообщений: 1 327
Регистрация: 20.7.2006
Из: Г. Омск
Пользователь №: 92 049
Модель телефона: C380 и Talkabout
Прошивка: разные

Рейтинг: 510



Цитата(DmT @ Сегодня, 16:22)

Ты кстати не знаешь в какой момент происходит переключение выполняемого приложения в AFW?
*


Если я правильно понял, для AFW в приложениях нет потоков, есть только обработчики ивентов, так что ни о каком "переключении" говорить не приходится. AFW вызывает обработчики ивентов у тех приложений, которые на них подписаны.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 2.5.2010, 15:54


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



Цитата(motoprogger @ Сегодня, 19:07)

Если я правильно понял, для AFW в приложениях нет потоков, есть только обработчики ивентов, так что ни о каком "переключении" говорить не приходится. AFW вызывает обработчики ивентов у тех приложений, которые на них подписаны.
*


Вопрос всем: Тогда в какой момент рассылаются ивенты и в каком порядке. И правильно ли я понимаю, что сначала формируется стек ивентов, а потом вызывается обработчик событий? или по другому? например добавляется одно событие в стек, вызывается обработчик, затем еще одно событие.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DarkCoder
сообщение 2.5.2010, 16:58


Интересующийся
**

Группа: Пользователи
Сообщений: 70
Регистрация: 26.9.2009
Пользователь №: 206 965
Модель телефона: Motorola V3i

Рейтинг: 34.5



Я конечно же в этом не разбираюсь, но решил пофлудить.

Я считаю что так:
Цитата
сначала формируется стек ивентов, а потом вызывается обработчик событий



Но если делать так
Цитата
добавляется одно событие в стек, вызывается обработчик, затем еще одно событие

то зачем стек вообще, если сразу вызывается обработчик.

smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 3.5.2010, 17:55


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255
Модель телефона: E398, Milestone 2
Прошивка: 49R w/ElfPack2


Настроение:
^^,



Рейтинг: 1224



Цитата(DmT @ Вчера, 19:54)

добавляется одно событие в стек, вызывается обработчик
*


Так нередко происходит взаимодействие с UIS. Например, в том же древнем ListTest:
Код

    // Добавляем в текущий список ивентов новый ивент, предназначенный для нашего списка
    status = APP_UtilAddEvUISListData( ev_st, app, 0,
                                       start, num,
                                       FBF_LEAVE,
                                       sizeof(LIST_ENTRY_T)*num,
                                       plist );
    if( status!=RESULT_FAIL )
    {
        // Передаём наш список ивентов непосредственно диалогу для обработки
        status = UIS_HandleEvent(app->dialog, ev_st);
    }
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
DmT
сообщение 3.5.2010, 19:04


Мото-Портной
******

Группа: Разработчики
Сообщений: 1 175
Регистрация: 31.3.2007
Пользователь №: 129 181
Модель телефона: LG GW620, L7e и др.
Победитель конкурса 2008

Рейтинг: 680



Цитата(Andy51 @ Вчера, 23:55)

status = APP_UtilAddEvUISListData( ev_st, app, 0,
*


Цитата(Andy51 @ Вчера, 23:55)

status = UIS_HandleEvent(app->dialog, ev_st);
*


Ага. Понял более менее.
А еще, если знаешь - скажи: AFW в соответствии с приоритетами приложений вызывает обработчики или в порядке регистрации?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Andy51
сообщение 4.5.2010, 7:03


0xFFFF
******

Группа: Разработчики
Сообщений: 832
Регистрация: 28.3.2006
Из: Нижний Новгород
Пользователь №: 76 255
Модель телефона: E398, Milestone 2
Прошивка: 49R w/ElfPack2


Настроение:
^^,



Рейтинг: 1224



DmT, насколько я помню, в afw есть три очереди приложений, каждая из которых имеет свой приоритет, и в каждой приложения отсортированы по своему приоритету
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Carry - эмулятор., Блог. · Эльфы, их разработка и портирование · Forum
 

3 страниц V < 1 2 3
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 3.8.2025, 22:00

Форум живёт: