ImageVerifierCode 换一换
你正在下载:

SI技巧.docx

[预览]
格式:DOCX , 页数:25 ,大小:149.33KB ,
资源ID:9131328      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9131328.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SI技巧.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SI技巧.docx

1、SI技巧目录一、 前言 31.1 目标 31.2 预定读者 31.3 历史版本 31.4 参考 31.5 术语表 3二、 版本控制功能 42.1 使用条件 42.2 CheckOut功能 42.3 CheckIn功能 52.4 Undo CheckOut功能 52.5 ClearCase Explorer功能 52.6 Find CheckOuts功能 52.7 Version Tree 52.8 Compare with previous vision 6三、 代码美化 63.1 使用条件 73.2 Code Format 7四、 代码静态检查 74.1 使用条件 74.2 系统变量的设置

2、74.2.1 INCLUDE系统变量 84.2.2 LARCH_PATH系统变量 84.2.3 LCLIMPORTDIR系统变量 84.3 批处理文件的编写 84.4 SI的设置 9五、 项目编译(Build) 105.1 使用条件 105.2 Update编译项目 105.3 New编译项目 115.4 Clean项目临时文件 11六、 代码标准化 116.1 新增宏 126.2 插入修改日志宏 136.3 插入文件头 146.4 插入函数头 15七、 其他辅助工具 157.1 SkyworksLabTestStudio 157.2 WinTrace 167.3 监视调试输出 16八、 附录

3、 168.1 SI的大客户 168.2 表格索引 178.3 图形索引 17一、 前言Source Insight(SI)是一个功能强劲的“程序代码编辑器”,他内置对C/C+,Java和x86汇编语言程序的解析功能;有自己的动态数据库在你编程时提供有用的文本提示,包括有关的函数、宏、参数等。本文档主要描述SI如何结合Clear Case、Artistic Style、Splint和自身的宏功能,实现一个IDE编译器基本的“版本控制”、“代码美化”、代码静态检查、项目编译和代码标准化的功能。SI的强大功能,甚至可以让用户监视设备调试发出的调试信息。目标通过本文档的描述,读者可以将SI变成一个方便

4、的工作平台,并在这个平台上,简化我们日常中的大量重复而且繁重的工作。预定读者预定读者是对SI有一定了解的用户,如果是第一次使用SI,请参考文章SI的功能说明和SI常用技巧。历史版本本节描述了文档的历史版本。1 历史版本表日期作者说明012005-9-21黄少文Draft参考本文档参考网络上很多关于SI的文章,同时也应用了其他文档。2 参考列表参考书目作者01Using Rational ClearCaseRational Software02Splint ManualSecure Programming GroupVersion 3.1.103SI的功能说明黄少文04SI常用技巧黄少文05Ar

5、tistic Style HelpTal Davidson06计算机源代码编写规范maysNEU-ALPINE术语表3 术语表名称别名说明Source InsightSI软件,代码编辑工具ClearCaseCC软件,版本控制软件Code Format代码整理代码风格整理,使代码有统一的排版和缩进Artistic StyleAS代码风格整理工具ARM Developer SuiteADSARM内核开发组件Skyworks Lab Test StudioSkyworks的综合调试平台WinTrace跟踪调试信息工具二、 版本控制功能这里说的版本控制为Rational ClearCase,SI可以利

6、用ClearCase、CVI等软件对代码进行精确的版本控制。本节描述:如何对SI的功能进行扩展,以支持CC的某些功能。配置完成后,效果如下图:SI版本控制图使用条件在SI下正常使用CC功能,需要满足一些条件。4 版本控制使用条件列表条件说明01版本控制软件支持命令行SI通过命令行调用外部命令02已经安装ClearCase保证ClearCase的系统设置正确03编辑的文件为CC受控文档文件必须为CC某个Libary下的文档CheckOut功能在SI中,点击菜单-options-custom commands选择Command:-“Check Out”在Run下写:cleartool co -c

7、Modify File By Source Insight: %f其中的cleartool是CC的命令行工具,%f是SI内部命令,表示当前文件的全路径。co是参数,表示文件签出,也可以使用checkout代替。以上参数大小写区分。-c表示有注释,为后面紧跟的“Modify File By Source Insight:”是文件Checkout时的描述(Description)。CheckIn功能在SI中,点击菜单-options-custom commands选择Command:-“Check In”在Run下写:cleartool ci -c Modify File By SI: -rm %

8、f参数解释请参考上一节,特殊说明如下:ci是参数,表示文件签入,也可以使用checkin代替。-rm表示覆盖原来的文件,不备份原来的文件。以上参数大小写区分。Undo CheckOut功能在SI中,点击菜单-options-custom commands选择Command:-“undo check out”在Run下写:cleartool unco -rm %fClearCase Explorer功能在SI中,点击菜单-options-custom commands点击Add按钮,新的命令叫“Rational ClearCase Explorer”。在Run下写:clearexplorer.e

9、xe %f点击按钮“menu”增加这个命令到菜单中。运行时,SI会调用ClearCase Explorer并定位到当前文件。Find CheckOuts功能本功能可以列出所有正在修改的文件(必须是CC受控文件)。在SI中,点击菜单-options-custom commands点击Add按钮,新的命令叫“Find CheckOuts”。在Run下写:clearfindco.exe %j%j命令是SI的项目主目录,结合CC的ShortSnop快照功能,可以列出所有正在修改的文档。点击按钮“menu”增加这个命令到菜单中。Version Tree在SI中,点击菜单-options-custom c

10、ommands点击Add按钮,新的命令叫“Version Tree”。在Run下写:clearvtree.exe %f点击按钮“menu”增加这个命令到菜单中,如下图:自定义命令菜单图Compare with previous vision本功能可以将本文件和最近提交的版本比较。在SI中,点击菜单-options-custom commands点击Add按钮,新的命令叫“Compare with previous vision”。在Run下写:cleardiffbl.exe /ispred %f点击按钮“menu”增加这个命令到菜单中。运行时,SI会调用CC的文档比较工具进行比较。三、 代码美

11、化如果您使用过VB,一定会对VB自动排版、自动对齐的功能十分向往。统一格式的代码不仅方便我们阅读、观赏和小组内交流,也使代码看起来有强烈、统一的风格和特征。代码整理功能(Code Format)推进使用Artistic Style(以下简称AS),它是一个自由开源软件。他可以快速的整理C、C+、C#、Java 的源代码。AS是一个命令行程序,他没有界面。AS支持多种代码整理风格,如下表:5 AS整理风格表风格说明-style=ansi标准C的风格,这种风格为我们常用的格式-style=kr如雷贯耳的Kernighan和Ritchie的风格,KR是C语言标准的最早制定者,Ansi C的也是在他们

12、的基础上制定的-style=linuxLinux风格-style=gnuGNU风格使用条件SI下正常使用AS需要满足一些条件。6 代码整理使用条件列表条件说明01安装AS将AS复制到一个目录下Code Format在SI中,点击菜单-options-custom commands点击Add按钮,新的命令叫“Code Format”。在Run下写:D:astyleastyle.exe %f点击按钮“menu”增加这个命令到菜单中,这里操作和上文差不多,就不再介绍。四、 代码静态检查静态检查工具,英文名称Lint。当C语言还在贝尔实验室时(那时它还是B语言),它就已经是单独的一个工具。不过,现在有

13、些观点认为Lint功能是编译器不可缺少的功能,把它重新集成到编译器中(如GCC)。Lint功能可以检查出代码中存在的各种问题,如:内存泄漏问题、野指针,甚至是实参的效率问题。灵活使用Lint功能,可以大幅提高代码的质量,提高系统的健壮性。它是一个高阶程序员的必备工具。Lint工具比较出名的有SpLint、PcLint和微软的CL。SpLint为开源软件;PcLint需要收费;CL为微软的开发工具,他们各有优缺点。PcLint可以选择代码检查的风格,如Kernighan&Ritchie风格等,甚至是一些比较出名的书籍建议的风格。我们使用的是Splint。使用条件SI下正常使用Splint需要满足

14、一些条件。7 代码整理使用条件列表条件说明01安装Splint将Splint复制到一个目录下,如D:splint02正确设置系统变量系统变量的设置Splint的系统设置包括:INCLUDE、LARCH_PATH、LCLIMPORTDIR,系统变量设置的结果如下图。正确系统变量图四.1.1 INCLUDE系统变量在控制面板-系统-高级-环境变量(E)-系统变量(S),点击按钮新建(W)在新建用户变量的变量名(N)中输入:INCLUDE在变量(V)中输入:D:splintlib如下图所示:新增系统变量图四.1.2 LARCH_PATH系统变量在控制面板-系统-高级-环境变量(E)-系统变量(S),

15、点击按钮新建(W)在新建用户变量的变量名(N)中输入:LARCH_PATH在变量(V)中输入:D:splintbin;D:splintimports四.1.3 LCLIMPORTDIR系统变量在控制面板-系统-高级-环境变量(E)-系统变量(S),点击按钮新建(W)在新建用户变量的变量名(N)中输入:LCLIMPORTDIR在变量(V)中输入:D:splintimports批处理文件的编写下文以项目A686的设置来描述如何在SI中正确的使用Splint功能。这里要强调指出的是:我们可以通过技巧,能使SI中Splint功能做到通用,如:在SI的A686项目、M2项目使用同样的Custom Com

16、mand(Build功能也是同理)。当Splint的静态检查时,需要往往需要了解整个项目的函数、宏的情况。这决定Splint工作时,需要清楚、准确的知道项目所有相关的头文件的位置。因此,我们新增一个批处理文件Splint_686PE.bat来处理一些工作,将项目的一些信息告诉我们的Splint。8 Splint_686PE.bat文件解析表命令说明01set MMI_INCLUDE=J:includemmi_inc;设置项目库文件路径到MMI_INCLUDE中02set INCLUDE=%INCLUDE%;%MMI_INCLUDE%将Splint的库和项目库合并03set MARCO_DEFI

17、NE=-D_KEYMAP_I_0_ -D设置项目的一些宏定义到MARCO_DEFINE04splint.exe %MARCO_DEFINE% %1将需要静态编译的文件和宏定义传给SplintSplint_686PE.bat完全文件信息如下:echo offset oldpath=%path%set tmp=c:tempset temp=c:tempset ARMHOME=C:progra1ARMADSv1_2set path=%CD%PVCS;%ARMHOME%;%path%set ARMINC=%ARMHOME%Includeset ARMLIB=%ARMHOME%Libset MMI_IN

18、CLUDE=J:includemmi_inc;J:includemmiapi_inc;J:includertxc_incset CMS_INCLUDE=J:cms_includeapp;J:cms_includecommon;J:cms_includeftp;J:cms_includeinputzi;J:cms_includemedialib;J:cms_includeobj;J:cms_includeprodconfset INCLUDE=%INCLUDE%;%MMI_INCLUDE%;%CMS_INCLUDE%set MARCO_DEFINE= -D_ARM_ -DIROM_MEMCPY

19、-D_PRODUCTIZATION_ -D_KEYMAP_I_0_ -D_COLORLCD_ -DSFFS_NOFLASHAPI -DSFFS_MULTIPLE_INSTANCE -DATK_SUPPORT -DMET_FEATURES -D_ENHANCED_EEPROM_ -DCPHS_SUPPORT -DAT_DIAL_DISPLAY -DZT_APPLE -DZT_APPLE2 -D_MMI_MA2API_ -DCMS_SAST_NEW_LCD_SUPPORT -DCMS_HAVE_CAMERA -DCMS_HAVE_VIBRATOR -D_ITAP_H set MARCO_DEFIN

20、E2=-DBOOT_LOCATION=0x1000000 -D_IA_DEVICE_=IA_20505_13 -D_PMIC_DEVICE_=PMIC_20460 -DIIC_OPTIMIZATION=IIC_OPTIMIZATION_DI_DATAOUT -D_SIM_INTERFACE_=SIM_3VONLY -DADC_CAL_DATA=SLOPE_INT_MULT -DSIM_DEBUG=SIM_DEBUG_MAXset MARCO_DEFINE_HSW=-D_HSW_DEBUG1111 -D_SAST_DEBUG111set TEMP_MARCO=-casebreak -paramu

21、se -compdef -mustfreefresh -compmempass -globstateD:splintbinsplint.exe %SPLINT_MARCO% %TEMP_MARCO% %MARCO_DEFINE% %MARCO_DEFINE2% %MARCO_DEFINE_HSW% %1SI的设置在SI中,点击菜单-options-custom commands点击Add按钮,新的命令叫“Splint”。在Run下写:D:splintbinSplint_686PE.bat %r点击按钮“menu”增加这个命令到菜单中。注意,这里传输的文件参数不是%f,而是%r。具体区别读者可以

22、自己试试。其他配置项目编译的配置。五、 项目编译(Build)SI也可以编译一个项目,方法很简单。使用条件SI下正常编译一个项目需要满足一些条件。9 项目编译条件列表条件说明01安装ADS开发环境ARM Developer Suite02环境变量为短文件路径如ARMHOME=C:progra1ARMADSv1_2set ARMINC=%ARMHOME%Includeset ARMLIB=%ARMHOME%Lib03有临时文件路径,并注意这些目录的临时文件不能太多set tmp=c:tempset temp=c:temp04ADS在默认路径下Path=C:Program FilesARMADSv

23、1_2bin05如果编译的项目生成的临时文件(包括目标文件)为CC受控文件,请批量去除这些文件的只读属性06如果文件路径太长,导致编译缓冲区溺出(如CC受控文件目录都非常深,会导致执行编译时,出现这个问题),请映射编译路径Subst J: A686+注意:使用Subst j: /d 卸载Update编译项目在SI中,点击菜单-options-custom commands选择Command:-“Build”在Run下写:cmd /c J:build_ads1.2cmsbuild.bat updateBuild设置图在Patten中输入内容为:(a-zA-Z.*)(0-90-9*).*New编译

24、项目在SI中,点击菜单-options-custom commands点击Add按钮,新的命令叫“ReBuild”。在Run下写:cmd /c J:build_ads1.2cmsbuild.bat new点击按钮“menu”增加这个命令到菜单中。Clean项目临时文件在SI中,点击菜单-options-custom commands选择Command:-“Clean Build”在Run下写:cmd /c J:build_ads1.2cmsbuild.bat clean六、 代码标准化“代码标准化”就是利用SI的宏,将我们日常的一些操作包装起来,如插入文件头、插入函数头、插入代码修改记录等。这

25、些操作,我们都可以借助SI的宏功能。在下文中,将列出我们常用的几个宏的代码。遵循标准很方便,我们不需要在编程时去查看标准化文档;也不需要随便找一个类似的文本复制过去,只需要使用SI的内置功能,一个菜单,或者是快捷键(如F2),SI会帮助你,什么都生成拉。偷懒就是这么简单。新增宏,。1、 在菜单-Project-Open Project中,打开BASE项目;打开BASE项目图2、 找到SI安装目录下的utils.em文件,也可以在“Project Window”中,打开这个文件。打开utils.em文件图3、 把宏代码添加到该文件的尾部(当然你也可以另建一新文件,记住文件扩展要为.em,且要把它

26、加到SI的Base工程中)。4、 打开菜单-Options-Menu Assignments,在Command对话框中输入m(Macrc的缩写);5、 找到Macro: HswPrintFixMsg(用户新增的函数名称,这个将在下文介绍);6、 在Menu中选择一个你喜欢的菜单,把这个宏命令加到这个菜单中;加入宏菜单图7、 现在你可以方便地使用这个命令了,当然,对于常用命令,用户最好定义为快捷键。插入修改日志宏在修改别人的代码时,需要非常小心。任何修改都必须着记录,这些记录包括:修改者、修改原因和修改日期。“插入修改日志宏”以统一的形式自动生成:修改者和修改日期信息,免除用户老是输入这些东西。

27、日志生成后,会自动定位到输入“修改原因”的位置上如下示范:/*fixed by huangshw 2005/09/22: */代码如下:/*create by hsw 2005/08/17: 自动加入有黄少文特征的日期修改宏*/macro HswPrintFixMsg() szTime = GetSysTime(1) Day = szTime.Day Month = szTime.Month Year = szTime.Year if (Day 10) szDay = 0Day else szDay = Day if (Month 10) szMonth = 0Month else szMon

28、th = Month hwnd = GetCurrentWnd() lnFirst = GetWndSelLnFirst(hwnd) lnLast = GetWndSelLnLast(hwnd) hbuf = GetCurrentBuf() /*取得用户名称*/ szMyName = getenv(USERNAME) strPrint = /*Fixed by szMyName Year/szMonth/szDay: */ InsBufLine(hbuf, lnFirst, strPrint) /*光标定位到注释的中间*/ selection_record = GetWndSel(hwnd)

29、ichPos=strlen(strPrint) -2 selection_record.ichFirst=ichPos selection_record.ichLim =ichPos SetWndSel(hwnd,selection_record)插入文件头根据计算机源代码编写规范中,章节“3.2.1源代码文件的注释”的描述,规范的源文件头由以下内容组成:10 源文件注释规范表组成元素01版权声明02在文件的头部标明程序名称,它所完成的主要功能03文件的作者,及开始和完成时间04阶段测试结束后,主要修改活动的修改人、时间、简单原因说明列表05维护过程中需要修改程序时,应在被修改语句前面注明修改时间和原因说明。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1