[patch for RTGUI] bsp/simulator支持RTGUI组件啦

45 views
Skip to first unread message

prife

unread,
Nov 15, 2012, 11:53:34 AM11/15/12
to rt-thread-cnusers
RTGUI:github上最新版本
bsp:svn上的bsp/simulator
host:win7 32bit
CC: vs2005

使用方法:
1. 需要给RTGUI打补丁,见附件 rtgui_for_vs.patch
说明:此补丁仅仅是将_WIN32 替换为 _WIN32_NATIVE
因为_WIN32总是定义的。而对于simulator来说,kernel部分完整支持。因此RTGUI中的WIN32代码没有存在的意义了。
这样github上只需要在scons脚本中手动定义 _WIN32_NATIVE宏即可保持两边都可以工作

2.  svn上bsp/simulaor
打开rtconfig.h开启 RTGUI
修改SConstruct文件

 10 # if you want use the rtgui in the svn (in google code), you should
 11 # comment the following line
 12 RTT_RTGUI = os.path.normpath('F:/Project/git/rt-gui')
 13 #RTT_RTGUI =''           

将如红色行修改为你本地的rtgui的路径。如果将12行注释掉,换取消13行注释,则使用svn中的RTGUI。

3. scons --target=vs -s
生成工程,编译,然后运行,再finsh窗口中输入 
applicaiton(),即可看到效果了。

上一张效果图。 

内嵌图片 1

再PS:上图中,中文字体没有显示。暂时没有理会这个问题。

求测试~~~

--
把有限的时间投入到无限的学习中去
image.png
rtgui_for_sim.patch

prife

unread,
Nov 15, 2012, 12:15:13 PM11/15/12
to rt-thread-cnusers
中文字体的显示问题,请GUI开发人员测试/修复一下吧

目前:simulator中可用的组件包括
1. LWIP,可用,不过我是用vmware的虚拟网卡来测试的,效果良好)
2. FS, 包括uffs,jffs,和elm fatfs。 yaffs暂不支持
3. GUI(勉强算能用吧,貌似bug还不少)

其他目前都不支持了。
--
把有限的时间投入到无限的学习中去
image.png

Grissiom

unread,
Nov 15, 2012, 9:00:12 PM11/15/12
to rt-threa...@googlegroups.com
不错~ 等完善了之后或许 github 的 RTGUI 里的 win32 就可以删掉了……

2012/11/16 prife <gop...@gmail.com>



--
Cheers,
Grissiom
image.png

Steven Chen

unread,
Nov 15, 2012, 10:44:56 PM11/15/12
to rt-threa...@googlegroups.com
大家好:

RTGUI 没玩过,我是直接下载了这个版本内嵌图片 2
没做修改的,也没有打附件的补丁。

sim 编译出现以下情况:


内嵌图片 1


请问RTGUI 下载后是不是要进行编译之类的处理?

(环境是 py2.7.3  + vs 2008)
--
regards

Steven Chen
image.png
image.png
image.png

Grissiom

unread,
Nov 15, 2012, 11:05:36 PM11/15/12
to rt-threa...@googlegroups.com
Patch for SConstruct:

========================
From 48811b82986cfb84da0931464b07f425a14cdb52 Mon Sep 17 00:00:00 2001
From: Grissiom <chaos....@gmail.com>
Date: Fri, 16 Nov 2012 11:55:21 +0800
Subject: [PATCH] simulator: stick with the old definition of RTT_RTGUI

RTT_RTGUI could be set in the environment and should point to the root
directory of RTGUI. Just bring back the old behaviour to simulator.
---
 bsp/simulator/SConstruct |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/bsp/simulator/SConstruct b/bsp/simulator/SConstruct
index 2ecec9e..afa5fed 100644
--- a/bsp/simulator/SConstruct
+++ b/bsp/simulator/SConstruct
@@ -7,10 +7,12 @@ if os.getenv('RTT_ROOT'):
 else:
     RTT_ROOT = os.path.normpath(os.getcwd() + '/../..')
 
-# if you want use the rtgui in the svn (in google code), you should
-# comment the following line
-RTT_RTGUI = os.path.normpath('F:/Project/git/rt-gui')
-#RTT_RTGUI =''
+if os.getenv('RTT_RTGUI'):
+    RTT_RTGUI = os.getenv('RTT_RTGUI')
+else:
+    # set the rtgui root directory by hand
+    # empty string means use the RTGUI in svn
+    RTT_RTGUI =''
 
 sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
 from building import *
@@ -54,7 +56,7 @@ env['CPPDEFINES']=definitions
 # prepare building environment
 if RTT_RTGUI:
     objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False, remove_components=['rtgui'])
-    objs += SConscript(os.path.join(RTT_RTGUI + '/components/rtgui', 'SConscript'),
+    objs += SConscript(os.path.join(RTT_RTGUI, 'SConscript'),
    variant_dir='build/components/rtgui',
    duplicate=0)
 else:
@@ -69,7 +71,7 @@ if GetDepend('RT_USING_RTGUI'):
     env.Append(CPPPATH=sdl_include_path)
 
     if RTT_RTGUI:
-        objs = objs + SConscript(RTT_RTGUI+'/demo/examples/SConscript', 
+        objs = objs + SConscript(RTT_RTGUI+'../../../demo/examples/SConscript', 
  variant_dir='build/examples/gui', duplicate=0)
     else:
         objs = objs + SConscript(RTT_ROOT + '/examples/gui/SConscript', 
-- 
1.7.9
============================

2012/11/16 prife <gop...@gmail.com>



--
Cheers,
Grissiom
image.png

prife

unread,
Nov 15, 2012, 11:12:36 PM11/15/12
to rt-thread-cnusers
在 2012年11月16日 上午11:44,Steven Chen <steven...@gmail.com>写道:
大家好:

RTGUI 没玩过,我是直接下载了这个版本内嵌图片 2
没做修改的,也没有打附件的补丁。

你对simulator/SConstruct文件做什么修改? 
 10 # if you want use the rtgui in the svn (in google code), you should
 11 # comment the following line
 12 RTT_RTGUI = os.path.normpath('F:/Project/git/rt-gui')
 13 #RTT_RTGUI =''    
 
这两行你改动了么?怎么改动的。这是关键,把你的改动贴出来。



--
把有限的时间投入到无限的学习中去
image.png
image.png
image.png

bernard

unread,
Nov 15, 2012, 11:26:43 PM11/15/12
to rt-thread用户组

Grissiom,
github里的分支做相应的修改吧,另外也把独立win32分支的rtconfig.h文件独立出来,这样会更清晰些

image.png

prife

unread,
Nov 15, 2012, 11:27:02 PM11/15/12
to rt-thread-cnusers
SConstruct 有bug,我已经修复了。另外。楼上的补丁也合并了一部分。google的服务总是不能正常工作。又提交不上去了。

Steven Chen
你可以用本楼附件中的SConstruct覆盖simulator下的同名文件

--
把有限的时间投入到无限的学习中去
image.png
image.png
image.png
SConstruct

Grissiom

unread,
Nov 15, 2012, 11:31:21 PM11/15/12
to rt-threa...@googlegroups.com
2012/11/16 prife <gop...@gmail.com>
SConstruct 有bug,我已经修复了。另外。楼上的补丁也合并了一部分。google的服务总是不能正常工作。又提交不上去了。

Steven Chen
你可以用本楼附件中的SConstruct覆盖simulator下的同名文件


这个 SC 还是不对…… 另,如果启用环境变量里的 RTT_RTGUI,SC 里的注释要改。

Patch no.2:
==============
From 652199ffff2882b1057c4f1052a7cb7e0ddcfe9f Mon Sep 17 00:00:00 2001
From: Grissiom <chaos....@gmail.com>
Date: Fri, 16 Nov 2012 12:25:36 +0800
Subject: [PATCH] simulator: use absolute path in CPPPATH

The folder we compile files is not the one that have SConstruct. So we
should use absolute path in CPPPATH. This fix the bug:

sdl_fb.c
e:\projects\rt-thread\rt-thread-git-trunk\bsp\simulator\drivers\sdl_fb.c(3) : fatal error C1083: Cannot open include file: 'sdl.h': No such file or directory
---
 bsp/simulator/SConstruct |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/bsp/simulator/SConstruct b/bsp/simulator/SConstruct
index afa5fed..5cc6926 100644
--- a/bsp/simulator/SConstruct
+++ b/bsp/simulator/SConstruct
@@ -64,8 +64,8 @@ else:
 
 if GetDepend('RT_USING_RTGUI'):
     sdl_lib = ['SDL', 'SDLmain']
-    sdl_lib_path = os.path.normpath('SDL/lib/x86')
-    sdl_include_path = os.path.normpath('SDL/include')
+    sdl_lib_path = os.path.abspath('SDL/lib/x86')
+    sdl_include_path = os.path.abspath('SDL/include')
     env.Append(LIBS=sdl_lib)
     env.Append(LIBPATH=sdl_lib_path)
     env.Append(CPPPATH=sdl_include_path)
-- 
1.7.9
==============



--
Cheers,
Grissiom
image.png
image.png
image.png

Grissiom

unread,
Nov 15, 2012, 11:32:42 PM11/15/12
to rt-threa...@googlegroups.com
2012/11/16 bernard <bernar...@gmail.com>

Grissiom,
github里的分支做相应的修改吧,另外也把独立win32分支的rtconfig.h文件独立出来,这样会更清晰些

嗯…… 对,但是 github/RTGUI 的 GetDepend 和 主干里的不一样,需要稍微改下……



--
Cheers,
Grissiom
image.png

Steven Chen

unread,
Nov 15, 2012, 11:36:01 PM11/15/12
to rt-threa...@googlegroups.com
就改了个路径。。。其它的不懂。。
=============================

# if you want use the rtgui in the svn (in google code), you should
# comment the following line
RTT_RTGUI = os.path.normpath('T:/RTGUI')
#RTT_RTGUI =''

sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
from building import *

TARGET = 'rtthread-win32.' + rtconfig.TARGET_EXT

env = Environment()

Export('RTT_ROOT')
Export('rtconfig')

在 2012年11月16日 下午12:12,prife <gop...@gmail.com>写道:



--
regards

Steven Chen
image.png
image.png
image.png

Steven Chen

unread,
Nov 15, 2012, 11:56:31 PM11/15/12
to rt-threa...@googlegroups.com
新的SConstruct  能正常执行 scons --target=vs -s 生成工程

vs 里编译出现的第一个错误是这个:
1>------ 已启动生成: 项目: template, 配置: Debug Win32 ------
1>正在编译...
1>cl: 命令行 warning D9035 :“Wp64”选项已否决,并将在将来的版本中移除
1>sdl_fb.c
1>t:\rttos\trunk\bsp\simulator\drivers\sdl_fb.c : error C2471: 无法更新程序数据库“t:\rttos\trunk\bsp\simulator\debug\vc90.pdb”

观察文件夹里的vc90.pdb 是最新生成的,更新时间是对的。。,。。

内嵌图片 2
--
regards

Steven Chen
image.png
image.png
image.png
image.png

prife

unread,
Nov 16, 2012, 12:03:28 AM11/16/12
to rt-thread-cnusers
把  sdl_fb.c 从vs工程里remove掉,这个是SDL的驱动,现在你又没开RTGUI,所以GUI的头文件目录没加到VS工程里,编译就会出错。至于你这个错误信息我也没遇到过,你自己先google一下,我现在只能上google,其他网络打不开。(得去缴网费去)。
--
把有限的时间投入到无限的学习中去
image.png
image.png
image.png
image.png

Steven Chen

unread,
Nov 16, 2012, 12:19:51 AM11/16/12
to rt-threa...@googlegroups.com

很多年没有碰代码了。。可能都是些简单的问题。。有劳指点了。。


1,清除debug的文件

2,工程属性包含路径中加入以下路径后:

..\..\bsp\simulator\sdl\include

 ..\..\components\rtgui


3后编码能通过。。。

链接出现:


1>正在生成代码...
1>正在编译资源清单...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation.  All rights reserved.
1>正在链接...
1>   正在创建库 T:\RTTOS\trunk\bsp\simulator\Debug\template.lib 和对象 T:\RTTOS\trunk\bsp\simulator\Debug\template.exp
1>LINK : warning LNK4098: 默认库“MSVCRTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
1>sdl_fb.obj : error LNK2019: 无法解析的外部符号 _SDL_Delay,该符号在函数 _sdl_loop@4 中被引用
1>sdl_fb.obj : error LNK2019: 无法解析的外部符号 _SDL_Quit,该符号在函数 _sdl_loop@4 中被引用
1>sdl_fb.obj : error LNK2019: 无法解析的外部符号 _rtgui_server_post_event,该符号在函数 _sdl_loop@4 中被引用
1>sdl_fb.obj : error LNK2019: 无法解析的外部符号 _SDL_PollEvent,该符号在函数 _sdl_loop@4 中被引用
1>sdl_fb.obj : error LNK2019: 无法解析的外部符号 _rtgui_graphic_set_device,该符号在函数 _sdl_loop@4 中被引用
1>sdl_fb.obj : error LNK2019: 无法解析的外部符号 _SDL_WM_SetCaption,该符号在函数 _sdlfb_hw_init 中被引用
1>sdl_fb.obj : error LNK2019: 无法解析的外部符号 _SDL_SetVideoMode,该符号在函数 _sdlfb_hw_init 中被引用
1>sdl_fb.obj : error LNK2019: 无法解析的外部符号 _SDL_GetError,该符号在函数 _sdlfb_hw_init 中被引用
1>sdl_fb.obj : error LNK2019: 无法解析的外部符号 _SDL_Init,该符号在函数 _sdlfb_hw_init 中被引用
1>sdl_fb.obj : error LNK2019: 无法解析的外部符号 _SDL_UpdateRect,该符号在函数 _sdlfb_control 中被引用
1>components.obj : error LNK2019: 无法解析的外部符号 _rtgui_system_server_init,该符号在函数 _rt_components_init 中被引用
1>T:\RTTOS\trunk\bsp\simulator\Debug\template.exe : fatal error LNK1120: 11 个无法解析的外部命令
1>生成日志保存在“file://t:\RTTOS\trunk\bsp\simulator\Debug\BuildLog.htm”
1>template - 12 个错误,1 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
--
regards

Steven Chen
image.png
image.png
image.png
image.png

Steven Chen

unread,
Nov 16, 2012, 12:38:24 AM11/16/12
to rt-threa...@googlegroups.com
加入SDL.lib 到项目包含文件然后再。。编译就剩下两个错误了:

1>------ 已启动生成: 项目: template, 配置: Debug Win32 ------
1>正在链接...
1>   正在创建库 T:\RTTOS\trunk\bsp\simulator\Debug\template.lib 和对象 T:\RTTOS\trunk\bsp\simulator\Debug\template.exp
1>sdl_fb.obj : error LNK2019: 无法解析的外部符号 _rtgui_server_post_event,该符号在函数 _sdl_loop@4 中被引用
1>sdl_fb.obj : error LNK2019: 无法解析的外部符号 _rtgui_graphic_set_device,该符号在函数 _sdl_loop@4 中被引用
1>components.obj : error LNK2019: 无法解析的外部符号 _rtgui_system_server_init,该符号在函数 _rt_components_init 中被引用
1>T:\RTTOS\trunk\bsp\simulator\Debug\template.exe : fatal error LNK1120: 3 个无法解析的外部命令
1>生成日志保存在“file://t:\RTTOS\trunk\bsp\simulator\Debug\BuildLog.htm”
1>template - 4 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
--
regards

Steven Chen
image.png
image.png
image.png
image.png

prife

unread,
Nov 16, 2012, 12:43:51 AM11/16/12
to rt-thread-cnusers
你没有打开RTGUI组件,如果打开RTGUI,又需要先给RTGUI补丁
所以请将 sdl_fb.c 从工程中移除中。编译就没有错误了。

--
把有限的时间投入到无限的学习中去
image.png
image.png
image.png
image.png

Steven Chen

unread,
Nov 16, 2012, 12:48:02 AM11/16/12
to rt-threa...@googlegroups.com
怎么打开RTGUI 呢?有入门文档吗??  

我还以为是 rtconfig.h 中 
/* SECTION: RT-Thread/GUI */
 #define RT_USING_RTGUI 

就是打开了。
--
regards

Steven Chen
image.png
image.png
image.png
image.png

prife

unread,
Nov 16, 2012, 12:53:31 AM11/16/12
to rt-thread-cnusers
bsp的使用步骤,一楼有说,打开RTGUI组件就是使能 RT_USING_RTGUI宏。但是你给rtgui代码打补丁了么? 

如果没有,请关闭这个宏,然后生成的工程中,手动溢出 sdl_fb.c,然后编译即可。
--
把有限的时间投入到无限的学习中去
image.png
image.png
image.png
image.png

prife

unread,
Nov 16, 2012, 2:24:51 AM11/16/12
to rt-thread-cnusers
修复了脚本中的几个bug,更新了drivers/SConscript了
现在SDL的库以及库路径可以正确的自动添加了。
please try again... 
--
把有限的时间投入到无限的学习中去
image.png
image.png
image.png
image.png

Steven Chen

unread,
Nov 16, 2012, 3:19:30 AM11/16/12
to rt-threa...@googlegroups.com
新的 SConscript 在什么地方?svn 上?
--
regards

Steven Chen
image.png
image.png
image.png
image.png

Grissiom

unread,
Nov 16, 2012, 3:24:07 AM11/16/12
to rt-threa...@googlegroups.com
2012/11/16 prife <gop...@gmail.com>
修复了脚本中的几个bug,更新了drivers/SConscript了
现在SDL的库以及库路径可以正确的自动添加了。
please try again... 


SVN  上的 SC 对于 RTT_RTGUI 的使用还是不对……



--
Cheers,
Grissiom
image.png
image.png
image.png
image.png

Steven Chen

unread,
Nov 16, 2012, 3:37:50 AM11/16/12
to rt-threa...@googlegroups.com
还有点瑕疵:。。。。

1>------ 已启动生成: 项目: template, 配置: Debug Win32 ------
1>正在编译...
1>application.c
1>platform.c
1>startup.c
1>board.c
1>nand_sim.c
1>sd_sim.c
1>sdl_fb.c
1>t:\rttos\trunk\bsp\simulator\drivers\sdl_fb.c(3) : fatal error C1083: 无法打开包括文件:“sdl.h”: No such file or directory

》》》》》这个路径要添加 :      bsp\simulator\SDL\include

=======================================================================
添加路径后,再试:(有点
1>正在生成代码...
1>正在编译...
1>rtgui_object.c
1>rtgui_system.c
1>c:\program files\microsoft visual studio 9.0\vc\include\sys\stat.h(105) : error C2016: C 要求一个结构或联合至少有一个成员
1>c:\program files\microsoft visual studio 9.0\vc\include\sys\stat.h(105) : error C2061: 语法错误 : 标识符“_dev_t”
1>c:\program files\microsoft visual studio 9.0\vc\include\sys\stat.h(106) : error C2061: 语法错误 : 标识符“st_ino”
1>c:\program files\microsoft visual studio 9.0\vc\include\sys\stat.h(106) : error C2059: 语法错误 : “;”
1>c:\program files\microsoft visual studio 9.0\vc\include\sys\stat.h(111) : error C2061: 语法错误 : 标识符“st_rdev”
1>c:\program files\microsoft visual studio 9.0\vc\include\sys\stat.h(111) : error C2059: 语法错误 : “;”


内嵌图片 1
--
regards

Steven Chen
image.png
image.png
image.png
image.png
image.png

Grissiom

unread,
Nov 16, 2012, 3:42:39 AM11/16/12
to rt-threa...@googlegroups.com
2012/11/16 Steven Chen <steven...@gmail.com>

还有点瑕疵:。。。。

1>------ 已启动生成: 项目: template, 配置: Debug Win32 ------
1>正在编译...
1>application.c
1>platform.c
1>startup.c
1>board.c
1>nand_sim.c
1>sd_sim.c
1>sdl_fb.c
1>t:\rttos\trunk\bsp\simulator\drivers\sdl_fb.c(3) : fatal error C1083: 无法打开包括文件:“sdl.h”: No such file or directory

》》》》》这个路径要添加 :      bsp\simulator\SDL\include

=======================================================================
添加路径后,再试:(有点
1>正在生成代码...
1>正在编译...
1>rtgui_object.c
1>rtgui_system.c
1>c:\program files\microsoft visual studio 9.0\vc\include\sys\stat.h(105) : error C2016: C 要求一个结构或联合至少有一个成员
1>c:\program files\microsoft visual studio 9.0\vc\include\sys\stat.h(105) : error C2061: 语法错误 : 标识符“_dev_t”
1>c:\program files\microsoft visual studio 9.0\vc\include\sys\stat.h(106) : error C2061: 语法错误 : 标识符“st_ino”
1>c:\program files\microsoft visual studio 9.0\vc\include\sys\stat.h(106) : error C2059: 语法错误 : “;”
1>c:\program files\microsoft visual studio 9.0\vc\include\sys\stat.h(111) : error C2061: 语法错误 : 标识符“st_rdev”
1>c:\program files\microsoft visual studio 9.0\vc\include\sys\stat.h(111) : error C2059: 语法错误 : “;”

你确定你的 RTGUI 已经打过补丁了?……

--
Cheers,
Grissiom

Steven Chen

unread,
Nov 16, 2012, 3:47:13 AM11/16/12
to rt-threa...@googlegroups.com
之前那个版本编译能通过,到了链接才出错的,这次编译没通过。。(另外,几个.lib 没看到 包含到项目里。。)

rtgui  打补丁失败了。Git 还不会用。。。。..

内嵌图片 1

2012/11/16 Grissiom <chaos....@gmail.com>



--
regards

Steven Chen
image.png

Grissiom

unread,
Nov 16, 2012, 3:48:22 AM11/16/12
to rt-threa...@googlegroups.com
2012/11/16 Steven Chen <steven...@gmail.com>
之前那个版本编译能通过,到了链接才出错的,这次编译没通过。。(另外,几个.lib 没看到 包含到项目里。。)

rtgui  打补丁失败了。Git 还不会用。。。。..


那就再等等看吧,别急



--
Cheers,
Grissiom
image.png

Steven Chen

unread,
Nov 16, 2012, 3:51:08 AM11/16/12
to rt-threa...@googlegroups.com
不急,,刚刚偶开会去了。。呵呵。。
--
regards

Steven Chen
image.png

Grissiom

unread,
Nov 16, 2012, 3:52:11 AM11/16/12
to rt-threa...@googlegroups.com
2012/11/16 Steven Chen <steven...@gmail.com>
之前那个版本编译能通过,到了链接才出错的,这次编译没通过。。(另外,几个.lib 没看到 包含到项目里。。)

rtgui  打补丁失败了。Git 还不会用。。。。..

内嵌图片 1



[OT] 发出邮件去了才看见图…… 乌龟 git 竟然用 am 来打 patch,实在是……

--
Cheers,
Grissiom
image.png

Steven Chen

unread,
Nov 16, 2012, 4:03:51 AM11/16/12
to rt-threa...@googlegroups.com
呵呵。git乌龟也是今天刚装的。。。。嫩菜。。。

--
regards

Steven Chen
image.png

prife

unread,
Nov 16, 2012, 4:54:17 AM11/16/12
to rt-thread-cnusers
反复测试了下SVN里的代码,看起来没什么问题,一切正常。

可以正确编译了。

G兄说SC还有问题? 
Steven Chen 兄你先更新下SVN代码,并先尝试直接生成工程编译(默认是没有开启RTGUI的)应该可以正确编译。

如果要开启RTGUI,需要做两个工作
1.  从github上取出RTGUI代码
并打补丁,这个地方必须参考修改。

2. 修改bsp/simulator里的SConstruct文件,修改RTT_RTGUI路径。

3. 生成工程编译。

看起来你那里还是不能自动添加SDL头文件目录? 我刚测试了下,一切正常。

--
把有限的时间投入到无限的学习中去

prife

unread,
Nov 16, 2012, 6:54:48 AM11/16/12
to rt-thread-cnusers
汉字无法显示的问题已经查明,是LWIP的问题。在rtconifg.h里注释掉 RT_USING_LWIP以后,RTGUI可以正常汉字了。

并且开启LWIP以后,任务管理器发现LWIP导致程序磁盘IO一直在飞速增长。
LWIP线程一直在抢占RTGUI线程运行,这导致RTGUI的server线程难以及时处理 SDL 线程发送给他的消息,
所以缓冲动画一直无法显示 。

并且很容易崩溃。再上一张效果。

rtconfig.h里 关闭 UFFS,关闭JFFS2,
打开RTGUI。
//#define RTGUI_USING_HZ_FILE  注释掉此行
#define RTGUI_USING_HZ_BMP  保留此行

后重新生成工程,编译运行,效果如下。 

内嵌图片 1

不过在一些情况下还容易死,尤其是编辑框里显示光标时,闪烁频率实在太高了。 先测试编辑框光标,然后再返回去测试DC动画,就容易出现 send event to wb failed。
--
把有限的时间投入到无限的学习中去
image.jpeg

Grissiom

unread,
Nov 16, 2012, 8:56:53 PM11/16/12
to rt-threa...@googlegroups.com
2012/11/16 prife <gop...@gmail.com>
反复测试了下SVN里的代码,看起来没什么问题,一切正常。

可以正确编译了。

G兄说SC还有问题? 

RTT_RTGUI 应该直接指向 rtgui 的根目录,后面不用再加 components/rtgui 了。我第一个补丁主要修的就是这个~

再有,貌似单独用 Scons 编译会找不到 strnicmp ……

--
Cheers,
Grissiom

prife

unread,
Nov 17, 2012, 12:22:07 AM11/17/12
to rt-thread-cnusers



--
把有限的时间投入到无限的学习中去

tony zhang

unread,
Nov 17, 2012, 12:51:16 AM11/17/12
to rt-threa...@googlegroups.com
1) 2)都做了后

第3) 运行 scons --target=vs -s
提示错误:
Unknow target: vs. Avaible targets: mdk, mdk4, iar


我的环境是 phyon 2.72 scons 2.2 VS: 2008 free 
直接用vs 2008 free是可以打开下面的工程 并正常运行rtt

在 2012年11月17日 上午9:56,Grissiom <chaos....@gmail.com>写道:

prife

unread,
Nov 17, 2012, 1:04:29 AM11/17/12
to rt-thread-cnusers
目前仅在svn上的最新版本里才支持simulator。
--
把有限的时间投入到无限的学习中去

Grissiom

unread,
Nov 17, 2012, 2:17:49 AM11/17/12
to rt-threa...@googlegroups.com
2012/11/17 prife <gop...@gmail.com>

在 2012年11月17日 上午9:56,Grissiom <chaos....@gmail.com>写道:
2012/11/16 prife <gop...@gmail.com>
反复测试了下SVN里的代码,看起来没什么问题,一切正常。

可以正确编译了。

G兄说SC还有问题? 

RTT_RTGUI 应该直接指向 rtgui 的根目录,后面不用再加 components/rtgui 了。我第一个补丁主要修的就是这个~

再有,貌似单独用 Scons 编译会找不到 strnicmp ……

fixed.  (另 RTT_RTGUI 这个没改。懒 :-))

如果 RTT_RTGUI 那个没问题,有时间的话我就直接改了?

--
Cheers,
Grissiom

tony zhang

unread,
Nov 17, 2012, 2:52:12 AM11/17/12
to rt-threa...@googlegroups.com
不知我哪里说的不清楚

我就是用乌龟在SVN上下的v2423阿,而且可以用vs2008 free编译运行RTT,但是按照你的流程发现系统找不到vs的toolchain

是否还要在哪里加入VS的Toolchain设置呢,因为所有的都是在网上下的,
只有phyon和scons是自己下载安装,也只是版本不一样而已

Grissiom

unread,
Nov 17, 2012, 3:17:06 AM11/17/12
to rt-threa...@googlegroups.com
2012/11/17 tony zhang <scz...@gmail.com>
不知我哪里说的不清楚

我就是用乌龟在SVN上下的v2423阿,而且可以用vs2008 free编译运行RTT,但是按照你的流程发现系统找不到vs的toolchain

是否还要在哪里加入VS的Toolchain设置呢,因为所有的都是在网上下的,
只有phyon和scons是自己下载安装,也只是版本不一样而已


如果是正常安装,scons 会自动找到 toolchain。但是根据你提供的错误信息来看,应该不是这个问题。

确定工作目录是干净的?



在 2012年11月17日 下午2:04,prife <gop...@gmail.com>写道:

目前仅在svn上的最新版本里才支持simulator。


在 2012年11月17日 下午1:51,tony zhang <scz...@gmail.com>写道:

1) 2)都做了后

第3) 运行 scons --target=vs -s
提示错误:
Unknow target: vs. Avaible targets: mdk, mdk4, iar


我的环境是 phyon 2.72 scons 2.2 VS: 2008 free 
直接用vs 2008 free是可以打开下面的工程 并正常运行rtt

在 2012年11月17日 上午9:56,Grissiom <chaos....@gmail.com>写道:
2012/11/16 prife <gop...@gmail.com>

反复测试了下SVN里的代码,看起来没什么问题,一切正常。

可以正确编译了。

G兄说SC还有问题? 

RTT_RTGUI 应该直接指向 rtgui 的根目录,后面不用再加 components/rtgui 了。我第一个补丁主要修的就是这个~

再有,貌似单独用 Scons 编译会找不到 strnicmp ……

--
Cheers,
Grissiom




--
把有限的时间投入到无限的学习中去




--
Cheers,
Grissiom

prife

unread,
Nov 17, 2012, 4:52:21 AM11/17/12
to rt-thread-cnusers
在 2012年11月17日 下午1:51,tony zhang <scz...@gmail.com>写道:
1) 2)都做了后

第3) 运行 scons --target=vs -s
提示错误:
Unknow target: vs. Avaible targets: mdk, mdk4, iar


 
我的环境是 phyon 2.72 scons 2.2 VS: 2008 free 
直接用vs 2008 free是可以打开下面的工程 并正常运行rtt

这里很奇怪,svn上 trunk目录下simulator bsp里,没有什么工程可以让你打开编译的,只有一个template.vcproj, 不知道你用vs2008打开的是哪个工程并运行的...

另:你给的错误信息在这里: trunk/tools/buiding.py中,看起来这个错误这跟vs安装路径没什么关系,只是简单的一条字典赋值语句而已。
你确定你取得到代是svn上的最新版本? 并且是在simulator目录里操作的么?

 92     #{target_name:(CROSS_TOOL, PLATFORM)}
 93     tgt_dict = {'mdk':('keil', 'armcc'),
 94                 'mdk4':('keil', 'armcc'),
 95                 'iar':('iar', 'iar'),
 96                 'vs':('msvc', 'cl')}
 97     tgt_name = GetOption('target')
 98     if tgt_name:
 99         SetOption('no_exec', 1)
100         try:
101             rtconfig.CROSS_TOOL, rtconfig.PLATFORM = tgt_dict[tgt_name]
102         except KeyError:
103             print 'Unknow target: %s. Avaible targets: %s' % \
104                     (tgt_name, ', '.join(tgt_dict.keys()))
105             sys.exit(1)    


-- 
把有限的时间投入到无限的学习中去 


在 2012年11月17日 下午1:51,tony zhang <scz...@gmail.com>写道:



--
把有限的时间投入到无限的学习中去

prife

unread,
Nov 17, 2012, 4:56:20 AM11/17/12
to rt-thread-cnusers
直接向SVN提交吧。另外,啥时候把RTGUI的补丁提交上啊,就这么个简单的补丁......
--
把有限的时间投入到无限的学习中去

prife

unread,
Nov 17, 2012, 5:34:54 AM11/17/12
to rt-thread-cnusers
Tony
我仔细想了一下,你是不是有多个RTT的源码目录?
并且设置了RTT_ROOT这个环境变量? 


--
把有限的时间投入到无限的学习中去

bernard

unread,
Nov 17, 2012, 5:25:09 PM11/17/12
to rt-thread用户组

应该和我的问题挺类似的,这样需要加入所有环境变量。

windows simulator分支独立加个补丁吧,然后使用时用vc command shell

bernard

unread,
Nov 17, 2012, 5:27:18 PM11/17/12
to rt-thread用户组, Grissiom, fang yiyue

把github的补丁打上吧,弄好后lgnq更新一份到svn

我们在年底的正式版中发布出来。

tony zhang

unread,
Nov 18, 2012, 1:55:30 AM11/18/12
to rt-threa...@googlegroups.com
哈哈 是分支的问题 

在RTT_ROOT 环境变量上少加一个Trunk啦 

上次能直接能用,是直接在以前版本提供的VS2005工程直接转来用的 只是测试在VS2008能否用 
而当时没有测试过 scons -j4 
所以没有发现这个问题

建议把RTT在以1.1的基础上 加到github上 来个统一管理 不然比较麻烦,太多工具啦

1.1以下的维护还在老的服务器上 

Grissiom

unread,
Nov 18, 2012, 3:26:13 AM11/18/12
to bernard, rt-thread用户组, fang yiyue
2012/11/18 bernard <bernar...@gmail.com>

把github的补丁打上吧,弄好后lgnq更新一份到svn

我们在年底的正式版中发布出来。

搞定了,两个平台和VS在我这里都可以编译了~ bsp 里的 SConstruct 也更新了~ prife 或许可以试试。

--
Cheers,
Grissiom

Steven Chen

unread,
Nov 18, 2012, 10:07:31 PM11/18/12
to rt-threa...@googlegroups.com
刚下载了最新的 rtt , 也下载了最新的rtgui .
修改了 simulator\sconstruct的路径:

    # RTT_RTGUI = os.path.normpath('D:\RTGUI')


到 simulator 下运行了 scons --target=vs -s     没有报错.


打开 simulator 下的 project.vcproj


按vs2008 的提示 转换工程项目。


编译。。。

======================================


1>------ 已启动生成: 项目: project, 配置: Debug Win32 ------

1>正在编译...

1>application.c

1>c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(774) : error C2373: “lwip_htonl”: 重定义;不同的类型修饰符

1>        d:\rttos\trunk\components\net\lwip\src\include\lwip\def.h(105) : 参见“lwip_htonl”的声明

=============================================


是否有什么环境需要设置呢?

--
regards

Steven Chen

prife

unread,
Nov 18, 2012, 10:15:46 PM11/18/12
to rt-threa...@googlegroups.com
rtconfig.h里先关闭LWIP
另外

# RTT_RTGUI = os.path.normpath('D:\RTGUI') 
这里代码有修改了。路径不是这样写的了,为了和以前G兄写的RTGUI的PATH保持兼容,所以这里路径重写了。

 10 if os.getenv('RTT_RTGUI'):
 11     RTT_RTGUI = os.getenv('RTT_RTGUI')
 12 else:
 13     # set the rtgui root directory by hand
 14     # empty string means use the RTGUI in svn
 15     RTT_RTGUI = os.path.normpath('F:/Project/git\rt-gui/components/rtgui')
 16     RTT_RTGUI =''        

要么你定义RTT_RTGUI这个环境变量,如果不定义这个环境变量,就按照上面的写法重新写路径,注意把开头的#号去掉,那是注释(类似 // in C++)
--
把有限的时间投入到无限的学习中去

prife

unread,
Nov 18, 2012, 10:22:07 PM11/18/12
to rt-threa...@googlegroups.com
还有,你路径写的也不对  要把路径分隔符用  / 来换掉。因为 \在python里是转义字符,跟C里一样。

RTT_RTGUI = os.path.normpath('F:/Project/git/rt-gui/components/rtgui') 

Lwip,我这里一切OK,刚测试了一下,没什么问题。
先把LWIP关掉试试,重新生成工程,编译,应该没什么问题。
然后再把lwip 打开,scons -c 清理目录 ,再次重新生成工程,编译。

在 2012年11月19日 上午11:15,prife <gop...@gmail.com>写道:
rtconfig.h里先关闭LWIP
另外

# RTT_RTGUI = os.path.normpath('D:\RTGUI') 
这里代码有修改了。路径不是这样写的了,为了和以前G兄写的RTGUI的PATH保持兼容,所以这里路径重写了。

 10 if os.getenv('RTT_RTGUI'):
 11     RTT_RTGUI = os.getenv('RTT_RTGUI')
 12 else:
 13     # set the rtgui root directory by hand
 14     # empty string means use the RTGUI in svn
 15     



--
把有限的时间投入到无限的学习中去

prife

unread,
Nov 18, 2012, 10:30:45 PM11/18/12
to rt-threa...@googlegroups.com
晕,乐极生悲了,还真有这个编译问题。不知道怎么蹦出来的,还是先把LWIP暂时关闭吧。我去把rtconifg.h更新一下。
--
把有限的时间投入到无限的学习中去

Steven Chen

unread,
Dec 2, 2012, 10:43:53 PM12/2/12
to rt-threa...@googlegroups.com
bsp/simulator 更新了吗?最新版本下载下来能否直接使用?(用不用补丁?)
--
regards

Steven Chen

pd520c

unread,
Dec 2, 2012, 11:23:09 PM12/2/12
to rt-threa...@googlegroups.com
怎么会这样

prife

unread,
Dec 3, 2012, 1:28:58 AM12/3/12
to rt-threa...@googlegroups.com
在 2012年12月3日 上午11:43,Steven Chen <steven...@gmail.com>写道:
bsp/simulator 更新了吗?最新版本下载下来能否直接使用?(用不用补丁?)


更新了,不用打任何补丁。建议把simulator目录删掉,然后再更新svn。
simulator目录下的 readme.txt有说明



--
把有限的时间投入到无限的学习中去

Steven Chen

unread,
Dec 4, 2012, 9:57:05 PM12/4/12
to rt-threa...@googlegroups.com

很 棒!!! 以后上下班不用老揣着评估板了。。。。

谢谢大神指导!!!

======================================================

实测日志如下:


=== svn:

内嵌图片 1

 

=== 按readme 添加 rt_gui环境变量

=== 执行 scons --target=vs -s     (ok)

===  打开project.vsproj  >> (vs2008的提示 转换工程)

===  编译工程...ok

 === 运行debug.  >>>

内嵌图片 2

 

=== 找到 sdl.dll 在\simulator\SDL\lib\x86 下

=== 拷贝到:D:\Dropbox\RTOS\bsp\simulator\Debug

 === 再度运行------ 成功了:

内嵌图片 3

 

内嵌图片 4

--
regards

Steven Chen
image.png
image.png
image.png
image.png
Reply all
Reply to author
Forward
0 new messages