开发平台:友善之臂micro2440开发板+Fedora9
主机操作系统内核版本:2.6.25-14-fc9-i686
参考文献:(1)清秋梧桐 日志:“opengl&SDL”
http://qqwt.blog.sohu.com/91060365.html资料准备:picogl-20051108.tar;SDL-1.2.14.tar;arm-softfloat-linux.tar
1) 参照开发板说明书第5.3节,建立交叉编译环境
2) 参照开发板说明书第5.4节,解压安装源代码及其他工具
3) 将arm-softfloat-linux.tar解压到根目录下;
tar xvf arm-softfloat-linux-gcc-3.4.5.tar.bz2 -C /
说明:
a) 按照开发板说明书,所建立的交叉编译器版本为arm-linux-gcc-4.3.2;该版本编译器只支持矢量浮点,不支持软浮点。
b) 本次实验所采用的方法是:直接解压安装从网上下载来的交叉编译器;当然也可以按照参考文献中所述方法自己编译
4) 解压缩picogl,修改picogl的代码;具体如何修改代码参见参考文献
说明:
a) 本次实验中,picogl的目录为:/root/arm_Stu/opengl/PicoGL
b) 参考文献中提到:“为了让你的程序使用picogl更方便些,最好再改个地方include/GL/glx.h #include GLX_IMPL_HEADER改为你喜欢的方式,指向backends/vesafb/glx_impl.h”
不是非常理解其中的意思,此处未作修改;
c) 修改LCD的配置,参照/opt/FriendlyARM/mini2440/linux-2.6.32.2/arch/arm/mach-s3c2440/mach-mini2440.c
5) 加入系统环境变量,运行命令gedit /root/.bashrc;添加如下内容
export PATH=$PATH:/usr/local/arm/4.3.2/bin:/usr/local/arm/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux/bin/:/opt/libSDL/bin
6) 配置,进入PicoGL目录
# cd PicoGL
#./configure --with-backend=vesafb --host=arm-softfloat-linux --prefix=/root/arm_Stu/opengl/builtPicoGL
7) make;make_install
8) 在/root/arm_Stu/opengl/builtPicoGL /lib里就有PicoGL的库了,把动态库文件拷贝到arm-linux根文件系统的/lib里面,把/root/arm_Stu/opengl/builtPicoGL /bin里的程序拷贝到arm-linux文件系统的任何地方
9) 重新制作自己的文件系统,并将该文件系统安装到开发板上;
10) 将SDL-1.2.14.tar压缩文件拷贝到/root/arm_Stu/opengl/目录,并解压。解压后目录为SDL-1.2.14
11) 进入SDL-1.2.14目录,运行: ./configure --disable-video-qtopia --disable-video-dummy --disable-video-fbcon --disable-video-dga --disable-arts --disable-esd --disable-alsa --disable-cdrom --disable-video-x11 --disable-nasm --target=arm-linux --host=arm-linux --enable-video-fbcon
注意:此处和参考文献(1)的内容有所不同;如果按照该参考文献的命令,则会出现提示SDL不支持视频的错误提示
12) make,make_ install
13) 这时会在/usr/local/include中出现SDL文件夹 ,同时出现/usr/local/lib文件夹
将/root/arm_Stu/opengl/ SDL-1.2.14/test/testalpha.c 文件拷贝到你的程序目录 /usr/work/test
修改testalpha.c文件
#ifdef _WIN32_WCE
/* Pocket PC */
w = 240;
h = 320;
#else
w = 640;
h = 480;
#endif
改为:
#ifdef _WIN32_WCE
/* Pocket PC */
w = 240;
h = 320;
#else
w = 640;
h = 480;
#endif
运行
arm-linux-gcc -o test test.c -I/usr/local/include/SDL/ -L/usr/local/lib/ -lSDL
生成 test可执行文件
14)将该test文件,以及/root/arm_Stu/opengl/ SDL-1.2.14/test目录中icon.bmp直接下载到开发板某一目录下(我是下载到根目录)
以下操作与开发板相关:
15)打开串口终端,我用的是secureCRT
16)将开发板设为nand flash启动 打开开发板电源
17)在控制台上运行:chmod 555 test
18)export LD_LIBRARY_PATH=/usr/local/lib
19)./test
现在就可以在屏幕上看到结果了!
但是在编译测试哦testgl.c文件后,当下到开发板中后,会提示“"No OpenGL support on this system”;想请问一下这是什么问题?
Testgl.c文件的基本流程如下:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include "SDL.h"
#ifdef __MACOS__
#define HAVE_OPENGL
#endif
#ifdef HAVE_OPENGL
#include "SDL_opengl.h"
...
...
...
#else /* HAVE_OPENGL */
int main(int argc, char *argv[])
{
printf("No OpenGL support on this system\n");
return 1;
}
#endif /* HAVE_OPENGL */
[ 此帖被kasim在2010-07-13 15:28重新编辑 ]