DmT, ну а самое главное-то, gdb-сервер, ожидается?
![]() Carry - эмулятор., Блог. |
![]() |
![]() |
![]() |
![]() |
![]() |
Здравствуйте, гость ( Вход | Регистрация ) |
![]() Carry - эмулятор., Блог. |
Andy51 |
![]() |
![]() 0xFFFF ![]() ![]() ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 832 Регистрация: 28.3.2006 Из: Нижний Новгород Пользователь №: 76 255 Модель телефона: E398, Milestone 2 Прошивка: 49R w/ElfPack2 Настроение: ^^, Рейтинг: 1224 ![]() |
DmT, ну а самое главное-то, gdb-сервер, ожидается?
|
G-XaD |
![]() |
|
![]() Мастер ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 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
| |
DmT |
![]() |
Мото-Портной ![]() ![]() ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 1 175 Регистрация: 31.3.2007 Пользователь №: 129 181 Модель телефона: LG GW620, L7e и др. ![]() Рейтинг: 680 ![]() |
|
DmT |
![]() |
Мото-Портной ![]() ![]() ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 1 175 Регистрация: 31.3.2007 Пользователь №: 129 181 Модель телефона: LG GW620, L7e и др. ![]() Рейтинг: 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 |
![]() |
![]() Мастер ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 244 Регистрация: 4.12.2006 Из: Москва Пользователь №: 109 689 Модель телефона: Motorola Milestone Прошивка: CM10 Рейтинг: 244 ![]() |
Поскольку код на Си - можно портировать на qemu, а у него есть поддержка gdb
Просто добавить транслятор еще один и пару файлов. |
Andy51 |
![]() |
![]() 0xFFFF ![]() ![]() ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 832 Регистрация: 28.3.2006 Из: Нижний Новгород Пользователь №: 76 255 Модель телефона: E398, Milestone 2 Прошивка: 49R w/ElfPack2 Настроение: ^^, Рейтинг: 1224 ![]() |
XVilka, ты думаешь, я этого уже не предлагал? Я уже давно говорил DmT - не трахай моск и поковыряй qemu лучше. И сам я его смотрел - там основная сложность в том, что он под винду собирается только в режиме полной эмуляции, а userspace - только под никсы. Впрочем, при должном усилии это исправляется.
А так щас полезет всё больше и больше ошибок типа Цитата(DmT @ 18.4.2010, 14:56) И, главное, без GDB от этого проекта вообще нет никакого толку. Цитата(DmT @ 17.4.2010, 22:20) Вот как же неважное, если без отладки - это так, порадоваться что вот на компе работает... если конечно вообще работает. EmuElf именно так и задумывался - в первую очередь не для того, чтоб под винды гонять эльфы, а чтоб отлаживать средствами VS. Я-то надеялся, что можно будет теперь эльфы с ассемблерными вставками дебагить... |
XVilka |
![]() |
![]() Мастер ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 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 |
![]() |
Мото-Портной ![]() ![]() ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 1 175 Регистрация: 31.3.2007 Пользователь №: 129 181 Модель телефона: LG GW620, L7e и др. ![]() Рейтинг: 680 ![]() |
|
DmT |
![]() |
Мото-Портной ![]() ![]() ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 1 175 Регистрация: 31.3.2007 Пользователь №: 129 181 Модель телефона: LG GW620, L7e и др. ![]() Рейтинг: 680 ![]() |
Чето я забыл сделать коллбеки. Вернулся к ним. Столкнулся с серией подводных камней. Тут думать надо...
К тому же надо эмулировать невытесняющую многозадачность, на невытесняющую пока руки не поднимаются. Сообщение отредактировал DmT - 26.4.2010, 18:19 |
baat |
![]() |
![]() Самый Наглый ![]() ![]() ![]() ![]() ![]() ![]() Группа: В отставке Сообщений: 1 282 Регистрация: 18.5.2006 Из: Дом, милый дом... Пользователь №: 83 674 Модель телефона: старая модель... Прошивка: какая уж есть... ![]() Настроение: ... Рейтинг: 1535 ![]() |
DmT, так потоки ещё с доса были))) в чём проблема то многозадачности?
|
DmT |
![]() |
Мото-Портной ![]() ![]() ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 1 175 Регистрация: 31.3.2007 Пользователь №: 129 181 Модель телефона: LG GW620, L7e и др. ![]() Рейтинг: 680 ![]() |
|
motoprogger |
![]() |
![]() Гуру ![]() ![]() ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 1 327 Регистрация: 20.7.2006 Из: Г. Омск Пользователь №: 92 049 Модель телефона: C380 и Talkabout Прошивка: разные Рейтинг: 510 ![]() |
Цитата(DmT @ 26.4.2010, 23:24) К тому же надо эмулировать невытесняющую многозадачность, на невытесняющую пока руки не поднимаются. Сам понял, что написал? ![]() А вообще - нужно для каждого потока создать контекст процессора и написать функцию эмулятора таким образом, чтобы она эмулировала работу одного из процессоров на протяжении некоторого отрезка кода. И возвращала структуру с описанием, что для этого потока нужно вне неё сделать. Это упростит решение многих проблем и с многозадачностью, и с callback'ами, и наверняка ещё с чем-нибудь. |
Andy51 |
![]() |
![]() 0xFFFF ![]() ![]() ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 832 Регистрация: 28.3.2006 Из: Нижний Новгород Пользователь №: 76 255 Модель телефона: E398, Milestone 2 Прошивка: 49R w/ElfPack2 Настроение: ^^, Рейтинг: 1224 ![]() |
В qemu многозадачность реализована с помощью потоков операционной системы. И в каждом потоке выполняется функция эмуляции независимо. Во всяком случае, такой подход проще, чем написание ещё и собственного шедулера потоков.
|
baat |
![]() |
![]() Самый Наглый ![]() ![]() ![]() ![]() ![]() ![]() Группа: В отставке Сообщений: 1 282 Регистрация: 18.5.2006 Из: Дом, милый дом... Пользователь №: 83 674 Модель телефона: старая модель... Прошивка: какая уж есть... ![]() Настроение: ... Рейтинг: 1535 ![]() |
Andy51, я про это уже писал, но видимо вилосипедомания не только у меня проявляется)
|
DmT |
![]() |
Мото-Портной ![]() ![]() ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 1 175 Регистрация: 31.3.2007 Пользователь №: 129 181 Модель телефона: LG GW620, L7e и др. ![]() Рейтинг: 680 ![]() |
Andy51,
Да, спасибо, я уже знаю. своими силами писать менеджер потоков я естественно не буду. И не планоровал изначально. Другое дело что приложения (Application) управляются AFW и все работают в одном потоке. И при этому еще обрабатываются всякие AFWшные функции типа рассылки ивентов. Многозадачность (ту что на телефоне обеспечивает VRTX) я точно сделаю через многозадачность хостовой операционки. А многозадачность уровня AFW еще буду думать как сделать так, чтобы было наиболее похоже с тем что на телефоне. Ты кстати не знаешь в какой момент происходит переключение выполняемого приложения в AFW? Цитата(baat @ 30.4.2010, 0:25) Не вижу. |
motoprogger |
![]() |
![]() Гуру ![]() ![]() ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 1 327 Регистрация: 20.7.2006 Из: Г. Омск Пользователь №: 92 049 Модель телефона: C380 и Talkabout Прошивка: разные Рейтинг: 510 ![]() |
Цитата(DmT @ Сегодня, 16:22) Если я правильно понял, для AFW в приложениях нет потоков, есть только обработчики ивентов, так что ни о каком "переключении" говорить не приходится. AFW вызывает обработчики ивентов у тех приложений, которые на них подписаны. |
DmT |
![]() |
Мото-Портной ![]() ![]() ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 1 175 Регистрация: 31.3.2007 Пользователь №: 129 181 Модель телефона: LG GW620, L7e и др. ![]() Рейтинг: 680 ![]() |
Цитата(motoprogger @ Сегодня, 19:07) Если я правильно понял, для AFW в приложениях нет потоков, есть только обработчики ивентов, так что ни о каком "переключении" говорить не приходится. AFW вызывает обработчики ивентов у тех приложений, которые на них подписаны. Вопрос всем: Тогда в какой момент рассылаются ивенты и в каком порядке. И правильно ли я понимаю, что сначала формируется стек ивентов, а потом вызывается обработчик событий? или по другому? например добавляется одно событие в стек, вызывается обработчик, затем еще одно событие. |
DarkCoder |
![]() |
Интересующийся ![]() ![]() Группа: Пользователи Сообщений: 70 Регистрация: 26.9.2009 Пользователь №: 206 965 Модель телефона: Motorola V3i Рейтинг: 34.5 ![]() |
Я конечно же в этом не разбираюсь, но решил пофлудить.
Я считаю что так: Цитата сначала формируется стек ивентов, а потом вызывается обработчик событий Но если делать так Цитата добавляется одно событие в стек, вызывается обработчик, затем еще одно событие то зачем стек вообще, если сразу вызывается обработчик. ![]() |
Andy51 |
![]() |
![]() 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 |
![]() |
Мото-Портной ![]() ![]() ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 1 175 Регистрация: 31.3.2007 Пользователь №: 129 181 Модель телефона: LG GW620, L7e и др. ![]() Рейтинг: 680 ![]() |
|
Andy51 |
![]() |
![]() 0xFFFF ![]() ![]() ![]() ![]() ![]() ![]() Группа: Разработчики Сообщений: 832 Регистрация: 28.3.2006 Из: Нижний Новгород Пользователь №: 76 255 Модель телефона: E398, Milestone 2 Прошивка: 49R w/ElfPack2 Настроение: ^^, Рейтинг: 1224 ![]() |
DmT, насколько я помню, в afw есть три очереди приложений, каждая из которых имеет свой приоритет, и в каждой приложения отсортированы по своему приоритету
|
![]() ![]() |
Текстовая версия | Сейчас: 3.8.2025, 22:00 |
Форум живёт: