minigui1.33在uclinux移植过程

minigui1.33在uclinux移植过程
minigui1.33在uclinux移植过程

Minigui V1.3.3在uClinux中的移植经验总结 [转]

经过一个星期的努力,终于将Minigui移植到我的ARM7开发板上了,在这个过程中我遇到了很多困难和问题网络,通过以前很多前辈在网络上分享的经验,终于取得成功,也让我更加体会到只有大家都互相帮助,才能使大家都受益。所以基于这一点,我将我的移植过程分享给大家,并且写得尽量详细点,希望给大家后来者少走一些弯路。有不对的地方,欢迎大家板砖!

首先说明一下我的开发平台,我用的是Samsung S3C44B0X芯片的开发板,已经移植好的uClinux操作系FrameBuffer驱动。我的uClinux安装在"/s3c44b0fu/uClinux-dist"目录下,交叉编译工具安装在"/usr/local/a 下。

具体步骤:

一. 从网站下载 libminigui-1.3.3.tar.gz, mde-1.3.0.tar.gz, mg-samples-1.3.0.tar.gz和minigui-res-1.3.3.tar.g 件,并将这四个文件保存到交叉编译环境的目录下,因为我的arm-elf-gcc交叉编译工具安装在"/usr/local/arm-以将minigui的四个压缩包同样拷贝到"/usr/local/arm-elf"目录下.

二. 在终端中输入"cd /usr/local/arm-elf",进入minigui的四个压缩文件所在目录,然后分别执行"tar zxvf xxxx 四个压缩包解压缩.解压后生成libminigui-1.3.3, mde-1.3.0, mg-samples-1.3.0和minigui-res-1.3.3四个文件

三. 1) 进入minigui-res-1.3.3文件夹内,修改config.linux,在prefix = $(TOPDIR)/usr/local/后添加我们的交叉arm-elf,即prefix = $(TOPDIR)/usr/local/arm-elf.

2) cd minigui-res-1.3.3

3) make install

四. cd mde-1.3.0

./configure

make

cd mg-samples-1.3.0

./configure

make

五. 1) 编写交叉编译minigui函数库的配置脚本domain.sh.

domain.sh的具体内容为:

#!/bin/sh

rm config.cache config.status -f

CC=arm-elf-gcc \

CFLAGS="-I/s3c44b0fu/uClinux-dist/uClibc/include -Dlinux -D__linux__ -D__uClinux__ -Dunix " \ LDFLAGS="-Wl,-elf2flt -static -Wl,-move-rodata -Wl,-L/s3c44b0fu/uClinux-dist/lib/uClibc/lib -Wl,-L/s3c44b dist/linux-2.4.x/lib -Wl,-lc -Wl,-lm" \

./configure --prefix=/usr/local/arm-elf \

--build=i686-pc-linux-gnu \

--host=arm-elf-linux \

--target=arm-elf-linux \

--disable-shared \

--disable-lite \

--disable-standalone \

--enable-incoreres \

--disable-flatstyle \

--enable-newgal \

--disable-nativegal \

--disable-galcommlcd \

--enable-galfbcon \

--enable-adsial \

--disable-micemoveable \ --disable-cursor \

--disable-fblin1r \

--enable-fblin8 \

--disable-fblin16 \

--disable-fblin32 \

--disable-textmode \

--enable-dummyial \

--disable-mc68x328ial \

--disable-nativeial \

--disable-qvfbial \

--disable-qpfsupport \

--disable-ttfsupport \

--disable-type1support \ --disable-latin9support \ --disable-gbksupport \

--disable-big5support \

--disable-unicodesupport \ --disable-savebitmap \

--disable-imegb2312 \

--disable-imegb2312py \ --disable-aboutdlg \

--disable-savescreen \

--disable-grayscreen \

--enable-tinyscreen \

--enable-video-fbcon \

--disable-video-qvfb \

--disable-nativegalqvfb \

--with-osname=uclinux

编写好后拷贝到libminigui-1.3.3下.

2) cd libminigui-1.3.3

3) sh domain.sh

4) make

5) make install

6) ldconfig

上面六步即完成了用arm-elf-gcc对minigui的函数库的交叉编译.可以进入/usr/local/arm-elf目录中,你会看和lib两个文件夹,这两个文件夹就是我们刚才用arm-elf-gcc交叉编译minigui的函数库所产生的结果,以后编译运行的应用程序时,就会对这两个文件夹里的内容进行编译,从而产生适合于在arm开发板中运行的应用程序

六. 编写测试minigui的应用程序

1) 测试程序miniguidemo.c其实就是从mg-samples-1.3.0中拷贝过来的helloworld.c程序,不过要根据具体的改,如我的LCD是640x480的256色STN彩色屏,所以要将

#ifdef _LITE_VERSION

SetDesktopRect(0, 0, 1024, 768);

#endif

修改为:

#ifdef _LITE_VERSION

SetDesktopRect(0, 0, 640, 480);

#endif

根据你的不同的LCD修改这个参数,还可以修改这个窗体显示的位置,根据你的喜好修改即可.最后将编写好的miniguidemo.c保存到/s3c44b0fu/uClinux-dist/user/guidemo中(注:guidemo是我在user目录中新建的文件夹

2) 在/s3c44b0fu/uClinux-dist/user/guidemo中编写Makefile文件,具体内容为:

EXEC = miniguidemo

OBJS = miniguidemo.o

LDFLAGS=-L/s3c44b0fu/uClinux-dist/uClibc/lib

all: $(EXEC)

$(EXEC): $(OBJS)

$(CC) $(LDFLAGS) -o $@ $(OBJS) -lminigui -lmgext $(LIBPTHREAD) $(LIBM) $(LDLIBS) -elf2flt

romfs:

$(ROMFSINST) /bin/$(EXEC)

clean:

-rm -f $(EXEC) *.elf *.gdb *.o

3) 修改user/Makefile

为了让编译器编译上述添加的内容,在user/Makefile中添加一句(一般按照字母排列):

dir _$(CONFIG_USER_GUIDEMO_MINIGUIDEMO) +=guidemo

4) 修改config/config.in

config/config.in文件中添加的内容会在对用户选项进行配置时反映出来。在文件的最后,增加一条:

###################################################################

mainmenu_option next_comment

comment 'My MINIGUI Application'

bool 'demo' CONFIG_USER_GUIDEMO_MINIGUIDEMO

endmenu

###################################################################

七. 现在可以编译minigui的应用程序了,这里罗嗦一点,minigui应用程序的编写有两种方法,一种是将应用程序uClinux-dist目录中,在uClinux-dist编译和链接,直至生成最后的映象文件;第二种方法是先单独编译minigui的成可执行文件,然后放到uClinux-dist的romfs目录中,执行make image命令生成映象文件.很显然这里采用的也正因为采用的是第一种方法,所以第五步中交叉编译得到的配置文件MiniGUI.cfg实际上在这里没有用处我尝试过,似乎有点问题,你可以尝试尝试.

编译步骤:

make mrproper

make menuconfig(记住将FrameBuffer和你的应用程序编译到内核去)

make dep

make lib_only

make user_only

make ronfs

make image

make

将编译生成的映象文件下载到目标板中,执行程序,出现错误

/bin> helloworld

No available video device.

NEWGAL: Does not find matched engine: qvfb.

GDI: Can not get graphics engine information!

InitGUI failure when using incore resource.

pid 30: failed 256

这个错误恰好和61IC工程师社区中的“风雨”写的一篇文章完全一样!所以我就按照他的步骤一步一步是 https://www.360docs.net/doc/0e144995.html,/club/bbs/dispbbs.asp?boardID=26&ID=691&page=1

具体修改步骤是:

经过跟踪,进入sysres/mgedt.c

#include "common.h"

typedef struct _ETCSECTION

{

int key_nr; /* key number in the section */

char *name; /* name of the section */

char **keys; /* key string arrays */

char **values; /* value string arrays */

} ETCSECTION;

typedef ETCSECTION* PETCSECTION;

typedef struct _ETC_S

{

int section_nr; /* number of sections */

PETCSECTION sections; /* pointer to section arrays */

} ETC_S;

#ifdef _INCORE_RES

static char *SYSTEM_KEYS[] = {"gal_engine", "ial_engine", "mdev", "mtype"};

#ifdef __ECOS

static char *SYSTEM_valueS[] = {"ecoslcd", "ipaq", "/dev/ts", "none"};

#else

//static char *SYSTEM_valueS[] = {"qvfb", "qvfb", "/dev/ts", "none"}; //这是我注释掉的原来的, 你们看看管我怎么配置NEWGAL,

//这里都将不可避免的进入QVFB

static char *SYSTEM_valueS[] = {"fbcon", "dummy", "none", "none"}; //我新加的。

#endif

static char *FBCON_KEYS[] = {"defaultmode"};

static char *FBCON_valueS[] = {"640x480-8bpp"}; //原来的是240X320-16bpp

static char *QVFB_KEYS[] = {"defaultmode", "display"};

static char *QVFB_valueS[] = {"640x480-16bpp", "0"};

static char *SYSTEMFONT_KEYS[] =

{"font_number", "font0", "font1", "font2", "default", "wchar_def", "fixed", "caption", "menu", "control"};

static char *SYSTEMFONT_valueS[] =

{

"3","rbf-fixed-rrncnn-6-12-ISO8859-1", "*-fixed-rrncnn-*-12-GB2312", "*-SansSerif-rrncnn-*-12-GB2312 "0", "1", "1", "1", "1", "1"

};

static char *CURSORINFO_KEYS[] = {"cursornumber"};

static char *CURSORINFO_valueS[] = {"2"};

static char *ICONINFO_KEYS[] = {"iconnumber"};

static char *ICONINFO_valueS[] = {"5"};

static char *BITMAPINFO_KEYS[] = {"bitmapnumber"};

static char *BITMAPINFO_valueS[] = {"3"};

/*

static char *BGPICTURE_KEYS[] = {"position"};

static char *BGPICTURE_valueS[] = {"center"};

static char *MOUSE_KEYS[] = {"dblclicktime"};

static char *MOUSE_valueS[] = {"300"};

static char *EVENT_KEYS[] = {"timeoutusec", "repeatusec"};

static char *EVENT_valueS[] = {"300000", "50000"};

*/

static ETCSECTION mgetc_sections [] =

{

{4, "system", SYSTEM_KEYS, SYSTEM_valueS},

{1, "fbcon", FBCON_KEYS, FBCON_valueS},

{2, "qvfb", QVFB_KEYS, QVFB_valueS},

{10,"systemfont", SYSTEMFONT_KEYS, SYSTEMFONT_valueS},

{1, "cursorinfo", CURSORINFO_KEYS, CURSORINFO_valueS},

{1, "iconinfo", ICONINFO_KEYS, ICONINFO_valueS},

{1, "bitmapinfo", BITMAPINFO_KEYS, BITMAPINFO_valueS},

/* optional sections */

/*

{1, "bgpicture", BGPICTURE_KEYS, BGPICTURE_valueS},

{1, "mouse", MOUSE_KEYS, MOUSE_valueS},

{2, "event", EVENT_KEYS, EVENT_valueS},

*/

};

ETC_S MGETC = { 7, mgetc_sections };

#endif /* _INCORE_RES */

修改后编译并运行。仍然提示错误。

/bin> helloworld

MAP_SHARED not supported (cannot write mappings to disk) //这条一看就知道在MMAP使用了不适合u 数, 此项应该设置为0

NEWGAL: Does not find matched engine: fbcon. GDI: Can not get graphics engine information! InitGUI failure when using incore resource.

Unable to memory map the video hardwarepid 30: failed 256

后来经过跟踪。在/libminigui-1.3.3/src/newgal/fbcon/fbvideo中找到OPEN及MMAP引用。

将mapped_mem = mmap(NULL, mapped_memlen,

PROT_READ|PROT_WRITE, MAP_SHARED, console_fd, 0);

改为

#ifdef __uClinux__

mapped_mem = mmap(NULL, mapped_memlen,

PROT_READ|PROT_WRITE, 0, console_fd, 0);

#else

mapped_mem = mmap(NULL, mapped_memlen,

PROT_READ|PROT_WRITE, MAP_SHARED, console_fd, 0);

#endif

将mapped_io = mmap(NULL, mapped_iolen, PROT_READ|PROT_WRITE,

MAP_SHARED, console_fd, mapped_memlen);

改为

#ifdef __uClinux__

mapped_io = mmap(NULL, mapped_iolen, PROT_READ|PROT_WRITE,

0, console_fd, mapped_memlen);

#else

mapped_io = mmap(NULL, mapped_iolen, PROT_READ|PROT_WRITE,

MAP_SHARED, console_fd, mapped_memlen);

#endif

编译后运行。发现出现代码崩溃,

/bin/helloworld

Unhandled fault: external abort on linefetch (F4) at 0x00000001

fault-common.c(97): start_code=0xcd00040, start_stack=0xcdfff84)

pid 32: failed 7

经过艰苦的跟踪分析。在/home/libminigui-1.3.3/src/kernel/desktop.c中。

将if (!InitSystemRes ()) {

fprintf (stderr, "DESKTOP: Can not initialize system resource!\n");

return FALSE;

}注释掉。

编译运行。 显示OK,终于可以显示出Helloworld的窗体,至此,全部移植完成,可以发挥自己的想象力,GUI界面程序了!

android系统开发工作介绍

android系统开发工作介绍 一、android的开发工作 Android的开发分为三个类型:移植开发移动设备系统;android系统级开发和应用程序开发。 1、移植开发移动设备系统 2、Android系统级开发,指的是扩展android的框架或者是修改bug,这方面比较少,除非有些开发移动设备的厂商,比如做gps,可以往里面加入一些自己的特定系统东西,这可能导致一些不兼容。当然也可能是简单的修复bug,详细的内容后面还有说。 3、开发应用程序,这应该是比较主流的开发,也就是给android系统写应用程序。当然我们这里主要是研究android的framework如何给这些应用程序提供服务的。 总结一下,我们可以把android分为四个层次,从底层往上依次为:linux内核、C/C++库、java 框架和java应用程序。移植开发移动设备涉及到linux内核(包括其驱动);android系统级开发涉及到C/C++库的开发及给上层java框架;android应用程序开发就是调用java的框架写应用程序。 简单的从上到下,android应用程序需要有java框架支持,比如它要发送短信,就需要java 框架,java框架其实就是将C/C++库包装成为了一个JNI,而实现具体的功能是C/C++库,最后驱动硬件完成功能,这也就是linux内核部分。 所谓framework,也就是系统级开发,这将是本文的重点,虽然android的framework 开发比较少,但是对其了解后更有利于整体开发的进行,当然很多设备厂商还是非常需这要些的。 二、android系统架构

Linux内核及驱动、C/C++框架、java框架、java应用程序。 1)、Linux内核及驱动 其中linux内核及驱动是内核层的(本人对linux内核也有过痴迷的时候,就像现在android 痴迷一样),系统总是需要操作系统的支持的,比如内存管理、进程管网理、络协议栈等。 2)、android的C/C++框架 系统C库:用的是libc,没什么好说的,C程序员都知道。多媒体库SurFace Manager:显示子系统的管理器LibWebCore:web浏览器引擎,支持android浏览器SGL:skia图形库,底层的2D图形引擎 3D库:OpenGL FreeType:字体显示Android的运行环境,这个也应该属于这个框架里面的,android的虚拟机叫做Dalvik,运行环境就是由这个虚拟机和基础的java类库组成。 3)、android应用框架 提供一系列的服务和系统,包括视图、内容提供器、资源管理器、通知管理器活、动管理器。 视图非常丰富:list、grid、text box、button等。内容提供器是使得应用程序可以访问另一个程序的数据。资源管理器是提供访问非代码的资源访问,如布局文件。通知管理器,使得程序可以在状态栏中显示自定义的提示信息。活动管理器,用来管理程序生命周期。 4)、android应用程序Android所有的应用程序都是用java写的,当然现在好像也支持一些脚本语言,如 ruby,但是不支持C开发,所谓支持C开发是指jni的形式。 。。。。。。。。。

minigui1.33在uclinux移植过程

Minigui V1.3.3在uClinux中的移植经验总结 [转] 经过一个星期的努力,终于将Minigui移植到我的ARM7开发板上了,在这个过程中我遇到了很多困难和问题网络,通过以前很多前辈在网络上分享的经验,终于取得成功,也让我更加体会到只有大家都互相帮助,才能使大家都受益。所以基于这一点,我将我的移植过程分享给大家,并且写得尽量详细点,希望给大家后来者少走一些弯路。有不对的地方,欢迎大家板砖! 首先说明一下我的开发平台,我用的是Samsung S3C44B0X芯片的开发板,已经移植好的uClinux操作系FrameBuffer驱动。我的uClinux安装在"/s3c44b0fu/uClinux-dist"目录下,交叉编译工具安装在"/usr/local/a 下。 具体步骤: 一. 从网站下载 libminigui-1.3.3.tar.gz, mde-1.3.0.tar.gz, mg-samples-1.3.0.tar.gz和minigui-res-1.3.3.tar.g 件,并将这四个文件保存到交叉编译环境的目录下,因为我的arm-elf-gcc交叉编译工具安装在"/usr/local/arm-以将minigui的四个压缩包同样拷贝到"/usr/local/arm-elf"目录下. 二. 在终端中输入"cd /usr/local/arm-elf",进入minigui的四个压缩文件所在目录,然后分别执行"tar zxvf xxxx 四个压缩包解压缩.解压后生成libminigui-1.3.3, mde-1.3.0, mg-samples-1.3.0和minigui-res-1.3.3四个文件 三. 1) 进入minigui-res-1.3.3文件夹内,修改config.linux,在prefix = $(TOPDIR)/usr/local/后添加我们的交叉arm-elf,即prefix = $(TOPDIR)/usr/local/arm-elf. 2) cd minigui-res-1.3.3 3) make install 四. cd mde-1.3.0 ./configure make cd mg-samples-1.3.0 ./configure make 五. 1) 编写交叉编译minigui函数库的配置脚本domain.sh. domain.sh的具体内容为: #!/bin/sh rm config.cache config.status -f CC=arm-elf-gcc \ CFLAGS="-I/s3c44b0fu/uClinux-dist/uClibc/include -Dlinux -D__linux__ -D__uClinux__ -Dunix " \ LDFLAGS="-Wl,-elf2flt -static -Wl,-move-rodata -Wl,-L/s3c44b0fu/uClinux-dist/lib/uClibc/lib -Wl,-L/s3c44b dist/linux-2.4.x/lib -Wl,-lc -Wl,-lm" \ ./configure --prefix=/usr/local/arm-elf \ --build=i686-pc-linux-gnu \ --host=arm-elf-linux \

安卓Android ROM定制、移植:第六篇:boot.img、recovery解包和打包

太抱歉了,因为教程实在是有点粗浅了,其实很多东西都不知道怎么去写,这不是复制粘贴,当然很多只是一步步的走的,不过也许我自己觉得已经阐述的很清楚了,可是一旦别人看起来,还是感觉很深奥,没办法,本人就这点能力了,呵呵! 大家都知道安卓的核心更换呢,那是在boot.img里面,那么如何在WINDOWS下去解开它呢,LINUX的自己略过。。。。 首先百度BOOTIMG.EXE,然后你懂的,会出来一大堆,这得感谢制作bootimg.exe的作者,本来是为华为的机器做的分解工具,不过我们也可以拿来分解boot.img、recovery.img等,OK!先来谈谈这两个文件的基础,部分来自网络。 boot和recovery映像的文件结构 boot和recovery映像并不是一个完整的文件系统,它们是一种android自定义的文件格式,该格式包括了2K的文件头,后面紧跟着是用gzip压缩过的内核,再后面是一个ramdisk 内存盘,然后紧跟着第二阶段的载入器程序(这个载入器程序是可选的,在某些映像中或许没有这部分)。此类文件的定义可以从源代码android-src/system/core/mkbootimg找到一个叫做bootimg.h的文件。 (译者的话,原文是一个叫做mkbootimg.h的文件,但从Android 2.1的代码来看,该文件名应该是改为bootimg.h了)。 /* ** +-----------------+ ** | boot header | 1 page ** +-----------------+ ** | kernel | n pages ** +-----------------+ ** | ramdisk | m pages ** +-----------------+ ** | second stage | o pages ** +-----------------+

Minigui在ARM开发板上的移植过程

Minigui在ARM开发板上的移植过程 一、题外话: 为了感谢国人在开源世界颇具影响力的为数不多Minigui的开发者们的辛勤劳动(希望为数不多这个这个词若干年后我们不再提^_^),也为答谢飞漫公司和魏永明先生对开源项目在中国的运作模式的有意义的探索, 也为自己在感慨、敬佩之余尽一点微波之力,就将借工作之便并参考众多网友的体会,将一点移植心得整理出来,希望公司不介意。考虑到每个人接触linux的起点不同,所以下文档按步就班说得比较详细(说得不好听点是罗嗦,^_^,如果您熟悉相关部分,请略过,希望不要当面说俺写的罗嗦,呵). 二、特别声明: 本文的移植过程主要以minigui1.2.3为基础。 本文中提到的注意可能是您容易忽视,而又要引起您注意的地方或者由于理解上的差异而容易造成交叉编译失败的地方。 本文中需要修改的地方以红色字体标注,而添加或者修改的地方以蓝色标注,需要您执行命令的地方以粉红标注(html格式颜色不显,我又懒蛋得写HTML标签,建议您下载附件中的PDF文档)。 另外,本文中提到的脚本编写和修改都请在linux环境下手工编写,不要在windows下或者直接从下面拷贝,免得出现错误。 三、硬件平台: CSB226-PXA250,Cogent ep7312,此文档以CSB226-PXA250参考开发板的移植过程为主来说明. LCD屏幕特性:640x480,支持8bpp. 支持标准PC键盘、鼠标 四、软件环境: 主机:Redhat7.2 目标板:采用umon作为boot loader, 开发环境和运行的内核是Montavista Profession Edition 2.1. 目标板(以下称为target)采用NFS的方式将根文件系统挂接到开发主机(以下称为host)上,其路径为:/opt/hardhat/devkit/arm/xscale_le/target,目标板上以控制台下的framebuffer 方式运行。 host和target都以root身份登陆。 将minigui库文件原代码libminigui1.2.3.tar.gz,资源文件minigui-fonts.1.2.0.tar.gz, minigui-imetabs-1.1.0.tar.gz, minigui-res-1.2.0.tar.gz放在主机任意目录下,而考虑到演示程序编译后没有相应的安装脚本,将源代码包mde-1.2.3..tar.gz放在了 /opt/hardhat/devkit/arm/xscale_le/target/root下面。首先用类似tar zxf liminigui1.2.3.tar.gz命令将所有的压缩包解开。 五、libminigui1.2.3及资源文件的移植: 1、libminigui1.2.3文件的移植: 它移植主要定义交叉编译器已经编译后的目标库和头文件的存放路径,参考给出的交叉编译例子编写了交叉编译脚本build-pxa250 #!/bin/sh

S3C6410 移植Android 内核移植经验

主要过程: . 安装lunux 环境 . 安装编译工具 . 下载Linux kernel . 安装Android SDK . 获得root file system . 修改Linux kernel 源码 . 配置Linux kernel . 修改root file system . 编译Linux kernel . 下载kernel Image 1.安装linux 环境 安装Ubuntu Linux 系统,从网站上下载操作系统安装光盘映像,地址: https://www.360docs.net/doc/0e144995.html,/ubuntu/releases/8.04/ 下载ubuntu-8.04.2-desktop-i386.iso,刻录成光盘安装,安装可以在windows 系统下进行, 选取有15G 空间的硬盘安装,输入用户密码开始安装 这一步结束退出光盘重启进入Ubuntu 系统,完成余下系统安装。 Linux 安装完成,进入Ubuntu 系统,确保电脑连接Internet,安装一些必要软件。 打开终端输入命令框,进行下面的操作: $ sudo apt-get install ssh $ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl

$ sudo apt-get install valgrind $ sudo apt-get install sun-java6-jdk $ sudo apt-get install libncurses5-dev 所有软件系统会自动从网络下载安装,完成后可以开始Android 的移植。 2.安装编译工具 下载: $ wget https://www.360docs.net/doc/0e144995.html,/public/gnu_toolchain/arm-none-linux-gnuea bi/arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 安装: $ tar -xjvf arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 3.下载Linux kernel 从下面地址获得: https://www.360docs.net/doc/0e144995.html,/p/android/downloads/list?can=1&q=&colspec=File name Summary Uploaded Size DownloadCount Kernel : linux-2.6.23-android-m5-rc14.tar.gz 解压文件 $ tar -xf linux-2.6.23-android-m5-rc14.tar.gz 4.安装Android SDK 从网上下载linux 版本的Android SDK,如下 https://www.360docs.net/doc/0e144995.html,/android/android-sdk_m5-rc15_linux-x86.zip 下载后解压,获得android-sdk_m5-rc15_linux-x86 文件 5.获得root file system ⑴下载busybox 工具从下面地址 http://benno.id.au/blog/2007/11/14/android-busybox(linux 环境中下载)⑵运行emulator 获取root file system $ cd <目录>/ android-sdk_m5-rc15_linux-x86/tools $ ./emulator& 等待emulator 启动,看到出现Android 系统画面,进入菜单ALL/Dev Tools/Development Settings 下,将Wait for debugger,Show running processes,Show screen updates 这三项打勾,回到命令输入终端。 $ ./adb push /busybox /data $ ./adb shell # /data/busybox tar -czf system.tar.gz /system # /data/busybox tar -czf data.tar.gz /data # /data/busybox tar -czf etc.tar.gz /etc # /data/busybox tar -czf sbin.tar.gz /sbin # exit $ ./adb pull /system.tar.gz ./ $ ./adb pull /data.tar.gz ./

【IT专家】yolo模型移植到android手机端

本文由我司收集整编,推荐下载,如有疑问,请与我司联系 yolo模型移植到android手机端 2017/08/18 665 之前写了android demo在手机上的运用,但是模型都是官方给的,想要替换成自己的模型,因此尝试了下将自己训练的yolo模型来替换demo给的模型。首先,darknet的训练和.weight文件到.pb文件的转化,以及android demo 的实现见之前的博客。在此不再叙述sdk,nkd等配置问题,且直接使用.pb文件。其次,默认已安装android studio。 (1)终端进入(android安装目录)/bin,输入./stuodio.sh开启android studio ?(2)点击new,import project导入(tensorflow所在路径)/tensorflow/examples/android文件夹(可连接手机先run,保证demo能够正常运行后再行修改) ?(3)将build.gradle中68行的bazelLocation改为自己bazel的路径:def bazelLocation = ‘/home/seven/bin/bazel’185行apply from: “download-models.gradle”注释掉,并在第112行,增加//*/(不然后面的内容都被当做注释了): ?if (nativeBuildSystem == ‘bazel’ || nativeBuildSystem == ‘makefile’) { // TensorFlow Java API sources. java { srcDir ‘../../java/src/main/java’ exclude ‘**/examples/**’//*/ } // Android TensorFlow wrappers, etc. java { 最后,将第76行开始的内容改为自己需要的版本号: android { compileSdkVersion 25 buildToolsVersion “26.0.1” if (nativeBuildSystem == ‘cmake’) { defaultConfig { applicationId = ‘org.tensorflow.demo’ minSdkVersion 21 targetSdkVersion 25 ndk { abiFilters “${cpuType}” } (4)将转化得到的.pb文件放在(tensorflow所在路径)/tensorflow/examples/android/assets文件夹内,为方便起见,可将此.pb重命名为graph-tiny-yolo-voc.pb。若文件夹中已存在此文件名的文件,删除之。 ?(5)该项目将一次性生成三个app,因为我只需要detect一个,在AndroidManifest.xml中删除关于另外的两个activity,修改后的文件如图 ?

嵌入式Linux的MiniGUI研究和移植

三竺兰竺————————————二三二. 数据的产生频率为lOms。 (2)非实时模块之间的互斥 非实时模块中异步执行的各采集线程之间,可以利用互斥变量的加锁和解锁实现对共享内存访问的互斥。由于互斥区的执行体内,每次只允许一个线程进入,为了保证程序的执行效率,在互斥区中不宜使用耗时较长或阻塞式调用的函数。 4结论 在RTLinux提供的实时模块和非实时模块之间的通信接口中,RT-FIFo和共享内存较为常用,分别适用于不同的数据类型通信。本文提出的这种方法,能充分利用两者的优点,方便地实现实时与非实时之间海鼍数据通信。目前已在rtuDux3l、I加uxkerne【2.4.4系统平台上成功实现,并取得了令人满意的效果。臆 参考文越 1VlctorYodalken,Michael Bar&b洲RTI朋uxVerslonTw0.2001(1) 2H{ltonEdgarF.V1ctofYodamen.RealT…App】lcationswlthRrLlnux.EmbeddedLLnuxJournal.z00l(1) 嵌入式Linux的MinIGUl研究和移植 西南交通大学闰玉忠石理 摘要分析嵌入式操作系统下典型的图形用户界面MiniGUl的结构和特点,井提出将其移植到suNPLUS的DvD720上的方案。 关键词图形用户界面(Gul)嵌入式系统F。8m。B“ffe。1_p;J占B 1嵌入式L』nux下的Gu|概况 11GⅧ在嵌入式系统中的地位 随着嵌人式系统的广泛应用,PDA、机顶盒、DvD/vcD播放机及wAP手机已经迅速普及。图形用户界面(GuI)的广泛流行,是当今计算机技术的重大成就之一。它极大地方便了非专业用户的使用,因此实时嵌人式系统对GUI的需求越来越明显,而这一切均要求有一个高性能、高可靠的GuI的支持。 由于嵌人式系统实时性要求非常高,对GuI的要求也更高。这些系统一般不希望建立在庞大累赘的、非常消耗系统资源的操作系统和GuI之上,比如windows或xwjndow,太过庞大和臃肿。这样,这些系统对轻型GuI的需求更加突出。另外嵌入式系统往往是一种定制设备,它们对GuI的需求也各不相同。有些系统只要求一些图形功髂,而有些系统要求完备的Gul支持,困此,GuI也必须是可定制的。嵌入式系统对GuI的基本要求包括轻型,占用资源少、高性能、高可靠性及可配置[1]。 12目前嵌入式系统中Gul的实现 尽管实时嵌A式系统对Gu】的需求越来越明显,但目前(jul的实现方法各有不同m: ①某些大型厂商有能力自己开发满足自身需要的GUI系统。 ②某些厂商没有将GuI作为一个软件层从应用程序中剥离,GuI的支持逻辑由应用程序自己来负责。 ③采用某些比较成熟的Gul系统,比如M1niGUI、MIcrowindows或者其它GuI系统。 比较常用的有如下几种Gul系统:紧缩的xwindow系统、MiniGUI、Microwindows、OpenGUI及QT/Embedded等。下面简单介绍这些系统。 (1)MiniGUI MiniGuI口?由原清华大学教师魏永明先生开发,是一种面向嵌入式系统或者实时系统的图形用户界面支持系统。它主要运行于Linux控制台,实际可以运行在任何一种具有POsIx线程支持的POsIx兼容系统上。MiniGUI同时也是国内最早出现的几个自由软件项目之一。稍后将对它作详细的介绍。 (2)MjcroWindows Microwindows口3是一个著名的开放源码的嵌人式GuI软件。Microwindows提供了现代图形窗口系统的一些特性。MicrowindowsAPI接口支持类Win32API,接口试图和win32完全兼容。它还实现了一些Win32用户模块功能。Microwindows采用分层设计方法,烈便不同的层面能够在需要的时侯改写.基本上用c语言实现。Micmwlndows已经支持  万方数据

Android_ROM制作移植及精简教程

Android_ROM制作,精简及移植教程 本教程主要内容有:Android系统文件夹结构解析、应用软件说明、定制精简、ROM签名把包等内容。刷机有风险,出问题自负。其实这个教程一早就想写的,但由于时间及本人的懒惰,一直拖着。今晚终于静下心来写好本文,本文有部份内容来自于网络。 速度与华丽,你喜欢那个。是不是想要一个又够速度又华丽的ROM呢?我是一个追求新鲜的人,对于手机的ROM,我又追求稳定、精简、美观、省电。现在Hero ROM有很多,最新的有第三方Android 2.1版本,但这些ROM的制作者都会跟据自已的个人喜欢会增加和增少相应的功能或是界面,但我们往往不喜欢这些ROM的某些小方面,所以随着而来面对的问题就是怎样把这个ROM修改成为一个自已真正需要的ROM呢?以往一直是依靠“大杀器”来解决,但觉得还是过于麻烦,所以寻求办法自己动手修改ROM。于是有了本文。废话少说,进入题。 一、Android系统文件夹结构 一个完整的ROM根目录会有以下几个文件夹及文件: data META-IN system boot.img 系统目录说明 1. 应用程序安装目录 1) 系统应用程序所在目录 /system/app/*.apk 2)用户安装应用程序所在目录 /data/app/*.apk 3) 注意: a)在模拟器中,每重启一次,/system/app/下的应用都会被还原,有时/data/app下也会被清除 b)若在/system/app和/data/app下有重名的应用,不一定会启动哪一个,尤其是在adb install杀死正在运行的程序时,有时旧的就会被启动 2.用户数据所在目录 /data/data/应用包名/shared_prefs 配置文件 /data/data/应用包名/databases/* 库文件所在目录 3. SD卡对应目录 /sdcard/

linux下minigui移植与软键盘

课程设计成果说明书 题目:Linux下基于minigui的软键盘程序调试 学生姓名:苏腾云/王润志/蒋强/游寺豪/沈龙/陈阳狮学号:0800403220/0800403222/081311128 081311101/081311136/0800403109 学院:机电工程学院 班级:AC08电信 指导教师:赵秋亮老师 浙江海洋学院教务处 2011年07月01日

浙江海洋学院课程设计成绩评定表 2009 —2010学年第2 学期 学院机电工程班级 AC08电信专业电子信息工程 学生姓名(学号) 苏腾云/王润志 游世豪/蒋强 沈龙/陈阳狮 课程设计 名称嵌入式系统课程设计 题目MiniGUI移植 指导教师评语 指导教师签名: 年月日 答辩评语及成绩 答辩小组教师签名: 年月日

附2: 浙江海洋学院课程设计任务书 2010 —2011学年第2 学期 学院机电工程班级 AC08电信专业电子信息工程 学生姓名(学号) 苏腾云/王润志 游世豪/蒋强 沈龙/陈阳狮 课程 名称 嵌入式系统课程设计 设计 题目 Linux下基于minigui的软键盘程序调试 完成 期限 自 2011 年 6 月 20 日至 2011 年 7 月 1 日共 2 周 设计依据本次设计所需知识 1.S3C2410的基本知识 2.Linux系统常用命令 3.linux编辑器VI的使用方法 4.MiniGUI的基本知识 5.MiniGUI的移植方法 设计要求及主要内容1.熟悉linux系统的常用操作命令 2.熟悉VI(或GVIM)的操作方法 3.完成虚拟机VM的安装 4.完成虚拟机VM下的Linux(RedHat9.0)的安装 5.完成交叉编译环境的建立 6.完成PC机环境下minigui的安装与配置,QVFB的安装 7.完成minniGUI在S3C2410A上的移植 8.利用示例程序包中程序验证移植结果,结果能在LCD与QVFB上正常显示 9.调试基于minigui的软键盘程序,并能在QVFB和LCD上显示。10.录制设计结果演示和解说视频 11.完成课程设计说明书的撰写。撰写格式要求按照《机电工程学院毕业设计文本规范》。 参考资料[1]. ARM9嵌入式系统设计――基于S3C2410与Linux.徐英德等.北京航空航天大学出版社.2007年. [2]. 嵌入式系统实验指导书.自编. [3]. 实验指导书-EL-ARM-830型教学实验系统(ARM9).北京精仪达盛科技有限公司. [4]. Minigui实验指导书(for S3C2410).北京精仪达盛科技有限公司. [5]. Minigui编程指南.飞漫公司. [6]. FTP资源:172.16.51.6 用户名:dx 密码:1234. 在/ARM目录下。 指导教 师签字 日期

MiniGUI及其移植与应用

MiniGUI及其移植与应用 权宁一 (东北电力大学信息工程学院吉林吉林132012) 【摘要】:本文介绍了MiniGUI系统在嵌入式开发中的移植与应用。对MiniGUI图形软件的特点、体系结构、工作模式做了叙述,描述了MiniGUI在uc_osⅡ环境中的移植方法,MiniGUI应用软件的开发思想和流程,并对其应用领域做了介绍。 【关键词】:MiniGUI,移植,控件,消息循环 1、MiniGUI概述 随着嵌入式系统在工业控制、信息家电、智能手持终端、办公自动化等领域中的广泛应用,人们对产品的图形用户接口(GUI)的需求越来越强烈。图形美观、界面友好的GUI已广泛应用在3G手机、PDA、智能传感器、工控终端等嵌入式设备上,其中比较成熟的GUI产品有:MiniGUI、MicroWindows、OpenGUI、TinyXWindow、QT/Embedded。 MiniGUI最初是清华大学为数控机床研发计算机控制系统时根据需要独立开发的图形用户接口,它具有代码小巧、实时性好、高效稳定、易于裁减的特点,非常适合应用于嵌入式实时控制系统。MiniGUI可以运行在任何一种具有线程支持的POSIX兼容系统上,同时也是国内出现的最早的遵循LGPL条约的自由软件之一。MiniGUI有三种运行模式:⑴MiniGUI-Threads:运行在MiniGUI-Threads的程序可在不同的线程中建立多个窗口,但所有的窗口在一个进程中运行,可以配合的操作系统有ucosii、vxworks、linux。⑵MiniGUI-lite:每个程序是单独的进程,每个进程可建立多个窗口,只有具备完整unix特性的操作系统才可运行这一模式。⑶MiniGUI-standalone,可以以独立进程方式运行而不需要其它任何支持,这种方式几乎可以支持所有操作系统。MiniGUI具有以下特点:⑴小巧可订制,包含全部功能的库文件只有300k。⑵高稳定性,可移植性好。⑶界面皮肤支持,用户可通过皮肤支持获得华丽外观界面。⑷提供了完备的多窗口机制及消息传递机制。⑸丰富的控件资源,包括菜单、进度条、列表框、按钮、工具栏等。(6)多种键盘布局支持,多字符集及多字体支持,常见的图像文件支持。⑺多种汉字输入法支持,windows资源文件支持。 2、MiniGUI的结构特点与移植方式 2.1MiniGUI的体系结构 图1MiniGUI结构体系 MiniGUI采用了分层结构设计思想,共分为GAL、IAL、Pthread层,MiniGUI核心层,用户接口层三层结构。GAL为图形抽象层,提供了底层操作系统的图形接口,配置MiniGUI选用GAL引擎,就可使用framebuffer作为MiniGUI图形发生引擎;IAL为输入抽象层,它提供了输入设备如键盘鼠标等的驱动,可将输入设备的输入事件最终映射为GUI系统API层的消息事件。有了GAL、IAL可以把底层硬件及操作系统进行完全屏蔽,方便MiniGUI的移植。同时,用户可在XWindow系统中调试运行自己的产品,通过重新编译就可使软件运行在特定的硬件平台上。Pthread(POSIXthread)是提供内核级线程支持的c库函数。MiniGUI核心层为中间层,包含了窗口系统所需要的各个功能模块,详见图1。用户接口层API对于不同的平台是一致统一的,底层系统已被完全屏蔽,用户不必考虑输入设备及绘图细节,只需使用标准C语言进行类似win32库函数调用即可。2.2MiniGUI工作模式 MiniGUI采用微客户/服务器机制,通过消息队列和多线程之间的同步机制来实现。在多线程环境中各线程之间有信息交互的需要,依据"先来先服务"的原则,依次处理每个线程的请求。一个线程首先在desktop微服务器的消息队列中放置一条消息,要求建立窗口,然后进入等待状态。当desktop处于空闲状态时可以立即处理这一请求。最后,desktop返回处理结果,唤醒等待的线程。 MiniGUI启动3个重要的微服务器,它们分别为desktop、parser、timer。其中desktop用于管理MiniGUI窗口中的所有主窗口;parser线程用于采集键盘鼠标事件并转换成API层消息;timer线程用来触发定时器事件。 2.3MiniGUI的移植 嵌入式系统的结构框架从底层到上层依次为:硬件平台、嵌入式操作系统、MiniGUI、用户程序,其中uclinux与uc/OS-II为常用的操作系统,下面以uc/OS-II为例介绍MiniGUI的移植。uc/OS-II具有实时性强、代码简单的特点,在教学及工业实时控制领域得到了广泛应用。MiniGUIforuc/OS-II的配置及编译可在windows环境中的ADS开发平台中进行,编译完成之后生成一个静态库MiniGUI_lib,最终生成包括uc/OS-II、MiniGUI、应用程序在内的可执行映像文件,将映像文件固化写入硬件平台即完成MiniGUI的移植。在编译之前需要进行以下工作:设置MiniGUI配置头文件、确定头文件路径、选定编译规则。MiniGUI配置头文件中参数_AUTO_IAL是模拟键盘鼠标选项;_COM-MM_IAL是uc/OS-II通用输入引擎;_GB_SUPPORT是字符集支持;_USE_OWN_MALLOC为内存管理函数支持;_USE_OWN_STDIO为函数支持。编译规则设置中_MiniGU-I_LIB_声明编译MiniGUI_LIB库;_uc/OS-II_声明目标操作系统;-EC允许隐性类型转换;_NOLINUX_表示非linux系统。3、基于MiniGUI的软件设计开发思想 3.1MiniGUI开发流程 uc/OS-II初始化后创建任务main_task,在该任务中创建POSIX协议线程main_thread,main_thread中调用函数mg_main_task,进入MiniGUI入口MiniGUI_entry,进而调用应用程序入口函数MiniGUIMain,执行用户软件及窗口过程函数。MiniGUI应用程序必须包括的头文件有:common.h--定义了宏及数据类型;minigui.h--定义了接口函数及杂项函数;window.h--定义了窗口的宏及数据类型;control.h--定义了系统内部控件。 MiniGUIMain()是程序的入口点函数,一般用户程序先创建一个主窗口或非模式对话框,在主窗口内建立若干控件,然后建立消息队列,进入窗口消息循环,响应各类消息。通过调用Cre-ateMainWindow()函数创建主窗口,函数返回窗口句柄。函数调用时需给MAINWINCREATE结构体指针赋值,确定主窗口的各项属性值。调用ShowWindow()函数将主窗口进行显(下转第71页 )

MiniGUI3.0+tslib1.4移植过程

硬件平台:ASM9260开发板 Linux内核:linux-2.6 作者:孙怀亚 qq:413983254 交叉编译器:arm-none-linux-gnueabi-gcc MiniGUI交叉编译过程--------------------------------------------------------- 在开始之前,先准备好交叉编译过程中所需要的几个库文件: 1.jpegsrc.v6b.tar.gz 2.libpng-1.2.18.tar.bz2 3.tslib-1. 4.tar.gz 4.libminigui-gpl-3.0.12.tar.gz 5.minigui-res-be-3.0.12.tar.gz 6.zlib-1.2.3.tar.gz 7.freetype-1.3.1.tar.Gz 8.mg-samples-3.0.12.tar.gz 如果下面配置或命令有错,一般是由于拷贝制作word文档时,软件自动首字母变成大写或自动加空格的原因,切记要改回来!!!!! 第一步:首先建立新目录 [root@localhost /]# mkdir -p /root/cross 将开头所述的文件全部拷贝至 /root/cross目录下 第二步:安装 zlib 库,这个是后面的库的编译基础。 [root@localhost cross]# tar zxvf zlib-1.2.3.tar.gz 由于 zlib 库的configure 脚本不支持交叉编译选项,只好自己手动临时把 gcc 修改成指向我们的交叉编译器arm-none-linux-gnueabi-gcc [root@localhost cross]# cd /usr/bin/ [root@localhost bin]# mv gcc gcc_back [root@localhost bin]# ln -s /usr/local/arm/arm-2008q3-linux/bin/arm-none-linux-gnueabi-gcc ./gcc [root@localhost bin]# mv ld ld_back [root@localhost bin]# ln -s /usr/local/arm/arm-2008q3-linux/bin/arm-none-linux-gnueabi-ld ./ld 修改完成后回到 /root/cross/zlib-1.2.3 目录下: [root@localhost bin]# cd /root/cross/zlib-1.2.3 [root@localhost zlib-1.2.3]# ./configure --prefix= /usr/local/arm/arm-2008q3-linux/arm-none-linux-gnueabi --shared

安卓系统移植经验之谈,教你三分钟移植

每当我闲下来时不发Rom时,就会整理一下思路,发发教程啥的,我觉得能带动机油们自己打造、改造Rom,共同提升,才是Romer的追求。 发Rom也好,教程也好,我的宗旨是不设回复可见,如果你觉得好,回复或者评分鼓励一下,我就很开心了。 不过这样做的一个遗憾就是,我的帖子通常回复率不够高,沉得快。 好了,闲话少说,上教程。 注:可能你会觉得文字教程比较干枯,不够形象生动,但是请精心看,我会尽量讲得具体、清晰。 首先,我并不算是移植高手,这个教程只是我在自己移植过程中的的一些收获体会,一些经验之谈。 如果你觉得有什么不对或值得改进的地方,欢迎和我交流,我们一起来完善这个教程。 因为移植所涉及的机型、配置相当多变和复杂,所以我无法讲具体细节,只能讲大致的原则。 可以结合我移植U8800+的JoyOS到U8860的例子作为参考进行理解。 我把这些原则抽象出来,命名为Rom移植5步法,具有一定的通用性。 Rom移植的方向有正向和逆向之分: 正向的做法通常就是,找个目标机型的底包,然后把要移植的包的app和framework提取出来替换进去。 这样的优点是改动无需太大,非常快捷;缺点是经常因为一些bin下的程序或者

库文件的差异而导致成功率不够高。 逆向的做法是,拿要移植的包作为底包,把目标机型的内核、wifi驱动、传感器库文件、配置文件等替换进去。 这样做要复杂一些,需要准确两个包的差异,知道应该改哪里; 优点自然是不成则已,一旦移植成功能最大限度地发挥Rom性能,因为框架、程序与底层的契合度要比正向法好。 我这个教程以逆向法为例。 另外,Rom移植有风险,刷机测试需谨慎,如有本人操作不当导致出现任何问题,本人概不负责。 Rom移植5步法: 1.Rom移植涉及的东西比较偏底层,所以在移植之前必须清楚目标机型的硬件配置,分区结构。 这里的配置不是说主频多少、内存多少,这两个参数基本上不会影响移植的进行。对于移植,最关键的因素是主板平台,通常采用同一系列的cpu的不同机型的Rom移植的成功率要高很多。 比如,U8800+和U8860均是高通8255处理器,虽然主频不一样,但它们却同属于同样的MSM7x30平台。 他们之间的互相移植,绝对要比与MSM7K平台的中兴V880互相移植来的容易得多。 至于为什么要弄清分区结构,会在下面讲到。

ANDROID Platform GT818 驱动移植说明书

Android平台GT818驱动移植说明书 【程序总揽】 本程序针对Android2.1系统,移植的硬件平台为华天正科技开发的Real6410(基于S3C6410)。本驱动支持多指,能够在系统支持的情况下在主控进入关屏状态时自动调整GT818工作状态,达到省电的目的。 1.1系统资源使用 1.2系统运行流程 为了便于移植,程序中采用了中断和定时查询两种方式,并建议使用中断方式。以中断方式为例,系统的主运行流程如下所示: 1.创建Guitar对应的i2c_client对象,其中完成了该适配器的相关信息设置; 2.加载触摸屏驱动,注意该驱动必须在I2C总线驱动已经加载的情况下才能进行,否则I2C通信将 出错。程序中将其加载优先级设为最低; 3.创建驱动结构体,探测Guitar设备,并将其挂载到I2C总线驱动上;测试I2C通信,注册input 设备,申请IO口和中断资源,完成Guitar初始化工作(如有需要,烧录升级在此进行); 4.开启触摸屏中断,等待数据接收; 5.收到触摸屏数据中断,关中断; 6.通过I2C传输数据,分析手指信息,; 7.更新按键信息,上报手指坐标、按键等信息,开中断; 8.重复4-7之间的循环。

【移植指南】 4.准备工作 本驱动采用GPL许可证,代码没有采用模块方式,所以使用本驱动前需要重新编译内核。在编译内核前,

我们需要做好以下准备工作: 1、在硬盘上或使用虚拟机(如VmWare)安装Linux系统,推荐使用Ubuntu9.10; 2、安装gcc及arm-linux-gcc和其他编译工具,将CC和LD指定为arm-linux-gcc; 3、获取平台对应的Android源码,解压到自己的工作目录。 4、了解移植平台的IO口、中断、I2C总线的使用方式。 5.内核编译配置 在编译代码前我们需要进行内核编译配置,可以使用下面命令中的一个: #make xconfig (基于QT的图形配置界面,非常直观,推荐使用) #make menuconfig (基于文本菜单的配置界面) 下面我们以make xconfig为例,将我们的驱动增加到内核中去。假定我们源代码目录为: ~/android/kernel/ 将编写的源代码复制到Linux内核源代码的相应目录: ~/android/kernel/driver/input/touchscreen/goodix_touch.c ~/android/kernel/include/linux/goodix_touch.h ~/android/kernel/include/linux/goodix_update.h //如果不做烧录则可以不加 1.在目录touchscreen的Kconfig文件中增加新源代码对应项目的编译配置选项: #----------------------------------------------------------------- config TOUCHSCREEN_GOODIX_GT818 # 配置项名称 tristate "S3C6410 TouchScreen Driver" #选择项,选择Y标识要将其编译进内核 default y #默认编译选项 depends on I2C #依赖项,本驱动必须工作在I2C总线驱动的基础上 help #帮助信息 It is a android driver to support Gooidx's touchscreen whose name is guitar on s3c6410 platform. The touchscreen can support multi-touch not more than two fingers. Say Y here to enable the driver for the touchscreen on the S3C SMDK board. If unsure, say N.To compile this driver as a module, choose M here: the module will be called goodix_touch.ko. #----------------------------------------------------------------- 注意: 当将编译选项设置为M时,编译生成的驱动需要我们手动挂载。如需要系统启动时自动挂载,需要将模块goodix_touch.ko拷贝到系统模块加载目录,并修改对应的启动过程的rc脚本。 2.在目录touchscreen的makefile文件中增加对新源代码的编译条目; #这里的二进制文件名必须与源文件名移植,如goodix_touch

相关文档
最新文档