Портирование Pixilang на Dingoo A320

Pixilang по русски
User avatar
Al_Rado
Posts: 239
Joined: Tue Dec 04, 2007 2:33 pm
Location: Krasnodar
Contact:

Re: Портирование Pixilang на Dingoo A320

Post by Al_Rado » Fri Feb 05, 2010 4:08 am

Не нашел как вставить сюда видео, вот ссылка http://rutube.ru/tracks/2901106.html?v= ... 992b0ae10f
ВекторКодПиксельПолигон - ВотЧтоЯЛюблю!

User avatar
NightRadio
Site Admin
Posts: 3059
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Портирование Pixilang на Dingoo A320

Post by NightRadio » Fri Feb 05, 2010 9:43 am

Классно! Спасибо за видик

User avatar
Al_Rado
Posts: 239
Joined: Tue Dec 04, 2007 2:33 pm
Location: Krasnodar
Contact:

Re: Портирование Pixilang на Dingoo A320

Post by Al_Rado » Fri Feb 05, 2010 12:45 pm

Да, как и обещал, сам Pixilang с примерами под Dingux http://pixelcode.ucoz.ru/Al-Rado/Pixilang_Dingoo.zip
Думаю в скором времени сделаем патч к исходникам
ВекторКодПиксельПолигон - ВотЧтоЯЛюблю!

User avatar
J3d1
Posts: 175
Joined: Wed Oct 15, 2008 4:49 am
Location: г. Абакан, Хакасия
Contact:

Re: Портирование Pixilang на Dingoo A320

Post by J3d1 » Thu Jul 08, 2010 3:46 pm

Попытался еще раз скомпилировать pixilang1.6 под dingux, пробовал разные SUNDOG DEFINES в target Linux. К сожалению все остается по-старому: если программа на пикси находится в boot.txt и лежит в одной папке с pixilang, то она работает (кроме диалогов загрузки/сохранения ф-ла), а если просто запускаем pixilang (без boot.txt) то он "вылетает", причем видно, что мелькает GUI, но сразу "вылетает". В консоли при этом следующее:

Code: Select all

Sundog Enine v1.3
Jul 8 2010
STARTING...
MAIN: device started
MAIN: screen_xsize = 320
MAIN: screen_ysize = 240
MAIN: system palette init
MAIN: wmanager initialized
Sound stream initialized
Segmentation fault
Причем segmentation fault остается к консоли и после работы boot.txt тоже.
Прошу помощи в компиляции.

Вот крайний вариант модифицированного Makefile:

Code: Select all

ifeq ($(MAKECMDGOALS),)
    $(error No target selected. Please type "make palm", "make linux" or "make wince")
    exit
endif

## ------------------------------------------ ##
## Main target options:                       ##
## ------------------------------------------ ##

SUNDOG = ../../sundog_engine/

ifeq ($(MAKECMDGOALS),palm)
    SDK = /usr/local/sdk-5r3/include/
    SUNDOG_DEFINES = \
	-DARCH_ARM \
	-DPALMOS \
	-DCOLOR16BITS \
	-DDIRECTDRAW \
	-DSLOWMODE \
	-DSTYPE_INT16
    MCC = m68k-palmos-gcc -O2
    CC = arm-elf-gcc -O3
endif
ifeq ($(MAKECMDGOALS),linux)
    #(remove -lrt on FreeBSD and Cygwin)
    # X11 (OpenGL) libs:
    #LIBS = -L/usr/X11R6/lib -lpthread -lrt -lstdc++ -lX11 -lGL -lXext
    # X11 libs:
    #LIBS = -L/usr/X11R6/lib -lpthread -lrt -lstdc++ -lX11 
    # SDL libs:
    LIBS = -L/usr/X11R6/lib -lpthread -lrt -lstdc++ -lSDL
    SUNDOG_DEFINES = \
        -DLINUX \
        -DCOLOR16BITS \
	-DDIRECTDRAW \
	-DRGB565 \
	-DSLOWMODE \
	-DSTYPE_INT16
    #CC = mipsel-linux-gcc -s
    CC = /opt/mipsel-linux-uclibc/usr/bin/mipsel-linux-gcc -O3 -s
    #CXX = mipsel-linux-gcc -s
    CXX = /opt/mipsel-linux-uclibc/usr/bin/mipsel-linux-gcc -O3 -s
endif
ifeq ($(MAKECMDGOALS),wince)
    SUNDOG_DEFINES = \
	-DARCH_ARM \
	-DWINCE \
	-DCOLOR16BITS \
	-DDIRECTDRAW \
	-DRGB565 \
	-DSLOWMODE \
	-DSTYPE_INT16
    CC = arm-wince-mingw32ce-gcc -O3 -s -fno-exceptions
    CXX = arm-wince-mingw32ce-gcc -O3 -s -fno-exceptions
endif

SUNDOG_DEFINES += \
	-DLIB_GIF \
	-DLIB_JPG \
	-DLIB_PSYTEXX \
	-DLIB_SUNVOX

## ------------------------------------------ ##
## Directories:                               ##
## ------------------------------------------ ##

MAIN = $(SUNDOG)main/
CMAIN = $(MAIN)code/
MEM = $(SUNDOG)memory/
CMEM = $(MEM)code/
SOUND = $(SUNDOG)sound/
CSOUND = $(SOUND)code/
CORE = $(SUNDOG)core/
CCORE = $(CORE)code/
FS = $(SUNDOG)filesystem/
CFS = $(FS)code/
TM = $(SUNDOG)time/
CTM = $(TM)code/
WM = $(SUNDOG)window_manager/
CWM = $(WM)code/
XML = $(SUNDOG)xml/
CXML = $(XML)code/
UTILS = $(SUNDOG)utils/
CUTILS = $(UTILS)code/
ARM = ARMPalmOS/
CARM = $(ARM)code/

## ------------------------------------------ ##
## Object files and includes:                 ##
## ------------------------------------------ ##

DEFINES = $(SUNDOG_DEFINES) -I$(SUNDOG)

ifeq ($(MAKECMDGOALS),palm)
    ARM_PALM_INCS = -IARMPalmOS/ -I$(SDK) -I$(SDK)libraries -I$(SDK)Extensions/ExpansionMgr -I$(SDK)Dynamic -I$(SDK)Core -I$(SDK)Core/Hardware -I$(SDK)Core/System -I$(SDK)Core/System/Unix -I$(SDK)Core/ui -I$(SDK)Core/UI -I$(SDK)Libraries
    ARM_PALM_FLAGS = -DNATIVE -mcpu=arm9tdmi -nostartfiles -ffixed-r9 -mpic-register=r10 -msingle-pic-base -fPIC
    ARM_PALM_FILES = $(CARM)palm_functions.cpp $(ARM)PalmTypes.h $(ARM)DebugMgr.h $(ARM)palm_functions.h
    ARM_PALM_OBJECTS = palm_functions.o
    DEFINES += $(ARM_PALM_INCS) $(ARM_PALM_FLAGS) $(ARM_PALM_DEFINES)
endif

ifeq ($(MAKECMDGOALS),wince)
    DEFINES += -IResources/ -IWinCE/
endif

SOURCES := \
           $(wildcard ../main/*.cpp) \
           $(wildcard ../main/lib_xml/code/*.cpp) \
           $(wildcard $(SUNDOG)core/code/*.cpp) \
           $(wildcard $(SUNDOG)filesystem/code/*.cpp) \
           $(wildcard $(SUNDOG)main/code/*.cpp) \
           $(wildcard $(SUNDOG)memory/code/*.cpp) \
           $(wildcard $(SUNDOG)sound/code/*.cpp) \
           $(wildcard $(SUNDOG)time/code/*.cpp) \
           $(wildcard $(SUNDOG)utils/code/*.cpp) \
           $(wildcard $(SUNDOG)window_manager/code/*.cpp) \
           $(wildcard $(SUNDOG)window_manager/regions/*.cpp)
ifneq ($(findstring LIB_GIF,$(SUNDOG_DEFINES)),)
    SOURCES += $(wildcard ../main/lib_gif/*.cpp)
endif
ifneq ($(findstring LIB_JPG,$(SUNDOG_DEFINES)),)
    SOURCES += $(wildcard ../main/lib_jpg/*.cpp) 
endif
ifneq ($(findstring LIB_PSYTEXX,$(SUNDOG_DEFINES)),)
    SOURCES += $(wildcard ../main/lib_psytexx/code/*.cpp)
endif
ifneq ($(findstring LIB_SUNVOX,$(SUNDOG_DEFINES)),)
    SOURCES += $(wildcard ../main/lib_sunvox/*.cpp) 
    SOURCES += $(wildcard ../main/lib_sunvox/psynth/*.cpp)
endif
OBJECTS := $(patsubst %.cpp,%.o,$(SOURCES))
DEPS := $(patsubst %.o,%.d,$(OBJECTS))

%.d : %.cpp
	@set -e; rm -f $@; \
	$(CC) -M $(CPPFLAGS) $(DEFINES) $< > $@.$$$$; \
	sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
	rm -f $@.$$$$

-include $(DEPS)

## ------------------------------------------ ##
## Main rules for different targets:          ##
## ------------------------------------------ ##

linux: $(OBJECTS)
	$(CC) $(DEFINES) -o pixilang $(OBJECTS) $(LIBS)

palm: $(OBJECTS) $(ARM_PALM_OBJECTS)
#Link main code ( with special ARM script - armscript.ld ) :
	$(CC) $(DEFINES) -o main_palm.o $(OBJECTS) $(ARM_PALM_OBJECTS) -Xlinker --script=ARMFiles/armscript.ld
#Create BIN files from the program_palm.o :
	arm-elf-objcopy -j .text -O binary main_palm.o armcode
	split -b 64000 armcode armc
	mv armcaa armc0000.bin
	mv armcab armc0001.bin
	mv armcac armc0002.bin
	mv armcad armc0003.bin
	mv armcae armc0004.bin
	mv armcaf armc0005.bin
	arm-elf-objcopy -j .got -O binary main_palm.o armg0000.bin
	arm-elf-objcopy -j .alldata -O binary main_palm.o armd0000.bin
	arm-elf-objcopy -j .rel -O binary main_palm.o armr0000.bin
#Create Palm resources ( *.BIN files ) :
	pilrc Resources/resources.rcp
#Build PRC file :
	$(MCC) ARMFiles/arm_starter.cpp $(SUNDOG_DEFINES) -o arm_starter.o
	m68k-palmos-obj-res arm_starter.o
	build-prc -v 1.0 ARMFiles/info.def -o pixilang.prc *.grc *.bin

wince: $(OBJECTS)
	arm-wince-mingw32ce-windres Resources/wince_rc.rc wince_rc.o
	$(CC) $(DEFINES) -o pixilang.exe $(OBJECTS) wince_rc.o $(LIBS)

$(OBJECTS):
	$(CC) $(DEFINES) -c $(CFLAGS) $(patsubst %.o,%.cpp,$@) -o $@

$(ARM_PALM_OBJECTS): $(ARM_PALM_FILES) 
	$(CC) $(DEFINES) -c $(CARM)palm_functions.cpp

## ------------------------------------------ ##
##                                            ##
## ------------------------------------------ ##

clean:
	rm -f *.o *.grc *.bin armcode $(OBJECTS) $(patsubst %.d,%.d*,$(DEPS))

Хотел выложить лог компиляции, но он в один пост не входит (более 60 000 символов). Ерроров там нет, одни варнинги. Если нужно - выложу.

User avatar
Al_Rado
Posts: 239
Joined: Tue Dec 04, 2007 2:33 pm
Location: Krasnodar
Contact:

Re: Портирование Pixilang на Dingoo A320

Post by Al_Rado » Thu Jul 08, 2010 6:41 pm

Да, когда я портировал Pixilang под Dingux, тоже не понял почему не отображается встроенный файловый диалог (
Пока обходить проблему с открытием файлов можно прописав в конфиге Selector = yes.
Вот более подробное описание установки:

Для того чтобы установить Pixilang на Dingux, Вам необходимо сделать следующее:
1. Скопировать файлы pixilang и config.ini на флешку динги, например в папку \local\Pixilang
Сюда же можно скопировать и папку с примерами программ pixilang_dingoo_examples
2. Скопировать иконку для пиксиленга в папку где хранятся иконки для данной темы и раздела, для DMenu 0.6, темы toddler и раздела media путь будет таким:
\local\dmenu\themes\toddler\res\media
3. Добавить в файл \local\dmenu\themes\toddler\menu_media.cfg такие строчки:

MenuItem Pixilang
{
Icon = "res/media/pixilang.png"
Name = "Pixilang"
Executable = "./Pixilang"
WorkDir = "/usr/local/Pixilang"
Selector = yes
}

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

Как работает: выбираем пиксиланг в меню, выбираем программу в .txt
Выход из программ происходит по нажатию Select.
ВекторКодПиксельПолигон - ВотЧтоЯЛюблю!

User avatar
J3d1
Posts: 175
Joined: Wed Oct 15, 2008 4:49 am
Location: г. Абакан, Хакасия
Contact:

Re: Портирование Pixilang на Dingoo A320

Post by J3d1 » Fri Jul 09, 2010 1:37 pm

Спасибо, Al-Rado, но это возможности самого меню в dingux.

User avatar
J3d1
Posts: 175
Joined: Wed Oct 15, 2008 4:49 am
Location: г. Абакан, Хакасия
Contact:

Re: Портирование Pixilang на Dingoo A320

Post by J3d1 » Wed Jul 28, 2010 6:53 pm

Удалось скомпилировать pixilang v3.0a003 для Dingux (кстати даже без warnings) :D
исполняемый файл:http://narod.ru/disk/23198123000/pixila ... cpu10.html
модифицированные исходники pixilang v3.0a003:http://narod.ru/disk/23198188000/source ... ar.gz.html
Приятности: теперь работает родное меню выбора pixi-программы!
Потестировал второпях графические примеры, вот результат:
dots and lines - отлично, только отрисованные примитивы не исчезают с экрана полностью;
drawing -n/a из-за отсутствия поддержки мыши в моем dingux (надо прикрутить);
lissajous_curve by Zuf - отлично;
load jpeg - хорошо (иногда небольшие лаги);
math - удовл. (ощутимые лаги);
math2 и 3 - слайд-шоу для особо терпеливых, но качество графики - отл.
screen resize - удовл;
zbuffer - отлично.
Результаты с лагами - это, наверное, из-за soft-float, т.к. hard-float там вроде-бы нет =)
Можно как и раньше автоматически запускать boot.txt при старте pixilang.
Порт не полный - требуется сделать управление меню с кнопок. Пока работают две кнопки и пад для навигации: вверх по меню и выход из pixilang - SELECT, запуск pixi-проги - X.
Last edited by J3d1 on Thu Jul 29, 2010 12:59 pm, edited 1 time in total.

User avatar
Al_Rado
Posts: 239
Joined: Tue Dec 04, 2007 2:33 pm
Location: Krasnodar
Contact:

Re: Портирование Pixilang на Dingoo A320

Post by Al_Rado » Thu Jul 29, 2010 10:24 am

О круто! :Yahoo!: Оперативно ты )
Да pixi-menu в олдскул стиле как раз в точку!
Действительно всё так работает - только рисовалка не рисует и с эмуляцией мыши - видимо подогнать цвета нужно будет в ней (либо с цветом, либо с прозрачностью траблы)
ВекторКодПиксельПолигон - ВотЧтоЯЛюблю!

Post Reply