linuxϵÄframebufferµÄÀý×Ó(ת)
Àý×ÓʵÏÖÁËÖ±½ÓдÆÁµÄ¹¦ÄÜ£¬¼´°ÑÆÁÄ»Çå¿Õ£¨±äºÚ£©£¬³ÌÐòµÄÁ÷³Ì´óÖÂΪ£º´ò¿ªÒ»¸öFrameBufferÉ豸£»Í¨¹ýmmapµ÷ÓðÑÏÔ¿¨µÄÎïÀíÄÚ´æ¿Õ¼äÓ³Éäµ½Óû§¿Õ¼ä£»Í¨¹ýÓ³Éä¹Øϵֱ½ÓдÄÚ´æ¡£
Í·Îļþ
////////////////////////////////////////
///////////// fbtools.h ////////////////
////////////////////////////////////////
#ifndef _FBTOOLS_H_
#define _FBTOOLS_H_
#include <linux/fb.h>
//a framebuffer device structure;
typedef struct fbdev
{
int fb;
unsigned long fb_mem_offset;
unsigned long fb_mem;
struct fb_fix_screeninfo fb_fix;
struct fb_var_screeninfo fb_var;
char dev[20];
} FBDEV, *PFBDEV;
//open & init a frame buffer
//to use this function,
//you must set FBDEV.dev="/dev/fb0"
//or "/dev/fbX"
//it's your frame buffer.
int fb_open(PFBDEV pFbdev);
//close a frame buffer
int fb_close(PFBDEV pFbdev);
//get display depth
int get_display_depth(PFBDEV pFbdev);
//full screen clear
void fb_memset(void *addr, int c, size_t len);
#endif
²âÊÔÎļþ£¬ÆäÖÐÉîÑÕÉ«µÄ×¢ÊͲ¿·ÖΪÔÚÎÒ»úÆ÷ÉϲâµÃµÄ½á¹û
///////////////////////////////////////////
/////////////// fbtools.c ///////////////
///////////////////////////////////////////
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <asm/page.h>
#include "fbtools.h"
#define TRUE 1
#define FALSE 0
#define MAX(x,y) ((x)>(y)?(x):(y))
#define MIN(x,y) ((x)<(y)?(x):(y))
//open & init a frame buffer
int fb_open(PFBDEV pFbdev)
{
pFbdev->fb = open(pFbdev->dev, O_RDWR);// pFbdev->fb==3
if(pFbdev->fb < 0)
{
printf("Error opening %s: %m. Check kernel config
", pFbdev->dev);
return FALSE;
}
if (-1 == ioctl(pFbdev->fb,FBIOGET_VSCREENINFO,&(pFbdev->fb_var)))
{
printf("ioctl FBIOGET_VSCRE
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
ÔÎĵØÖ·£ºhttp://hi.baidu.com/linuxlife/blog/item/0d3e302ae2384d3a5343c1b1.html
LinuxϵĶ¯Ì¬¿âÒÔ.soΪºó׺£¬ÎÒÒ²Êdzõ´ÎÔÚLinuxÏÂʹÓö¯Ì¬¿â£¬Ð´Ò»µãÈëÃŲ½Ö裬ÒÔ±ãÒÔºóÄÜ·½±ãʹÓá£
µÚÒ»²½£º±àдLinux³ÌÐò¿â
Îļþ1.¶¯Ì¬¿â½Ó¿ÚÎļþ
//¶¯Ì¬¿â½Ó¿ÚÎļþgetmaxlen.h
#ifndef _GETMAXLEN_H_
#define _GETMAXLEN_H_
......
Ê×ÏÈ£¬¼Çסvi±à¼Æ÷µÄÁ½¸öģʽ£º1¡¢ÃüÁîģʽ
2¡¢±à¼Ä£Ê½
¡£
¡¡
¡¡ÔÚÒ»¸öUNIX/LinuxµÄshellÃüÁî»òÕßÒ»¸öÒÔб¸Ü£¨/£©¡¢Îʺţ¨?£©»òðºÅ£¨:£©¿ªÊ¼µÄviÃüÁîºóÃæÓû§ÐèÒª¼üÈë»Ø³µ¼ü£¬¶øÒªÇл»µ½viÃüÁî
ģʽÐèÒª°´Esc¼ü¡£×¢Ò⣬ÒÔðºÅ£¨:£©»òÕßб¸Ü£¨/£© ¿ªÊ¼µÄviÃüÁî»áÏÔʾÔÚÆÁÄ»µ×²¿£¬µ«ÆäËûÃüÁ²»»áÏÔʾÔÚÆÁÄ»É ......
ÍøÉϸ÷¸öÖÐÎÄLinuxÉçÇøÓÐÏ൱¶à¹ØÓڴ˵ÄÌÖÂÛ£¬´ó¶àÊýʹÓÃÕßΪÁË»ñµÃÍêÉƵÄÖÐÎÄÏÔʾЧ¹û£¬ÒÔ¼°ÎªÁ˱£³ÖºÍWindowsµÄ¼æÈÝ(Ö÷ÒªÊÇÖ¸ÒѹÒÔصÄWindows·ÖÇøµÄÕýÈ·ÏÔʾ)£¬Í¨³£»áÑ¡Ôñgb2312»òÕßgb18030×÷ΪϵͳĬÈÏ×Ö·û¡£
µ«ÊÇ£¬Ê¹ÓÃUnicode±àÂëÊǵ±Ç°¼ÆËã»ú²Ù×÷ϵͳµÄÇ÷ÊÆ¡£×÷Ϊһ¸ö¼ÆËã»úµÄ¶àλ×Ö·û±íʾϵͳ£¬Unicode Ö§³ÖÊÀ½çÉÏË ......
¾²Ì¬Á´½Ó¿âÊÇÒÔ.a½áβµÄÎļþ,Ò»°ãÊÇÓù¤¾ß½«¶à¸ö.oÎļþºÏ²¢µ½Ò»Æð×é³É¾²Ì¬¿â
¶¯Ì¬Á´½Ó¿âÊÇÒÔ.so½áβµÄÎļþ,ºÍwindowsϵÄdllÎļþÀàËÆ¡£
¾²Ì¬Á´½Ó¿â¶¼¿ÉÒÔÔÚ³ÌÐò±àÒë¹ý³ÌÖÐÓà -L²ÎÊýÀ´Ö¸¶¨ËûÃÇ -L/opt/lib/XXX.a
¶¯Ì¬Á´½Ó¿âÒ»°ãÊÇÔÚLD_LIBRARY_PATHÖÐÀ´Ö¸¶¨ËÑË÷·¾¶,Ò²¿ÉÒÔÔÚ -L/opt/lib ºóÃæ¼ÓÒ»¸ö lXX,¶ÔÓ¦ÁËlibÖеÄXX. ......