Microwindows 在 MINI2440 QEMU上的移植
来源:互联网 发布:阿里云qq 编辑:程序博客网 时间:2024/06/09 20:55
1、为什么有LCD_Support还需要移植
这个问题我也挺疑惑的,按道理如果redboot上面的lcd_support运行以后,凭借自己以往的经验,
Microwindows应该能运行才是。但是问题层出不穷。大概的原因是目前在ecos上面用UI的人并不多,
而且ecos里面自带的Microwindows也是比较老的版本,功能较低。
因为笔者曾经对Microwindow有过几日的研究,就把问题解决一下,顺便告诉大家这些bug都是什么。
2、一个老问题,Server和Client不能通过sokect连接
@@ -47,6 +47,7 @@
# include <pkgconf/microwindows.h>
# ifdef CYGPKG_NET
# define NONETWORK 0
+# define MW_NOSIGNALS 1
# else
# error Not yet supported.
# define NONETWORK 1
@@ -725,9 +726,11 @@
selection_owner.typelist = NULL;
#if !NONETWORK
+#ifndef MW_NOSIGNALS
/* ignore pipe signal, sent when clients exit*/
signal(SIGPIPE, SIG_IGN);
signal(SIGHUP, SIG_IGN);
+#endif
if (GsOpenSocket() < 0) {
EPRINTF("Cannot bind to named socket/n");
3、MW_APP TABLE的编译器BUG
CYG_HAL_TABLE_TYPE是ecos特有的一种表操作方式,他可以定义在内存特定的区域。
ecos的最新版本中,加入了牛人把这个表应用到ecos app的补丁,乍一看眼花撩乱的。
不过也不用害怕,一些宏操作就是替换变量名和函数名的方法。
为了能在把定义好的struct放到内存中的table段,需要用到HAL层次的CYG_HAL_TABLE_TYPE这个宏。
稍微看看就开始疑惑了吧,之前的写法怎么看上去怎么不像是宏应用。
于是参考ecos本身应用CYG_HAL_TABLE_TYP做设备列表的方法改了如下代码,
在ARM系统下就可以应用了。
不过还有一个红色和蓝色对调的问题没有去解,好像Microwindows没有预留这样的参数。
另外一个问题就是,本人发布的synthetic平台的ecos microwindows并没有这样bug,和网友讨论过
PC上的API模拟本身就有这样那样的问题。
不过比较庆幸,这个修改没有影响synthetic平台的ecos microwindows运行。
(2014年11月重新用GCC的结构体对齐进行了修改)
------- packages/services/gfx/mw/current/include/microwin/ecos_mw_app.h -------
@@ -56,7 +56,7 @@
#define STACKSIZE ( 65536 )
typedef void fun(CYG_ADDRWORD);
struct _mw_app_entry {
char *name;
fun *entry;
int prio;
@@ -64,11 +64,11 @@
cyg_handle_t t;
cyg_thread t_obj;
char stack[STACKSIZE];
-} CYG_HAL_TABLE_TYPE;
+} CYG_HAL_TABLE_TYPE __attribute__ ((packed));
#define _mw_app(_name_,_id_,_pri_,_init_) /
externC void _id_##_thread(CYG_ADDRWORD data); /
struct _mw_app_entry _mw_app_##_pri_##_##_id_ /
CYG_HAL_TABLE_QUALIFIED_ENTRY(_mw_apps,_pri_) = /
{ _name_, _id_##_thread, _pri_, _init_};
.
- Microwindows 在 MINI2440 QEMU上的移植
- GUI 在 MINI2440 QEMU 的ecos 上的移植
- Microwindows 及其 触摸屏驱动 在eCos MINI2440 上的实现
- RTEMS 4.9.5 在 QEMU MINI2440 上的移植发布啦……
- MINI2440 DM9000网卡驱动在 QEMU上的移植(转)
- RTEMS 4.9.5 在 MINI2440 QEMU的移植
- sqlite3在mini2440上的移植
- sqlite3在mini2440上的移植
- 在mini2440上的移植sqlite3(成功)
- uboot在mini2440上的移植总结
- rtems系统在mini2440上的移植
- Tslib1.4在mini2440上的移植
- uboot在mini2440上的移植
- uboot在mini2440上的移植
- Telnet 在 mini2440 上的移植
- RTEMS DM9000网卡驱动在MINI2440 QEMU上的实现
- RTEMS 4.11 的 MINI2440 QEMU 移植补丁
- minigui1.6.10在mini2440上的移植及tslib移植
- 比较全的fourcc含义
- 虚拟经济的作用
- 时间服务
- 深入理解C++中的mutable关键字
- 妙用Adobe Audition 系列教程(一):信号发生器
- Microwindows 在 MINI2440 QEMU上的移植
- vmware在ubuntu11.04下的问题
- 在ubuntu10.10中安装sun-java5-jdk的方法
- Hello CSDN!
- Ubuntu Server 10.10 安装配置 Ruby Rails3 passenger nginx MySQL
- Power Designer (PD) 由物理数据模型PDM生成数据库脚本时带双引号的问题
- 微软图表控件使用初探--数据绑定(交叉表)
- 娃娃鸭学Ruby-2、字面量
- 关于XP没有QueryFullProcessImageName的问题(in ProcessInfo)