Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yunqingabc
rt-thread
提交
63394f5d
R
rt-thread
项目概览
yunqingabc
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
63394f5d
编写于
9月 14, 2013
作者:
P
prife
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #155 from grissiom/simulator
Simulator
上级
2bcb9edd
dacd2cb9
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
105 addition
and
18 deletion
+105
-18
.travis.yml
.travis.yml
+5
-2
bsp/simulator/SConstruct
bsp/simulator/SConstruct
+4
-7
bsp/simulator/drivers/SConscript
bsp/simulator/drivers/SConscript
+11
-3
bsp/simulator/rtconfig.py
bsp/simulator/rtconfig.py
+11
-4
tools/building.py
tools/building.py
+5
-2
tools/tools/clang-analyze.py
tools/tools/clang-analyze.py
+69
-0
未找到文件。
.travis.yml
浏览文件 @
63394f5d
...
...
@@ -6,18 +6,21 @@ notifications:
before_script
:
# travis has changed to 64-bit and we require 32-bit compatibility libraries
-
sudo apt-get update
-
"
sudo
apt-get
-qq
install
libc6:i386
libgcc1:i386
gcc-4.6-base:i386
libstdc++5:i386
libstdc++6:i386
||
true"
-
"
sudo
apt-get
-qq
install
clang
gcc-multilib
libc6:i386
libgcc1:i386
gcc-4.6-base:i386
libstdc++5:i386
libstdc++6:i386
libsdl-dev
||
true"
-
"
[
$RTT_TOOL_CHAIN
=
'sourcery-arm'
]
&&
curl
-s
https://sourcery.mentor.com/public/gnu_toolchain/arm-none-eabi/arm-2012.09-63-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
|
sudo
tar
xjf
-
-C
/opt
&&
export
RTT_EXEC_PATH=/opt/arm-2012.09/bin
&&
/opt/arm-2012.09/bin/arm-none-eabi-gcc
--version
||
true"
-
"
[
$RTT_TOOL_CHAIN
=
'sourcery-mips'
]
&&
curl
-s
https://sourcery.mentor.com/public/gnu_toolchain/mips-sde-elf/mips-2012.09-98-mips-sde-elf-i686-pc-linux-gnu.tar.bz2
|
sudo
tar
xjf
-
-C
/opt
&&
export
RTT_EXEC_PATH=/opt/mips-2012.09/bin
&&
/opt/mips-2012.09/bin/mips-sde-elf-gcc
--version
||
true"
-
"
[
$RTT_TOOL_CHAIN
=
'sourcery-ppc'
]
&&
curl
-s
https://sourcery.mentor.com/public/gnu_toolchain/powerpc-eabi/freescale-2011.03-39-powerpc-eabi-i686-pc-linux-gnu.tar.bz2
|
sudo
tar
xjf
-
-C
/opt
&&
export
RTT_EXEC_PATH=/opt/freescale-2011.03/bin
&&
/opt/freescale-2011.03/bin/powerpc-eabi-gcc
--version
||
true"
-
"
[
$RTT_TOOL_CHAIN
=
'atmel-avr32'
]
&&
curl
-s
http://www.atmel.com/images/avr32-gnu-toolchain-3.4.1.348-linux.any.x86.tar.gz
|
sudo
tar
xzf
-
-C
/opt
&&
export
RTT_EXEC_PATH=/opt/avr32-gnu-toolchain-linux_x86/bin
&&
/opt/avr32-gnu-toolchain-linux_x86/bin/avr32-gcc
--version
&&
curl
-sO
http://www.atmel.com/images/avr-headers-3.2.3.970.zip
&&
unzip
-qq
avr-headers-3.2.3.970.zip
-d
bsp/$RTT_BSP
||
true"
-
export RTT_ROOT=`pwd`
-
export RTT_CC='gcc'
-
"
[
x$RTT_CC
==
x
]
&&
export
RTT_CC='gcc'
||
true"
-
git clone --depth 1 https://github.com/RT-Thread/RTGUI.git $HOME/RTGUI
-
export RTT_RTGUI=$HOME/RTGUI/components/rtgui
script
:
-
scons -C bsp/$RTT_BSP
env
:
-
RTT_BSP='simulator' RTT_CC='clang-analyze' RTT_EXEC_PATH=/usr/share/clang/scan-build
-
RTT_BSP='at91sam9260' RTT_TOOL_CHAIN='sourcery-arm'
-
RTT_BSP='avr32uc3b0' RTT_TOOL_CHAIN='atmel-avr32'
# - RTT_BSP='bf533' # no scons
...
...
bsp/simulator/SConstruct
浏览文件 @
63394f5d
...
...
@@ -73,6 +73,10 @@ elif rtconfig.PLATFORM == 'mingw':
LINK
=
rtconfig
.
LINK
,
LINKFLAGS
=
rtconfig
.
LFLAGS
)
env
[
'LIBS'
]
=
libs
env
.
PrependENVPath
(
'PATH'
,
rtconfig
.
EXEC_PATH
)
elif
rtconfig
.
CROSS_TOOL
==
'clang-analyze'
:
TARGET
=
'rtthread'
env
=
Environment
(
toolpath
=
[
os
.
path
.
join
(
RTT_ROOT
,
'tools'
,
'tools'
)],
tools
=
[
rtconfig
.
CROSS_TOOL
])
else
:
TARGET
=
'rtthread'
env
[
'CC'
]
=
rtconfig
.
CC
...
...
@@ -84,13 +88,6 @@ else:
objs
=
PrepareBuilding
(
env
,
RTT_ROOT
,
has_libcpu
=
False
,
remove_components
=
[
'rtgui'
])
if
GetDepend
(
'RT_USING_RTGUI'
):
sdl_lib
=
[
'SDL'
,
'SDLmain'
]
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
)
if
RTT_RTGUI
:
objs
+=
SConscript
(
os
.
path
.
join
(
RTT_RTGUI
,
'SConscript'
),
variant_dir
=
'build/components/rtgui'
,
...
...
bsp/simulator/drivers/SConscript
浏览文件 @
63394f5d
...
...
@@ -3,10 +3,19 @@ from building import *
cwd
=
GetCurrentDir
()
src
=
Glob
(
'*.c'
)
LIBS
=
[]
LIBPATH
=
[]
CPPPATH
=
[
cwd
]
# remove no need file.
if
GetDepend
(
'RT_USING_RTGUI'
)
==
False
:
SrcRemove
(
src
,
'sdl_fb.c'
)
else
:
LIBS
.
append
(
'SDL'
)
if
sys
.
platform
==
'win32'
:
LIBPATH
.
append
(
os
.
path
.
abspath
(
os
.
path
.
join
(
cwd
,
'../SDL/lib/x86'
)))
CPPPATH
.
append
(
os
.
path
.
abspath
(
os
.
path
.
join
(
cwd
,
'../SDL/include'
)))
if
GetDepend
(
'RT_USING_DFS'
)
==
False
or
GetDepend
(
'RT_USING_DFS_ELMFAT'
)
==
False
:
SrcRemove
(
src
,
'sd_sim.c'
)
if
GetDepend
(
'RT_USING_DFS'
)
==
False
or
GetDepend
(
'RT_USING_MTD_NAND'
)
==
False
:
...
...
@@ -20,8 +29,7 @@ if GetDepend('RT_USING_MODULE') == False:
if
sys
.
platform
[
0
:
5
]
==
"linux"
:
#check whether under linux
SrcRemove
(
src
,
[
'module_win32.c'
,
'dfs_win32.c'
])
CPPPATH
=
[
cwd
]
group
=
DefineGroup
(
'Drivers'
,
src
,
depend
=
[
''
],
CPPPATH
=
CPPPATH
)
group
=
DefineGroup
(
'Drivers'
,
src
,
depend
=
[
''
],
CPPPATH
=
CPPPATH
,
LIBS
=
LIBS
,
LIBPATH
=
LIBPATH
)
Return
(
'group'
)
bsp/simulator/rtconfig.py
浏览文件 @
63394f5d
import
os
# toolchains options
ARCH
=
'sim'
#CROSS_TOOL='msvc' or 'gcc' or 'mingw'
...
...
@@ -5,12 +7,15 @@ ARCH='sim'
# 'gcc' is for linux
CROSS_TOOL
=
'msvc'
if
os
.
getenv
(
'RTT_CC'
):
CROSS_TOOL
=
os
.
getenv
(
'RTT_CC'
)
# cross_tool provides the cross compiler
# EXEC_PATH is the compiler execute path
if
CROSS_TOOL
==
'gcc'
:
if
CROSS_TOOL
==
'gcc'
or
CROSS_TOOL
==
'clang-analyze'
:
CPU
=
'posix'
PLATFORM
=
'gcc'
EXEC_PATH
=
'
/usr/bin/gcc
'
EXEC_PATH
=
''
elif
CROSS_TOOL
==
'mingw'
:
CPU
=
'win32'
...
...
@@ -21,11 +26,13 @@ elif CROSS_TOOL == 'msvc':
CPU
=
'win32'
PLATFORM
=
'cl'
EXEC_PATH
=
''
else
:
else
:
print
"bad CROSS TOOL!"
exit
(
1
)
if
os
.
getenv
(
'RTT_EXEC_PATH'
):
EXEC_PATH
=
os
.
getenv
(
'RTT_EXEC_PATH'
)
BUILD
=
'debug'
#BUILD = ''
...
...
tools/building.py
浏览文件 @
63394f5d
...
...
@@ -113,8 +113,11 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
AS
=
'true'
,)
env
[
"ENV"
].
update
(
x
for
x
in
os
.
environ
.
items
()
if
x
[
0
].
startswith
(
"CCC_"
))
# only check, don't compile. ccc-analyzer use CCC_CC as the CC.
env
[
'ENV'
][
'CCC_CC'
]
=
'true'
env
[
'ENV'
][
'CCC_CXX'
]
=
'true'
# fsyntax-only will give us some additional warning messages
env
[
'ENV'
][
'CCC_CC'
]
=
'clang'
env
.
Append
(
CFLAGS
=
[
'-fsyntax-only'
,
'-Wall'
,
'-Wno-invalid-source-encoding'
])
env
[
'ENV'
][
'CCC_CXX'
]
=
'clang++'
env
.
Append
(
CXXFLAGS
=
[
'-fsyntax-only'
,
'-Wall'
,
'-Wno-invalid-source-encoding'
])
# remove the POST_ACTION as it will cause meaningless errors(file not
# found or something like that).
rtconfig
.
POST_ACTION
=
''
...
...
tools/tools/clang-analyze.py
0 → 100644
浏览文件 @
63394f5d
"""
Tool-specific initialization for Clang static analyzer
There normally shouldn't be any need to import this module directly.
It will usually be imported through the generic SCons.Tool.Tool()
selection method.
"""
__revision__
=
"tools/clang-analyze.py 2013-09-06 grissiom"
import
os
import
os.path
import
SCons.Action
import
SCons.Builder
import
SCons.Defaults
import
SCons.Tool
import
SCons.Util
import
rtconfig
def
generate
(
env
):
assert
(
rtconfig
.
CROSS_TOOL
==
'clang-analyze'
)
# let gnu_tools setup a basic env(learnt from SCons/Tools/mingw.py)
gnu_tools
=
[
'gcc'
,
'g++'
,
'gnulink'
,
'ar'
,
'gas'
,
'm4'
]
for
tool
in
gnu_tools
:
SCons
.
Tool
.
Tool
(
tool
)(
env
)
# then we could stand on the shoulders of gaints
env
[
'CC'
]
=
'ccc-analyzer'
env
[
'CXX'
]
=
'c++-analyzer'
env
[
'AS'
]
=
'true'
env
[
'AR'
]
=
'true'
env
[
'LINK'
]
=
'true'
env
[
'CFLAGS'
]
=
[
'-fsyntax-only'
,
'-Wall'
,
'-Wno-invalid-source-encoding'
]
env
[
'LINKFLAGS'
]
=
'-Wl,--gc-sections'
env
[
'ARFLAGS'
]
=
'-rc'
# only check, don't compile. ccc-analyzer use CCC_CC as the CC.
# fsyntax-only will give us some additional warning messages
env
[
'ENV'
][
'CCC_CC'
]
=
'clang'
env
[
'ENV'
][
'CCC_CXX'
]
=
'clang++'
# setup the output dir and format
env
[
'ENV'
][
'CCC_ANALYZER_HTML'
]
=
'./build/'
env
[
'ENV'
][
'CCC_ANALYZER_OUTPUT_FORMAT'
]
=
'html'
# Some setting from the platform also have to be overridden:
env
[
'OBJSUFFIX'
]
=
'.o'
env
[
'LIBPREFIX'
]
=
'lib'
env
[
'LIBSUFFIX'
]
=
'.a'
if
rtconfig
.
EXEC_PATH
:
if
not
os
.
path
.
exists
(
rtconfig
.
EXEC_PATH
):
print
print
'warning: rtconfig.EXEC_PATH(%s) does not exists.'
%
rtconfig
.
EXEC_PATH
print
return
env
.
AppendENVPath
(
'PATH'
,
rtconfig
.
EXEC_PATH
)
def
exists
(
env
):
return
env
.
Detect
([
'ccc-analyzer'
,
'c++-analyzer'
])
# Local Variables:
# tab-width:4
# indent-tabs-mode:nil
# End:
# vim: set expandtab tabstop=4 shiftwidth=4:
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录