An OpenGL ES skeleton for the Raspberry Pi

Saturday January 19th, 2013By: CyrIng

Based on the samples found into the directory /opt/vc/src/hello_pi , we programmed an OpenGL ES skeleton which compiles for both x86_64 and Raspberry Pi architectures.





How To import Blender in OpenGL

Sunday January 13th, 2013By: CyrIng

 Thanks to the Assimp library, we are programming a C import of Blender Mesh.

Download the source code, make it and start it with the path to .blend file as the argument.

$ make
Compiling : Done.
Linking : Done.
Ready : ./bin/blenderGL

$ ./bin/blenderGL samples/monkey.blend

Use keys from [1] to [9] to translate;  arrows  [Begin] and [End] to rotate following the 3 axes. The [Esc] key to exit.

Don’t forget to save your Blender Mesh file using the legacy format.





Google +1 for a multilingual WordPress

Sunday December 23rd, 2012By: CyrIng

Edit the loop.php and the header.php source files to add the following Javascript code and button into the division of class ″entry-utility″

The success of this script integration with the multilingual plugin qTranslate resides in a PHP call of the function qtrans_getLanguage() whose result, the current site language, is assigned to the variable window.___gcfg





Assembler for vector calculus

Saturday December 22nd, 2012By: CyrIng

The assembler calculator is enhanced with vector computing.

According to the ARM processor specifications, three operation modes are available:

  • scalars
  • vectors
  • scalars and vectors mixed (our choice)

How do we program this :

  • using a vector lenght of 4, the control register FPSCR is loaded with ( 4 – 1 ) × ²↑16
  • the registers s8, s9, s10 and s11 are loaded with the first vector operand [a1 a2 a3 a4]
  • if the second operand is a vector then the registers s20, s21, s22 and s23 are loaded with [b1 b2 b3 b4] ;
    else, if the operand is a scalar then the register s0 must be used and loaded with b
  • the result of the operation in the registers s8, s9, s10 and s11 is stored into [c1 c2 c3 c4]





VFP Programming

Monday December 17th, 2012By: CyrIng

We pursue programming a calculator for the Raspberry Pi using its vfp coprocessor.

  • Screenshot of 173.76 divided by 56.43

  • Source code





[SOLVED] package architecture is not valid

Sunday December 9th, 2012By: CyrIng

Using the archlinux ARM distribution for the Raspberry Pi, we were stuck during the yaourt package build with the following error message:

« package architecture is not valid »

Read the forum, the graceful help provided by pepedog leads us to the right solution.

# nano /etc/makepkg.conf

CARCH="armv6h"

CHOST="armv6l-unknown-linux-gnueabihf"

CFLAGS="-march=armv6 -mfloat-abi=hard -mfpu=vfp -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2"

CXXFLAGS="-march=armv6 -mfloat-abi=hard -mfpu=vfp -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2"

LDFLAGS=""

The key answer is CARCH=”armv6h”, change it as soon as possible then update the abs repository.

# abs

$ yaourt -A package

The argument -A forces the compilation to the armv6h architecture even if the PKGBUILD does only contains arch=(‘i686′ ‘x86_64′)





Operand constraints

Saturday December 8th, 2012By: CyrIng

With constraint modifiers, our previous sample is simplified by letting the compiler choose the registers by itself.

What do we get is a shorter code, handling C variables, plus the power of the assembler language.