|
|
(未显示2个用户的54个中间版本) |
第1行: |
第1行: |
− | ==入门指南==
| |
− | ===获得源代码===
| |
| | | |
− | ----
| |
− |
| |
− | ====源代码的地址与组成====
| |
− | :SylixOS开发者们使用Git服务器管理源代码,Git服务器的地址为:http://git.sylixos.com/cgit/
| |
− |
| |
− | :Git服务器上的源代码可以分为如下几类:
| |
− | {| class="wikitable"
| |
− | |-
| |
− | | examples || 示例工程,包括应用程序工程、内核模块工程、库工程
| |
− | |-
| |
− | | examples-bsp || 示例BSP工程
| |
− | |-
| |
− | | librarys || 开源库工程
| |
− | |-
| |
− | | operating-system || SylixOS操作系统工程
| |
− | |-
| |
− | | tools-patch || 工具与补丁等
| |
− | |}
| |
− | :为了下载Git服务器上的源代码,你需要一个Git客户端,如果你的PC机操作系统是windows,建议使用Git for windows。
| |
− |
| |
− | ====安装Git for windows====
| |
− | :下载地址:http://msysgit.github.io/
| |
− |
| |
− | :默认安装即可,安装步骤略。
| |
− |
| |
− | ====下载源代码====
| |
− | :创建一个名为sylixos_workspace的目录(下文约定该目录是D:\sylixos_workspace目录),进入该目录,打开Git Bash,输入如下命令:
| |
− |
| |
− | git clone http://git.sylixos.com/repo/libsylixos.git
| |
− | git clone http://git.sylixos.com/repo/mini2440.git
| |
− | git clone http://git.sylixos.com/repo/libcextern.git
| |
− | git clone http://git.sylixos.com/repo/examples.git
| |
− | git clone http://git.sylixos.com/repo/tools.git
| |
− |
| |
− | ===搭建开发环境===
| |
− |
| |
− | ----
| |
− |
| |
− | ====开源开发环境的组成====
| |
− | :SylixOS开源集成开发环境由以下组成:
| |
− | *Eclipse
| |
− | :Eclipse是著名的跨平台开源集成开发环境(IDE),最初主要用来开发Java语言程序,目前亦可以通过插件使其作为C++、Python、PHP等其他语言程序的开发工具。
| |
− |
| |
− | :Eclipse本身只是一个框架平台,但是有众多插件的支持,使得Eclipse拥有较佳的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。
| |
− |
| |
− | :下图是Eclipse在windows7上运行起来的界面:
| |
− |
| |
− | [[文件:sylixide_eclipse.png]]
| |
− | *CDT
| |
− | :CDT是扩展Eclipse支持C/C++开发的插件。
| |
− |
| |
− | *GNU Tools for ARM Embedded Processors
| |
− | :GNU Tools for ARM Embedded Processors是一套GNU的开发ARM处理器程序的工具集。
| |
− |
| |
− | *Zylin CDT
| |
− | :Zylin CDT是扩展Eclipse支持嵌入式远程调试的插件。
| |
− |
| |
− | :SylixOS开源集成开发环境整体结构框图:
| |
− |
| |
− | [[文件:ide.png]]
| |
− |
| |
− | ====开源开发环境的搭建====
| |
− |
| |
− | ----
| |
− |
| |
− | *安装Eclispe CDT
| |
− | :它的下载页面是 http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/keplersr2
| |
− |
| |
− | :根据你的主机操作系统类型,下载对应的压缩包:
| |
− |
| |
− | [[文件:sylixide_eclipsedownload.png]]
| |
− |
| |
− | :由于笔者的主机操作系统是64位的windows7,所以笔者下载的压缩包是eclipse-cpp-kepler-SR2-win32-x86_64.zip。
| |
− |
| |
− | :下载后把它解压到D:\SylixIDE目录:
| |
− |
| |
− | [[文件:sylixide_unzipeclipse.png]]
| |
− |
| |
− | :解压完成后,进入D:\SylixIDE\eclipse目录,将eclipse.exe发送到桌面快捷方式以方便后续使用:
| |
− |
| |
− | [[文件:sylixide_eclipselink.png]]
| |
− |
| |
− | *安装GNU Tools for ARM Embedded Processors
| |
− | :它的下载页面是 https://launchpad.net/gcc-arm-embedded/+download
| |
− |
| |
− | [[文件:sylixide_gccdownload.png]]
| |
− |
| |
− | :根据你的主机操作系统类型,下载对应的安装包。
| |
− |
| |
− | :由于笔者的主机操作系统是64位的windows7,所以笔者下载的安装包是gcc-arm-none-eabi-4_7-2013q1-20130313-win32.exe。
| |
− |
| |
− | :把它安装到D:\SylixIDE\arm-none-eabi-gcc目录。
| |
− |
| |
− | :注意要在完成界面那里勾选Add path to environment variable:
| |
− |
| |
− | [[文件:sylixide_gccinstall.png]]
| |
− |
| |
− | :安装完成后,需要新建一用户环境变量,变量名为GCC_INCDIR,变量值为D:\SylixIDE\arm-none-eabi-gcc:
| |
− |
| |
− | [[文件:sylixide_env.png]]
| |
− |
| |
− | *安装yagato tools
| |
− | :现在还缺少make等工具,到www.yagarto.de下载yagato tools:
| |
− |
| |
− | [[文件:sylixide_yagartodownload.png]]
| |
− |
| |
− | :把下载的yagarto-tools-20121018-setup.exe安装到D:\SylixIDE\yagarto-tools-20121018目录,
| |
− |
| |
− | :注意要在选择组件界面那里勾选Add the make utils to the PATH variable:
| |
− |
| |
− | [[文件:sylixide_yagartoinstall.png]]
| |
− |
| |
− | *替换reent.h文件
| |
− | :由于SylixOS修改了编译器的reent.h文件,所以使用编译器自带的reent.h文件将不能编译成功。
| |
− |
| |
− | :把D:\sylixos_workspace\tools\arm-none-eabi-patch\4.8\reent.h文件放入D:\SylixIDE\arm-none-eabi-gcc\arm-none-eabi\include\sys目录替换原有的。
| |
− |
| |
− | *安装Zylin CDT
| |
− | :复制D:\sylixos_workspace\tools\eclipse\zylin目录下的features与plugins两个子文件夹到D:\SylixIDE\eclipse目录,提示文件夹合并时,请点击“是”按钮。
| |
− |
| |
− |
| |
− | :最后重新启动Eclipse。
| |
− |
| |
− |
| |
− | :恭喜,你已经将SylixOS开源集成开发环境搭建成功。
| |
− |
| |
− | ===编译工程===
| |
− |
| |
− | ===开发应用程序===
| |
− |
| |
− | ===开发内核模块===
| |
− |
| |
− | ===开发驱动程序===
| |
− |
| |
− | ==进阶教程==
| |
− | ===Bugzilla简明使用手则===
| |
− | ====简介:====
| |
− | Bugzilla是Mozilla公司向我们提供的一个开源的免费缺陷跟踪工具。作为一个产品缺陷的记录及跟踪工具,它能够为你建立一个完善的Bug跟踪体系,
| |
− |
| |
− | 包括报告Bug、查询Bug记录并产生报表、处理解决、管理员系统初始化和设置四部分。并具有如下特点:
| |
− | *基于Web方式,安装简单、运行方便快捷、管理安全。
| |
− | *有利于缺陷的清楚传达。本系统使用数据库进行管理,提供全面详尽的报告输入项,产生标准化的Bug报告。提供大量的分析选项和强大的查询匹配能力,
| |
− | 能根据各种条件组合进行Bug统计。当错误在它的生命周期中变化时,开发人员、测试人员、及管理人员将及时获得动态的变化信息,允许你获取历史纪录,
| |
− | 并在检查错误的状态时参考这一记录。
| |
− | *系统灵活,强大的可配置能力。Bugzilla工具可以对软件产品设定不同的模块,并针对不同的模块设定开发人员和测试人员;这样可以实现提交报告时自动发给指定的责任人;
| |
− | 并可设定不同的小组。设定不同的用户对Bug记录的操作权限不同,可进行有效的控制管理。允许设定不同的严重程度和优先级,可以在错误的生命期中管理错误,
| |
− | 从最初的报告到最后的解决,都有详细的记录,确保了错误不会被忽略,同时,可以让开发人员将注意力集中在优先级和严重程度高的错误上。
| |
− | *自动发送Email通知相关人员。根据设定的不同责任人,自动发送最新的动态信息,有效的帮助测试人员和开发人员进行沟通。
| |
− |
| |
− | ====Bugzilla操作流程:====
| |
− | #用户登录及设置流程:
| |
− | #*打开浏览器,输入Bugzilla服务器地址:http://server/bugzilla/
| |
− | #*进入主页面后,点击【新建帐号】,进入注册页面。
| |
− | #*在注册页面中输入E-Mail地址和用户代号,然后,点击【Create Account】,随后,你将收到一封包含初始密码的E-Mail。
| |
− | #*在收到E-Mail之后,点击【登录】,在帐号栏输入注册时使用的E-Mail地址,在密码栏输入邮件里通知的初始密码,然后,点击【Login】。
| |
− | #*如忘记密码,在登陆页面中输入注册用户名,点击【Submit Request】,根据收到的邮件进行重新设置密码。
| |
− | #*如果成功登录后,点击【Edit属性】->【帐号设置】,进行密码修改。
| |
− | #*点击【Edit属性】->【邮件设置】,进行邮件通知设置。
| |
− | #*点击【Edit属性】->【权限】,进行权限查询。
| |
− | #Bug的处理流程概述:
| |
− | #*测试人员或开发人员发现bug后,判断属于哪个模块的问题,填写bug报告后,通过Email通知项目组长或直接通知开发者。
| |
− | #*项目组长根据具体情况,重新reassigned分配给bug所属的开发者。
| |
− | #*开发者收到E-Mail信息后,判断是否为自己的修改范围。
| |
− | #*#若不是,重新reassigned分配给项目组长或应该分配的开发者;
| |
− | #*#若是,进行处理,resolved并给出解决方法。(可创建补丁附件及补充说明);
| |
− | #*测试人员查询开发者已修改的bug,进行重新测试。(可创建test case附件)
| |
− | #*#经验证无误后,修改状态为VERIFIED。待整个产品发布后,修改为CLOSED。
| |
− | #*#还有问题,REOPENED,状态重新变为“New",并发邮件通知。
| |
− | #*如果这个BUG一周内一直没被处理过。Bugzilla就会一直用E-Mail骚扰它的属主,直到采取行动为止。
| |
− | #一个Bug的生存周期图示:
| |
− | #测试人员报告Bug的流程:
| |
− | #*请先进行查询,确认要提交的bug报告不会在原有纪录中存在,若已经存在,不要提交,若有什么建议,可在原有纪录中增加注释,告知其属主,让bug的属主看到这个后自己去修改。
| |
− | #*若Bug不存在,创建一份有效的bug报告后进行提交。
| |
− | #*具体操作:点击【新建】,选择产品后,填写一个Bug报告的表格。填表注意:【指派给】为空则默认为设定的owner, 也可手工制定。【抄送】可为多人,需用逗号隔开。【描述】中要详细说明下列情况:
| |
− | #*#发现问题的步骤;
| |
− | #*#执行上述步骤后出现的情况;
| |
− | #*#期望应出现的正确结果。
| |
− | #*【平台】、【操作系统】、【优先级】、【严重级】,可以根据具体情况自行选择。
| |
− | #*【依赖】是指与这个新Bug有关联的Bug号码。
| |
− | #*【Blocks】不太清楚J
| |
− | #*填写完毕之后,点击【Commit】提交,发送邮件通知给相关人员。
| |
− | #Bug的不同处理状态解释:
| |
− | #*Bug的属主(owner)确认并接受这个Bug,然后给出解决方法,并填写【附加说明】,还可以【建立新的附件】(如:更改提交单)等等。
| |
− | #*开发人员可以调整的Bug状态如下:
| |
− | #*#FIXED => 描述的问题已经修改;
| |
− | #*#INVALID => 描述的问题不是一个bug (输入错误后,通过此项来取消);
| |
− | #*#WONTFIX => 描述的问题将永远不会被修复;
| |
− | #*#LATER => 描述的问题将不会在产品的这个版本中解决;
| |
− | #*#DUPLICATE => 描述的问题是一个存在的bug的复件;
| |
− | #*#WORKSFORME => 所有要重新产生这个bug的企图是无效的。如果有更多的信息出现,请重新分配这个bug,而现在只把它归档。
| |
− | #*测试人员收到Bug的修改通知之后,还可以做如下的调整:
| |
− | #*#Leave as RESOLVED FIXED => 保持FIXED状态不变;
| |
− | #*#Reopen bug => 这个bug还有问题,重新打开;
| |
− | #*#Mark bug as VERIFIED => 这个bug确实被正确修改了;
| |
− | #*#Mark bug as CLOSED => 产品已经发布,将这个bug关闭。
| |
− | #关于权限的说明:
| |
− | #*组内成员对bug具有查询的权利,但不能进行修改。
| |
− | #*Bug的owner 和 reporter 具有修改的权利。
| |
− | #*具有特殊权限的用户具有修改的权利。
| |