主题 : Minigui1.6.2在mini2440开发板上的移植 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 1695
精华: 1
发帖: 7
金钱: 65 两
威望: 27 点
贡献值: 10 点
综合积分: 34 分
注册时间: 2008-09-21
最后登录: 2014-04-15
楼主  发表于: 2008-11-16 15:35

 Minigui1.6.2在mini2440开发板上的移植

管理提醒: 本帖被 qq2440 执行取消置顶操作(2009-08-07)
Minigui1.6.2在mini2440开发板上的移植
                            By linhua QQ:273896333
Minigui移植的主要工作是移植GAL和IAL。在Mini2440开发板上已经提供了Framebuffer设备的驱动,因此GAL可以直接使用fbcon。 Mini2440的输入部分有触摸屏和6个用户按键,因此在mini2440上移植minigui主要工作是编写IAL驱动。

下载libminigui-str-1.6.2.tar.gz
(http://blog.21ic.com/user1/5108/archives/2008/50737.html)

使用MSDK2410()做为修改的蓝本,修改\libminigui-str-1.6.2\src\ial\2410.c和\libminigui-str-1.6.2\src\ial\2410.h。



触摸屏部分:
使用MSDK2410的IAL会使触摸屏Y轴方向相反。在以下程序做修改:

在2410.c 文件wait_event()函数中

            if (ts_event.pressure > 0)
                {
                mousex = ts_event.x;
                mousey = ts_event.y;
            }
修改为
            if (ts_event.pressure > 0)
                {
                mousex = ts_event.x;
                mousey = 319 - ts_event.y;
            }

按键部分:
通过阅读Mini2440中按键的驱动程序源码(mini2440光盘\linux\linux-2.6.13-mini2440-20080910\kernel-2.6.13\drivers\micro2440_buttons.c),可以得知按键的状态为用一个数组表示:
static volatile int key_values [] = {0, 0, 0, 0, 0, 0};
分别代表K1~K6六个按键的状态。当按键按下时,对应值的值为各个按键的值(K1~K6分别为1,2,……6),当松开瞬间,对应值为按键的值加上0x80。不按时值为0。
将K1~K6分别映射为:
K1:Enter键
K2:B键
K3:Tab键
K4:BackSpace键
K5:A键
K6:Esc键

在2410.h中添加三个宏定义:

#define KBD_DEVICE  "/dev/buttons"
#define NR_KEYS 128
#define KEY_RELEASED 0x80

在2410.c文件中添加:
定义全局变量:
static unsigned char state [NR_KEYS];
static int get_state[6];
static int get_flag[6];
static int ts = -1;
static int btn_fd = -1;

添加两个函数keyboard_update(void)和keyboard_getstate(void)
修改三个函数: Init2410Input()、wait_event()和Term2410Input()
具体修改见附件(修改后的2410.h,2410.c)。
http://blogimg.chinaunix.net/blog/upfile2/081116151546.tar


然后就可以编译libminigui库

./configure --host=arm-linux --enable-jpgsupport=yes --enable-pngsupport=yes --enable-gifsupport=yes --disable-lite --prefix=/usr/local/arm/2.95.3/arm-linux --enable-smdk2410ial=yes

make
make install

minigui程序还需移植以下一些库和资源,具体步骤网络上资料已经相当详细了,可参考http://blog.chinaunix.net/u2/72877/showart_1083580.html上的那篇文章。

ZLIB库的移植
PNG库的移植
jpeg 库的移植
libttf 库的移植
MINIGUI资源文件的移植

注:若所有工作做完后运行minigui程序出现
GAL fbcon engine: Can't open /dev/tty0: No such file or directory
GAL: Init GAL engine failure: fbcon.
GDI: Can not initialize graphics engine!
则需输入:
[root@FriendlyARM /]# mknod /dev/tty0 c 4 0

然后再运行即可。
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2008-11-16 20:46
支持楼主,虽然我个人不太喜欢这个太类似Windows的GUI
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 2273
精华: 0
发帖: 20
金钱: 120 两
威望: 28 点
贡献值: 0 点
综合积分: 40 分
注册时间: 2008-11-06
最后登录: 2013-06-06
2楼  发表于: 2008-11-19 07:53
QT有人移植过吗?
级别: 新手上路
UID: 4010
精华: 1
发帖: 19
金钱: 210 两
威望: 210 点
贡献值: 10 点
综合积分: 58 分
注册时间: 2009-02-20
最后登录: 2010-10-27
3楼  发表于: 2009-05-14 15:36
可以利用皮肤技术做很玄的界面!
求真知!去浮躁!
级别: 侠客
UID: 6514
精华: 0
发帖: 86
金钱: 770 两
威望: 642 点
贡献值: 0 点
综合积分: 172 分
注册时间: 2009-06-04
最后登录: 2019-08-08
4楼  发表于: 2009-06-10 14:44
哈哈,不错,哪天也做一下
级别: 新手上路
UID: 7662
精华: 0
发帖: 16
金钱: 120 两
威望: 88 点
贡献值: 0 点
综合积分: 32 分
注册时间: 2009-07-23
最后登录: 2014-10-14
5楼  发表于: 2009-07-28 23:50
楼主怎么在minigui中将屏横过来, 当320*240用啊
级别: 新手上路
UID: 10196
精华: 0
发帖: 14
金钱: 115 两
威望: 47 点
贡献值: 0 点
综合积分: 28 分
注册时间: 2009-10-27
最后登录: 2013-03-18
6楼  发表于: 2009-11-16 20:42
看看
级别: 侠客
UID: 5728
精华: 1
发帖: 92
金钱: 785 两
威望: 572 点
贡献值: 1 点
综合积分: 204 分
注册时间: 2009-05-06
最后登录: 2017-09-13
7楼  发表于: 2009-12-09 20:51
大侠们,能不能把做的东西打包一份,方便后人不用再编译啊。
级别: 侠客
UID: 5728
精华: 1
发帖: 92
金钱: 785 两
威望: 572 点
贡献值: 1 点
综合积分: 204 分
注册时间: 2009-05-06
最后登录: 2017-09-13
8楼  发表于: 2009-12-11 16:52
大哥,能不能把做好的东西给一份下载,直接就可以用啊?