Is there any framebuffer testcases?

Pavel Pisa ppisa4lists at pikron.com
Wed Apr 20 23:02:34 UTC 2016


Hello Peng,

I am on a meeting trip now so I have only limited time

On Tuesday 19 of April 2016 11:19:13 Peng Fan wrote:
> Hi Pavel,
>
> > cd rtems-source-builder/rtems
> >
> > ../source-builder/sb-set-builder \
> >     --log=graphic-microwindows-build-log.txt \
> >     --prefix=/opt/rtems4.12 \
> >     --rtems-bsp=i386/pc686 \
> >     --with-rtems-bsp=pc686 \
> >     --pkg-tar-files \
> >     --no-clean \
> >     graphics/microwindows.bset
>
> I did not try pc686. I directly build for mx6ulevk board.
> ../source-builder/sb-set-builder --log=l-g.txt
> --prefix=/home/Freenix/development/rtems/4.12 --rtems-bsp=arm/mx6ulevk
> --with-rtems-bsp=mx6ulevk --pkg-tar-files graphics/graphics-all.bset
>
> But i met errors:
> "
> Test programs compile skipped for RTEMS
>
> Building NXext library
>
> NXext.c:6:25: fatal error: X11/Xlibint.h: No such file or directory
>
>  #include <X11/Xlibint.h>

I have checked actual RSB

* a353d55 graphics: clone Microwindows from official Greg Haerr's repository.
  3c8c00c graphics: update libtiff to 4.0.6 version.
  6843e47 gdb: Build with system readline and use MinGW compilers.
  f5e724f graphics: Add 3rd party graphics support back to the master branch.
  70fc466 rtems: Refactor to move to a single version on master.
  c139715 4.12: Add the newlib patch to get the updated ctr0.o.
  383f7e6 sb: Add --rsb-file options to %source and %patch to set a file name.

with some ARM target. I used LPC40xx which I have BSP build for

../source-builder/sb-set-builder \
    --log=graphic-arm-build-log.txt \
    --prefix=/opt/rtems4.12 \
    --rtems-bsp=arm/lpc40xx_ea_ram \
    --with-rtems-bsp=lpc40xx_ea_ram \
    --pkg-tar-files \
    graphics/graphics-all.bset

This woks for i386, but fails in t1lib for ARM because some GCC flags seems
to be inconsistent. When some target BSP specific flags are missing
on i386 then code links OK still but on ARM this leads to forbidden combination.
This would require more time to find where is t1lib problem.

arm-rtems4.12-gcc -o 
type1afm -L/home/pi/repo/rtems/git/rtems-source-builder/rtems/build/tmp/sb-pi/graphics/t1lib.bset/opt/rtems4.12/lib 
type1afm.lo  ../lib/libt1.la  -lm
mkdir .libs
arm-rtems4.12-gcc -o type1afm 
type1afm.o  -L/home/pi/repo/rtems/git/rtems-source-builder/rtems/build/tmp/sb-pi/graphics/t1lib.bset/opt/rtems4.12/lib ../lib/.libs/libt1.a -lm
/usr/arm-rtems4.12/gcc/6.0.1/bin/../lib/gcc/arm-rtems4.12/6.0.1/../../../../arm-rtems4.12/bin/ld: error: type1afm.o uses VFP 
register arguments, type1afm does not
/usr/arm-rtems4.12/gcc/6.0.1/bin/../lib/gcc/arm-rtems4.12/6.0.1/../../../../arm-rtems4.12/bin/ld: failed to merge target specific 
data of file type1afm.o

On the other hand, t1lib is not required for Microwindows build.
So after libpng and others are build already so Microwindows
build OK for this ARM target, but without examples for now

../source-builder/sb-set-builder \
    --log=graphic-microwindows-build-log.txt \
    --prefix=/opt/rtems4.12 \
    --rtems-bsp=arm/lpc40xx_ea_ram \
    --with-rtems-bsp=lpc40xx_ea_ram \
    --pkg-tar-files \
    graphics/microwindows.bset

Build from GIT with commands send in the past e-mail should build
with examples even for ARM. But I need to check that.

Best wishes,

            Pavel

> compilation terminated.
>
> Makefile:260: recipe for target 'nxext' failed
>
> make[2]: Leaving directory
> '/home/Freenix/work/forfun/rtems/rtems-source-builder/rtems/build/microwind
>ows-v0.93-dev-arm-rtems4.12-1/build-xc/src/nxlib' make[2]: *** [nxext] Error
> 1
>
> make[2]: Target 'all' not remade because of errors.
>
> make[1]: ***
> [subdir-/home/Freenix/work/forfun/rtems/rtems-source-builder/rtems/build/mi
>crowindows-v0.93-dev-arm-rtems4.12-1/build-xc/src/nxlib] Error 2
> make[1]: Target 'all' not remade because of errors.
>
> make: *** [all] Error 2
> "
>
> > Build log shows steps of build and sources locations
> >
> >
> > rtems-source-builder/rtems/~ms/rsb/microwindows-v0.93-dev-i386-rtems4.12-
> >1.txt
> >
> > Generally, if you go to the directory
> >
> > rtems-source-builder/rtems/build/microwindows-v0.93-dev-i386-rtems4.12-1
> >
> > then there is RSB generated doit script which can be invoked manually
> > as well. The core of Microwindows the build is
> >
> >   export RTEMS_MAKEFILE_PATH=/opt/rtems4.12/i386-rtems4.12/pc686
> >   make -f Makefile.rtems CONFIG=`pwd`/Configs/config.rtems -k all
> >
> > In the fact, for fully installed RTEMS for given target with dependencies
> > (libtiff, freetype etc.) these two lines are all what you need to do
> > in clean, unpathes Microwindows sources to build for RTEMS and it
> > has been mechanism I used for many years before more integration
> > and which I know the best and can be run directly in Microwindows
> > GIT tree and it can be easily edited and corrected with full GIT support
> >
> > The Microwindows demos build has been disabled in default Microwindows
> > RTEMS config mainline GIT. The config file or make argument
> > MICROWINDEMO=Y has to be added
> >
> >   export RTEMS_MAKEFILE_PATH=/opt/rtems4.12/i386-rtems4.12/pc686
> >   make -f Makefile.rtems CONFIG=`pwd`/Configs/config.rtems -k all
> > MICROWINDEMO=Y
> >
> > But demos are not build due disable KBD (kbd_rtems replaced by kbd_null)
> > and mouse (mou_rtems replaced by mou_null) and RTEMS specific message
> > queues
> > are missing there in the MwSelect
> >
> >   struct MW_UID_MESSAGE m_kbd
> >   struct MW_UID_MESSAGE m_mou
> >
> > So at the end, if simple mainline Microwindows build is the most
> > sucesfull for now
> >
> >   git clone git://github.com/ghaerr/microwindows.git
> >   cd microwindows/src
> >   export RTEMS_MAKEFILE_PATH=/opt/rtems4.12/i386-rtems4.12/pc686
> >   make -f Makefile.rtems CONFIG=`pwd`/Configs/config.rtems -k all
> > MICROWINDEMO=Y
> >
> > Some applications which require to register events to main system
> > select() /
> > Windows WaitForMultipleObjects fails because MwRegisterFdOutput and
> > corresponding
> > functions are not available in RTEMS port. But you find quite a lot of
> > demos binaries in microwindows/src/bin and initial IMFS filesystems
> > is filled by fonts and demo images. malpha demo can be run for i386/pc686
> > BSP
> > under QEMU by next command
> >
> >   qemu-system-x86_64 -gdb tcp::1234 -enable-kvm -kernel
> > microwindows/src/bin/malpha \
> >       -vga cirrus \
> >       -net nic,vlan=0,model=e1000 -net user,vlan=0 \
> >       -serial stdio \
> >       -append "--console=com1 --video=auto"
> >
> > You need to define simple graphic driver for RTEMS - generally its
> > responsibility
> > is to pass framebuffer base address to Microwindows and you need some
> > mouse and keyboard UID (micro input driver) driver on RTEMS side.
>
> I have a simple lcdif driver ready, without interrupt support.
>
> > I have interrupt driven GPIO driver for i.MX1/i.MXS which I can share.
>
> There is no keyboard on my board. Anyway If you could share, I may can
> reuse it
> for other boards in my side. Thanks.
>
> > It is used for ten years in production devices already and it is well
> > portable. We use the same core and push repeat brush cancelation FSM
> > in many other systems oven on bare metal without OS.
> >
> > Your situation on MX6ULT is much simpler at the end because hardware
> > solves most of these tasks for you in integrated Keypad Port (KPP)
> > peripheral.
> > But complete software example can help to understand what needs to be
> > bound together.
> >
> > And generally, I consider MX6ULT as interesting target so I can
> > look at it as well but I have many priority tasks which push me
> > to other directions now.
>
> Actually this is just my first target to support RTEMS on i.MX6UL. When
> most drivers ready and upstreamed, I also plan to add other i.MX6/7
> support. If you
> are interested, that would be great.
>
> > As for RSB, we need to add option to select if demos should be included
> > in the Microwindows build (MICROWINDEMO=Y) and if no mouse patch
> > should be applied. In the fact I have plan to modify Microwindows
> > to allow select default KBD, mouse and screen drivers independently
> > on the target and I believe that it would be accepted by mainline
> > so patches should not be applied and mechanism to propagate these
> > options to the build should be added. I can help or prepare
> > changes with Chris's help when I have some time ...
> >
> > I support adaptation of mainline Microwindows to better match
> > actual and future RTEMS builds but it has to be done such way
> > that easy build from Microwindows GIT is possible and there is
> > no option to introduce RTEMS specific branch with another set
> > of the subdirectories Makefiles. The top level RTEMS specific one
> > can be changed as we want but at least for some years compatibility
> > with RTEMS-4.11 and RTEMS-4.10 has to be taken into account.
> > I have newer considered Microwindows makefiles as the most elegant
> > solution but they are used for many configurations (Linux, Android,
> > RTEMS, etc) and I am surprised now that compatibility
> > with RTEMS build survived addition of SDL1.2, SDL2.0 builds
> > and NXlib in embedded and server options which all happened
> > on mainline from my last test Microwindows test after last GSoC
> > changes merging to mainline. At least I have no resources
> > and even environment to help, propose and test switch of mainline
> > Microwindows to another make system (automake, Scons, WAF etc.)
> > for all ports. So we need to limit changes to some top level files
> > and think how to not break other users ports.
>
> Thanks for all the info and kindly help. I am new to graphics, and met many
> issues(:
>
> Thanks,
> Peng.
>
> > Best wishes,
> >
> >               Pavel



More information about the users mailing list