Saturday, 20-Apr-2024, 02.54.22
Welcome Guest | RSS
Motorola Gaming site
Login form
Section categories
Multimedia [5]
System [0]
Others [7]
Search
Site friends
  • Create your own site
  • Statistics

    Total online: 1
    Guests: 1
    Users: 0



    Main » Files » Applications » Others

    Porting Guide for Motorola A1200, A1600, ROKR E6 (motoezx) (Ru)
    [ ] 30-Oct-2009, 00.19.35

    Porting Guide for Motorola A1200, A1600, ROKR E6 (motoezx) (Ru)

    требования: Windows или Linux

    Для пользователей винды рекомендую andlinux который можно запускать под виндой

    тестировано с andlinux beta2 final KDE version, 537 MB

    качаем motoezx-toolchain.tar.gz, megaupload-mirror и копируем  в зашареную папку с андлинуксом

    Установка окружения :

    запускаем 'Konsole' под андлинуксом, и выполняе

    sudo mkdir /mmc
    sudo chown user -R /opt
    sudo chown user -R /home
    sudo chown user -R /mmc
    mkdir /opt/toolchains
    mkdir /home/a1200
    mkdir /home/a1200/build
    mkdir /mmc/mmca1
    tar -C /opt/toolchains -xzvf /mnt/win/motoezx-toolchain.tar.gz
    cp /opt/toolchains/motoezx/setenv-a1200.sh /home/a1200
    cp /opt/toolchains/motoezx/setenv-a1200-2.sh /home/a1200


    теперь окружение установлено, и можно приступать к портированию

    запускаем окружение


    cd /home/a1200
    . setenv-a1200.sh


    качаем любые исходники
    для примера newvox 1.0
    распаковываем в /home/a1200


    cd /home/a1200
    tar -xzvf /mnt/win/newvox-1.0.tar.gz

    cd newvox-1.0
    ./configure --host=arm-linux-gnu
    make


    newvox.log.txt
    newvox.log.png

    Если конфигурирование и компиляция прошла без ошибок, у нас появится исполнительный файл 'newvox' и мы можем тестировать его в телефоне, копируем файл на карточку памяти в телефон и запускаем через телнет или консоль

    cd /mmc/mmca1
    export LD_LIBRARY_PATH=/mmc/mmca1/games/lib:$LD_LIBRARY_PATH
    chmod +x newvox
    ./newvox


    Если в исходниках отсутствует файл configure
    вручную редактируем Makefile
    ищем и заменяем строчки

    CC:=gcc ---> CC:=arm-linux-gnu-gcc
    cc=gcc ---> CC=arm-linux-gnu-gcc
    cxx=g++ ---> CXX=arm-linux-gnu-g++
    ld=ld ---> LD=arm-linux-gnu-ld
    ar=ar ---> AR=arm-linux-gnu-ar
    as=as---> AS=arm-linux-gnu-as
    oc=oc ---> OC=arm-linux-gnu-objcopy
    ranlib=ranlib ---> RANLIB=arm-linux-gnu-ranlib
    strip=strip ---> STRIP=arm-linux-gnu-strip



    Решение для добавления сворачивания приложения при входящем вызове (sms, флипе, других телефонных событиях) с остановкой звука делаем через замену процедуры SDL_PollEvent на собственную mySDL_PollEvent

    -------------example.h-----------------------
    int mySDL_PollEvent(SDL_Event *event);

    // audio use sdl-lib
    SDL_AudioSpec obtained;
    boolean _audioSuspended;

    void suspendAudio();
    int resumeAudio();

    // audio use sdl-mixer lib
    void suspendAudio();
    int
    resumeAudio();
    void closeAudio(void);
     

    --------------example.cpp--------------------
    int mySDL_PollEvent(SDL_Event *event)  {
        int _r= SDL_PollEvent(event);
        if (!_r)
            return 0;
        if (event->type == SDL_ACTIVEEVENT) {
            if (event->active.state == SDL_APPINPUTFOCUS && !event->active.gain) {
                suspendAudio();

                for (;;) {
                    _r = SDL_WaitEvent(event);
                    if (!_r)
                        continue;
                    if (event->type == SDL_QUIT)
                        return 1;
                    if (event->type != SDL_ACTIVEEVENT)
                        continue;
                    if (event->active.state == SDL_APPINPUTFOCUS && event->active.gain) {
                        resumeAudio();
                            return 1;
                    }
                }
            }
        }
      return _r;
    }

    // if audio use sdl-lib
    void suspendAudio() {
        SDL_CloseAudio();
        _audioSuspended = true;
    }

    int resumeAudio() {
        if (SDL_OpenAudio(&obtained, NULL) < 0){
            return -1;
        }
        SDL_PauseAudio(0);
        _audioSuspended = false;
        return 0;
    }
     
    //
    if audio
    use sdl-mixer-lib
    void suspendAudio()
    {
      Mix_SuspendAudio();
    }

    int resumeAudio() {
      int r = Mix_ResumeAudio();
      if(r == -1){
        closeAudio();
        return -1;
      }
    }

    void closeAudio(void) {
          Mix_CloseAudio();
    }


    или смотрим в примерах (звук через sdl-lib) hheretic-0.2.0-1200-lubomyr.patch and hhexen-1.6.0-1200-lubomyr.patch (звук через sdlmixer-lib) добавлю позже

    Мониторинг проблем "Segmentation fault"
    Качаем gdb и распаковываем в телефон /mmc/mmca1/games
    приложения должны быть собраны с префиксом '-g' и не должны быть пострипаные


    ulimit -c unlimited
    ./<app>

    Segmentation fault (core dumped)
    файл <core> будет создан
    ../bin/gdb ./<app> <core>

    утилита strace

    ../bin/strace ./app


    мануал в разработке...
    Category: Others | Added by: lubomyr
    Views: 2169 | Downloads: 0 | Comments: 2 | Rating: 0.0/0 |
    Total comments: 1
    1 ky  
    0
    под ubuntu 9.04 или 9.10 рабатать будет?

    Name *:
    Email *:
    Code *: