版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大家晚上好!RTT第一讲基础知识主讲人:Yafei时间:2013/08/01内容提要<1>安装scons<2>SConstruct
SConscript<3>RTT源码目录结构<4>scons使用gcc/mdk编译一个示例<5>scons生成IAR/MDK工程<6>头文件的查找一、安装scons官网最新版本SCons
2.3.0scons目前只支持python2.7或者更早的版本,暂时不支持python3Scons
2.3.0
下载网址个人百度云网盘下载安装步骤依赖于python2.7Scons用python语言编写,因此我们在安装scons之前,需要搭建python环境。下载地址使用简单安装,MSI,EXE添加环境变量:D:\Python27;D:\Python27\Scripts;python动态类型语言:在程序运行时检查数据的类型的语言。在写代码时不会给变量指定类型,而是在赋值时确定数据类型。例如:二、scons详解Scons官方文档•SConstruct文件是用来控制整个项目的实际编译。例如:(1)#prepare
building
environmentobjs=PrepareBuilding(env,RTT_ROOT,has_libcpu=False)准备好编译的环境,编译环境:编译器,分析rtconfig.h,执行
sconscript添加RTT
kernel
src/和libcpu/,添加RTT组件目录(2)#build
program
env.Program(TARGET,objs)开始编译(3)TARGET='rtthread-stm32f4xx.'+
rtconfig.TARGET_EXT
指定编译后的程序名SConscript文件是用来指定哪些文件会加入编译。scons添加组件DefineGroup用于定义一个组件。组件可以是一个目录(下的文件或子目录),也是后续一些IDE工程文件中的一个Group或文件夹。函数原型为:DefineGroup(name,src,depend,**parameters),包括四个参数:'name'来定义这个group的名字src用于定义这个Group中包含的文件,一般指的是
C/C++源文件。方便起见,也能够通过Glob函数采用通配符的方式列出SConscript文件所在目录中匹配的文件。depend
用于定义这个Group编译时所依赖的选项(例如finsh组件依赖于RT_USING_FINSH宏定义)。编译选项一般指rtconfig.h中定义的RT_USING_xxx宏。当在rtconfig.h配置文件中定义了相应宏时,那么这个Group
才会被加入到编译环境中进行编译。如果依赖的宏并没在rtconfig.h中被定义,那么这个Group将不会被加入编译。相类似的,在使用scons生成为IDE工程文件时,如果依赖的宏未被定义,相应的Group也不会在工程文件中出现。parameters则可以输入一组字符串,后面还可以加入的参数包括:CCFLAGS–C源文件编译的参数;CPPPATH–应该额外包含的头文件路径;CPPDEFINES–C源文件编译时额外的宏定义;LINKFLAGS–连接时应该添加的参数。LIBRARY–包含此参数,则会将组生成的目标文件打包成库文件。Scons拓展查看scons支持的选项:scons--helpRTTWiki之scons:
scons使用armcc编译时出现命令行太长,编译报错:
Fatal
error:
L3904U:Could
not
open
via
file'@c:\users\admini~1\appdata\local\temp\tmp8cy7vx.lnk'.三、RTT目录结构目录详解bsp/:board
support
package,对应于开发板libcpu/:芯片架构,CPU资源(PMC电源控制器,AIC先进中断控制器,系统时钟)驱动src/:RTT内核源码(rt_object,
ipc,调度)components/:RTT组件,包含协议栈(lwip)、总线驱动(SPI
I2C
SDIOUSB等)、Finsh、DFS、libc库tools/:RT-Thread官方提供的用于所有BSP的共同脚本控制文件,提供一些强大的功能函数,方便我们编写
SConscript.include/:RTT头文件四、scons编译示例CodeSourcery平台选择GNU/Linux代表硬件上面运行Linux系统,编译的程序在
linux上运行EABIGCCCodeSourcery•需要注册scons——armcc编译前提:安装MDKRtconfig.py配置五、scons生成MDK工程命令:scons
–target=mdk4
–s工程模板文件:template.uvproj六、编译时头文件查找头文件查找由编译器来决定在编译时加选项–I
来包含查找头文件的目录GCC编译器#include
“file1”首先在源文件当前目录下查找头文件,如果找不到,再去编译命令指定、系统预设的目录去找。这些"指定的"、"预设的"目录在什么地方呢?"指定的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业机器人运动控制技术应用文化创新策略
- 护理质量控制与持续改进策略
- 2025年计算应用案例
- 道路巡视养护工安全风险竞赛考核试卷含答案
- 化工工艺技术员7S执行考核试卷含答案
- 2026年新科教版高中高一生物下册第三单元有丝分裂过程卷含答案
- 草地监护员风险识别强化考核试卷含答案
- 光伏发电运维值班员岗前技术基础考核试卷含答案
- 电动工具定转子制造工安全知识竞赛评优考核试卷含答案
- 平台稳性操作员班组考核水平考核试卷含答案
- 诊所收费室管理制度
- 趣味数学比赛题
- CJ/T 192-2017内衬不锈钢复合钢管
- 2025年电工三级(高级工)理论100题及答案
- T/CSWSL 002-2018发酵饲料技术通则
- 基本公共卫生孕产妇健康管理培训课件
- 集成电路封装与测试 课件 封装 11.1切筋成型
- 2025年《家校共育共话成长》一年级下册家长会课件
- 第二单元第1课《观照自然》教学设计 2025人美版美术七年级下册
- 《高速铁路动车乘务实务(第3版)》 课件 项目二任务3复兴号智能动车组列车车内设备设施
- 高血压患者围手术期的护理
评论
0/150
提交评论