测试phoneme advance(DirectFB)运行环境

Linux的视窗系统总结:初认识《一》 X window 、Wayland、DirectFB、linuxfb的区别 在QT中,真正关心硬件操作的是图形引擎层。图形引擎实现方式在linux上有多个: 1、通过X11 2、DFB (directFB) 3、LinuxFB 其中桌面PC的QT版本是通过X11,也可选择DFB。DFB最终也是通过FrameBuffer驱动实现。 但是在QT embedded版本中,只能使用linuxFB,也就是F... 阅读详情
导读:
  测试phoneme advance(DirectFB)运行环境
  转载时请注明出处和作者联系方式
  作者联系方式:李先静
  在上文中,我们顺利完成了phoneme advance的编译,我对phoneme了解不多,怎么验证JVM是否工作正常呢?对于JAVA程序员来说,这只是小事一桩,呵,对我来说,却是高深得不得了。花了好长时间才折腾出来,这里做点笔记,供下一个JAVA盲参考。
  先设置环境变量
  export PREFIX=/usr/local
  export JDK_DIR=/usr/share/j2sdk1.4.2_15
  export PATH=$JDK_DIR/bin:$PREFIX/java/cdc/bin:$PREFIX/java/cdc/midp/midp_linux_fb_gcc/bin/i386 :$PATH
  测试CVM。
  先写个最简单的HelloWorld程序,文件名为HelloWorld.java。
  
  
  class HelloWorld
  
  
  
  {
  
  
  public static void main(String argv[])
  
  
  
  
  ...{
  
  
  System.out.println("HelloWorld");
  
  
  }
  
  }...
  再写个Makefile
  
  
  JFLAGS=-bootclasspath $(PREFIX)/java/cdc/btclasses:$(PREFIX)/java/cdc/midp/midp_linux_fb_gcc/classes
  
  
  
  .SUFFIXES: .class .java
  
  .java.class:
  
  javac $(JFLAGS) $<
  
  
  
  all: HelloWorld.class
  
  
  
  
  clean:
  
  rm -f *.class *.jar
  这里要设置好bootclasspath,让它能连接phoneme的class。
  编译
  make
  运行
  cvm HelloWorld
  (顺利的话,会打印出HelloWorld)
  测试MIDlet。
  先写个最简单的HelloWorld程序,文件名为HelloWorld.java。
  
  
  import javax.microedition.midlet.MIDlet;
  
  import javax.microedition.lcdui.Command;
  
  import javax.microedition.lcdui.CommandListener;
  
  import javax.microedition.lcdui.Display;
  
  import javax.microedition.lcdui.Displayable;
  
  import javax.microedition.lcdui.Form;
  
  
  
  public class HelloWorld extends MIDlet implements CommandListener
  
  
  
  ...{
  
  
  private Form form;
  
  
  
  
  public HelloWorld()
  
  
  
  
  ...{
  
  
  form = new Form("Test App");
  
  
  form.append("Hello World!");
  
  
  form.addCommand( new Command( "Exit", Command.EXIT, 1 ) );
  
  
  form.setCommandListener( this );
  
  
  }
  
  
  
  public void startApp()
  
  
  
  
  ...{
  
  
  Display display = Display.getDisplay(this);
  
  
  display.setCurrent( form );
  
  
  }
  
  
  
  public void pauseApp()
  
  
  
  
  ...{
  
  
  }
  
  
  
  public void destroyApp(boolean unconditional)
  
  
  
  
  ...{
  
  
  form = null
  
  }
  
  
  
  public void commandAction(Command c, Displayable d)
  
  
  
  
  ...{
  
  
  destroyApp(true);
  
  
  notifyDestroyed();
  
  
  }
  
  }
  再写个META-INF/MANIFEST.MF
  
  
  Manifest-Version: 1.0
  
  
  MIDlet-Name: HelloWorld
  
  
  MIDlet-1: HelloWorld,/icon.png,HelloWorld
  
  
  MIDlet-Version: 1.0
  
  
  MIDlet-Vendor: Li XianJing
  
  
  MIDlet-Icon: /icon.png
  
  
  MicroEdition-Profile: MIDP-1.0
  
  
  MicroEdition-Configuration: CLDC-1.0
  再写个Makefile
  
  
  JFLAGS=-bootclasspath $(PREFIX)/java/midp/classes:$(PREFIX)/java/cdc/btclasses
  
  
  
  
  .SUFFIXES: .class .java
  
  
  .java.class:
  
  
  javac $(JFLAGS) $<
  
  
  
  all: HelloWorld.class
  
  zip HelloWorld.jar HelloWorld.class META-INF/MANIFEST.MF
  
  
  
  
  clean:
  
  
  rm -f *.class *.jar
  修改DirectFB的配置/etc/directfbrc。
  system=sdl
  mode=240x320
  安装midlet
  installMidlet file:////root/work/java/test/midlet/HelloWorld.jar
  (好像只有绝对路径才可以)
  安装之后,屏幕上会打印出该midlet的ID,在运行和卸载时需要它。
  运行midlet
  runMidlet 2 HelloWorld
  (这里的2就是前面安装的ID,正常的话会有图形窗口出来。)
  卸载midlet
  removeMidlet 2
  窗口的宽度和高度可以修改相应的constants.xml文件,在编译时该文件用来产生头文件 midp_constants_data.h。
  ~~end~~
  
  Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1803853

本文转自
http://blog.csdn.net/absurd/archive/2007/09/27/1803853.aspx
Qt5.5使用directfb做后端的编译过程 嵌入式环境下需要使用directfb做后端,自己一步一步的摸索。这里记录下踩坑过程 准备工作 我选择现在虚拟机里面来个直观感受,故而在ubuntu1604下进行编译测试,首先是编译directfb的开源库了,此处选择的是1.4版本了,编译安装脚本如下: ./autogen.sh ./configure --prefix=/home/skyhigh/WORK/install --enable-static --disable-x11 --enable-fbdev --with-gfxdrivers=vmwar 阅读详情

相关推荐

Ubuntu 上配置DirectFB环境(亲测可用)

Ubuntu 上配置DirectFB环境(亲测可用)Ubuntu 上配置DirectFB环境(亲测可用)

2021-05-31

全志 drm架构------基础篇 学习随记 1.drm架构:(Direct Render Manage)图形渲染架构 drm驱动是显卡驱动的一种架构。相比FB架构,DRM更能适应当前日益更新的显示硬件。比如FB原生不支持多层合成,不支持VSYNC,不支持DMA-BUF,不支持异步更新,不支持fence机制等等,而这些功能DRM原生都支持。同时DRM可以统一管理GPU和Display驱动,使得软件架构更为统一,方便管理和维护。 DRM从模块上划分,可以简单分为3部分:libdrm、KMS、GEM

暗夜 2644

fb架构和drm架构对显存操作的理解

fb和drm架构:都是dma控制器将显存映射到dma buf(DDR)上,这个层面在内核上实现,用户仅可操作虚拟地址,则还需通过mmap映射 dma buf至上层使用,drm存在内存分配管理,对于视频输入到输出,在采集时分配缓存时,则可通过drm的gem来分配,此时drm在display时可直接刷新操作此缓存; ...

cesar的博客 5769

DirectFB概述

1简介DirectFB是一个轻量级的提供硬件图形加速,输入设备处理和抽象的图形库,它集成了支持半透明的视窗系统以及在Linux Framebuffer驱动之上的多层显示。它是一个用软件封装当前硬件无法支持的图形算法来完成硬件加速的层。DirectFB是为嵌入式系统而设计。 它是以最小的资源开销来实现最高的硬件加速性能。1.1目标最大限度的硬件加速提供高级图形运算包括多层alpha颜色混合模式利用现

link_nini的专栏 1414

DRM架构介绍(一)

1、 DRM简介(Direct Rendering Manager)传统linux显示设备驱动开发时,通常使用FB驱动架构,随着显卡性能升级:显示覆盖(菜单层级)、GPU加速、硬件光标,传统FB架构无法很好支持,此外,对于多应用的访问冲突也无法很好控制。在这样的背景下,DRM应用而生。DRM是linux内核中负责与显卡交互的管理架构,用户空间很方便的利用DRM提供的API,实现3D渲染、视频解码和...

内核工匠 6513

编译基于DirectFBPhoneme(Advance)

导读:   编译基于DirectFBPhoneme(Advance)   转载时请注明出处和作者联系方式   作者联系方式:李先静   Phoneme其实就是J2ME,SUN公司虽然把JAVA的实现开源了,但仍然保留JAVA这个名字,所以出于法律上的考虑,开源的J2ME实现改名为phonemephoneme有两个版本,一个对硬件要求较低,功能也较弱,适用于一般的feature pho

xu的blog 1091

DirectFB 综述

目标 最小的内存占用 最大可能的硬件加速 支持高级图形操作,如 multiple alpha blending mode 无内核修改 无依赖库 (除了 libc) 满足 MHP 的需要 图形操作 DirectFB 支持以下图形功能,可硬件实现(若c

弹-room 907

Port directfb for arm

I test below in my qemu-mini2440 virtual board. http://directfb.org/downloads/Core/DirectFB-1.7/DirectFB-1.7.2.tar.xz To test first, I disable all picture libs and only open fbdev support, I ...

deshang7096的博客 532

树莓派学习::qt5.10.1交叉编译【带opengl ES2】到官方Raspbian Stretch

qt5.10.1交叉编译【带opengl ES2】到官方Raspbian Stretch 本次更新是树莓派学习::qt5.10.1交叉编译【带opengl ES2】(armv8 64位)的延续,这次编译带的目标平台是树莓派3b+的官方系统Raspbian Stretch。由于是官方系统,这次交叉编译会轻松很多。不过还是要构建sysroot文件系统。 结果: linuxfb:成功 xcb:...

dieju8330的博客 5821

drm 驱动是如何创建 fb device 的

drm 驱动是如何创建 fb device 的drm 驱动是如何创建 fb device 的 什么是 drm 如何使用 drm 接口 libdrm fb device 本文讨论的问题是 drm 驱动是如何虚拟 drm crts 为 fb device 设备驱动创建 fbdev 完成 fb 设备的创建 流程图什么是 drm?drm 是一个 Linux 内核的显示系统驱动框架,区别于另外一个 DRM数字

增阅笔记 1万+

DRM(Direct Rendering Manager)学习简介

学习DRM一年多了,由于该架构较为复杂,代码量较多,且国内参考文献较少,初学者学习起来较为困难。因此决定将自己学习的经验总结分享给大家,希望对正在学习DRM的同学有所帮助,同时交流经验。 由于本人工作中只负责Display驱动,因此分享的DRM学习经验都只局限于Display这一块,对于GPU这一块本人无能为力,如果大家有相关经验分享,还请在留言中通知一声,我会常去浏览你的博客,大家相互学习。 DRM DRM是Linux目前主流的图形显示框架,相比FB架构,DRM更能适应当前日益更新的显示硬件。比如F

飞天鱼 3084

Linux DRM Graphic 显示简单介绍

DRM 由两个部分组成:一是 Kernel 的子系统,这个子系统对硬件 GPU 操作进行了一层框架封装。二是提供了一个 libdrm 库,里面封装了一系列 API,用来进行图像显示。整体看来和在 Android 上用的 Direct Frame Buffer 差不多嘛,Android Kernel 走的是 FB 的框架,然后 Android HAL 层那边抽象出了一个 FBDEV,用来进行 FB IOCTRL 的统一管理。然而 DRM 就相当于对图形设备进行集中处理,并且多出了个漂亮的 libd

木易博客专栏 4万+
上一篇: 交叉编译场景分析(arm-linux)(六)--编译TinyX
下一篇: 交叉编译场景分析(arm-linux)(七)--编译sqlite
yingfox
博客等级 码龄24年 46粉丝 398原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值