Портирование Pixilang на Dingoo A320
Re: Портирование Pixilang на Dingoo A320
Не нашел как вставить сюда видео, вот ссылка http://rutube.ru/tracks/2901106.html?v= ... 992b0ae10f
ВекторКодПиксельПолигон - ВотЧтоЯЛюблю!
- NightRadio
- Site Admin
- Posts: 3955
- Joined: Fri Jan 23, 2004 12:28 am
- Location: Ekaterinburg. Russia
- Contact:
Re: Портирование Pixilang на Dingoo A320
Классно! Спасибо за видик
Re: Портирование Pixilang на Dingoo A320
Да, как и обещал, сам Pixilang с примерами под Dingux http://pixelcode.ucoz.ru/Al-Rado/Pixilang_Dingoo.zip
Думаю в скором времени сделаем патч к исходникам
Думаю в скором времени сделаем патч к исходникам
ВекторКодПиксельПолигон - ВотЧтоЯЛюблю!
Re: Портирование Pixilang на Dingoo A320
Попытался еще раз скомпилировать pixilang1.6 под dingux, пробовал разные SUNDOG DEFINES в target Linux. К сожалению все остается по-старому: если программа на пикси находится в boot.txt и лежит в одной папке с pixilang, то она работает (кроме диалогов загрузки/сохранения ф-ла), а если просто запускаем pixilang (без boot.txt) то он "вылетает", причем видно, что мелькает GUI, но сразу "вылетает". В консоли при этом следующее:
Причем segmentation fault остается к консоли и после работы boot.txt тоже.
Прошу помощи в компиляции.
Вот крайний вариант модифицированного Makefile:
Хотел выложить лог компиляции, но он в один пост не входит (более 60 000 символов). Ерроров там нет, одни варнинги. Если нужно - выложу.
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
Прошу помощи в компиляции.
Вот крайний вариант модифицированного 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))
Re: Портирование Pixilang на Dingoo A320
Да, когда я портировал 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.
Пока обходить проблему с открытием файлов можно прописав в конфиге 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.
ВекторКодПиксельПолигон - ВотЧтоЯЛюблю!
Re: Портирование Pixilang на Dingoo A320
Спасибо, Al-Rado, но это возможности самого меню в dingux.
Re: Портирование Pixilang на Dingoo A320
Удалось скомпилировать pixilang v3.0a003 для Dingux (кстати даже без warnings)
исполняемый файл: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.
исполняемый файл: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.
Re: Портирование Pixilang на Dingoo A320
О круто! Оперативно ты )
Да pixi-menu в олдскул стиле как раз в точку!
Действительно всё так работает - только рисовалка не рисует и с эмуляцией мыши - видимо подогнать цвета нужно будет в ней (либо с цветом, либо с прозрачностью траблы)
Да pixi-menu в олдскул стиле как раз в точку!
Действительно всё так работает - только рисовалка не рисует и с эмуляцией мыши - видимо подогнать цвета нужно будет в ней (либо с цветом, либо с прозрачностью траблы)
ВекторКодПиксельПолигон - ВотЧтоЯЛюблю!