如何设置用vs编辑嵌入式项目(用keil 编译)+设置vs编辑器的关键字的颜色

23 篇文章 0 订阅
17 篇文章 0 订阅


嵌入式系统,似乎顾名思义就是嵌入到别的东西里的软硬件系统;其实也说不清楚,现在手机、MP4之类的产品也是嵌入式系统,但显然我们不会把它嵌到哪去。我觉得嵌入式系统一般都会比单片机复杂,比PC精简,算是夹在中间吧。这一点从我所了解的程序编写也可以感觉到:

 

1.单片机:单片机编程基本上用汇编或C就可以搞掂,几百K代码,无专门的操作系统,没有或很少资源文件,主要硬件都在同一芯片上,外围硬件相对较少,一般就是几个管脚接AD转换IO控制之类的,完成的功能也简单,一般一两个人可搞掂;

2.嵌入式系统:C语言或C++,一般会有个小操作系统,代码和资源文件各几十兆,较多的外围硬件,如独立的音视频、NAND和SD存储、USB接口、网络和串口调试等,当然还会有数据采集和控制硬件,功能复杂,运算逻辑较多,一般不会完全从底层开始开发,都是会用到开源或第三方的软硬件,由公司部门来做研发;

3.PC:这个不用说了,各种高级语言,各种软硬件,光Windows或Linux一个操作系统都不知要多少代码,无数个公司在上面做开发应用。

 

嗯,言归正传,谈谈用Visual Studio的原因。嵌入式系统代码量大,很多时候这些代码都是通过makefile维护起来,用文本工具编辑,在Linux或dos下用gcc或perl命令行做交叉编译,这对于我这种用惯了Windows的人来说是相当的别扭。少数一些系统能在ADS、Keil之类的GUI环境下编程,但用起来体验效果确实无法跟VS相比。而VS也支持这些命令行的项目,因此在VS下维护嵌入式代码是一个不错的选择。尤其是要阅读和编辑查找代码时,VS的智能代码提示和查找定义功能非常好用。

 

用Visual Studio维护嵌入系统并不复杂,网上有现成的教程。以我机上的一个项目为例,原始的项目源码在E:/gcsrc目录下,我用的是VS2008,生成VS项目的过程如下:

1.打开VS2008,执行“新建|从现有代码创建项目”命令,第一步选择Visual C++项目类型;

2.第二步指定项目位置为E:/gcsrc,项目取名为vsgc,文件类型中去掉*.bin之类的非源码文件;

3.第三步“你希望如何生成项目”,勾选“使用外部生成系统”;

4.第四步指定调试的各种命令,我是自己写了各种批处理命令,如果系统无法在Windows下编译,仅用VS2008来编辑查看,则什么都不填直接点下一步;

5.最后一步发布的配置不用理,跟调试一样,直接点完成,VS2008将搜索所有符合条件的文件加到工程中。

生成的项目如图示:

 

如果配置了编译生成命令,可执行生成:

 

我们会注意到很多代码是灰色的,原因是makefile里的各种#define预定义内容并没有加到VS工程里,怎么办呢?makefile里这种定义很多,一个个把它们找出来比较麻烦。其实从编译命令行输出中可以找到这些定义,如上图的“c : -CPU ... -DUSE_NAND_RWLIB=1...”,很显然-DUSE_NAND_RWLIB=1等就是我们需要的预定义,把它们全找出来COPY到记事本,查找替换处理一下,加到工程的预定义设置里即可:

 

如果有很多个makefile预定义,只要没冲突都可以拼在一个工程里。设置好后确定保存,然后等VS的智能识别更新完成,就会看到相应的代码点亮了。

 

用Visual Studio维护嵌入式系统代码,能充分利用Visual Studio强大的IDE功能来编写程序,尤其对我们阅读和理解代码很有帮助,比用ADS、KEIL和QT之类的IDE要方便很多,应该说微软在这一点上还是做得非常好的。

配置vs的编辑颜色:

 

VS 2005 编辑器界面字体和颜色设置

结果就要搞windows开发了,必须得装个VS。而本人眼睛的需求比较高,默认的白底黑字果断亮瞎狗眼,这可得调调。可摸索了半天还是弄得一塌糊涂,在百度以及 http://blog.csdn.net/book_withc/article/details/18843053 和其文中推荐的不错的配色网站 http://studiostyl.es/ 的帮助下,完成了这个灰蒙蒙的版本~~~大笑PS:本人眼睛的需求不但高,还比较奇葩,偏好这种中明度中纯度,不喜欢白底黑字瞎狗眼,也不喜欢黑底白字黑框框,看久了眼前会起白条纹滴~


还是简要说说注意事项:

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

VS 2005 编辑器界面字体和颜色设置是在”工具->选项->环境->字体和颜色“处。

字体我选择的是Consolas,一款等宽无衬线字体(写代码也只适合用等宽无衬线字体的感觉),VS也有提示显示为粗体的为等宽字体。字体大小为10。太大了占屏幕,太小又瞎了!

显示项的前景色和背景色搞了好久都没搞出来,它纯文本的背景色和关键字、标识符的背景色是分开的,所以如不统一调成同一的颜色,部分代码后面就会带上底色块。最杯具的是标识符的前景色又不能改变大多数变量名的颜色,不知被什么选项覆盖了...暴汗惊恐

后来到 http://studiostyl.es/schemes/loco1 下了个loco1_vs2005.vssettings配色,导入后再稍作改动:字体大小变大为10,选定的文本前景色改为灰色,于是就有了GVGray.vssettings

再说说配置的导入导出,于”工具->导入导出设置“处即可。但要注意,在导入时选择”选择要导入的设置”时只选择“所有设置->选项->环境->颜色和字体”,否则你的环境中其他自定义好的设置就会被替换掉,悲催啊!或者安全起见导入前先导出保存原有设置(其实导入时也有提示是否保存当前设置的)。

最后,配置文件.vssettings是可以用记事本打开编辑的,将本人的设置当代码粘贴如下,大家只需在文本文档中粘贴并将后缀名改为.vssettings导入后就可以使用这个灰灰的GVGray了~


<UserSettings>
<ApplicationIdentity version="8.0"/>
<ToolsOptions>
<ToolsOptionsCategory name="Environment" RegisteredName="Environment"/>
</ToolsOptions>
<Category name="Environment_Group" RegisteredName="Environment_Group">
<Category name="Environment_FontsAndColors" Category="{1EDA5DD4-927A-43a7-810E-7FD247D0DA1D}" Package="{DA9FB551-C724-11d0-AE1F-00A0C90FFFC3}" RegisteredName="Environment_FontsAndColors" PackageName="Visual Studio Environment Package">
<PropertyValue name="Version">2</PropertyValue>
<FontsAndColors Version="2.0">
<Categories>
<Category GUID="{358463D0-D084-400F-997E-A34FC570BC72}" FontIsDefault="Yes">
<Items>
<Item Name="Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="SelectedText" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="ChangedText" Foreground="0x000000FF" Background="0x02000000" BoldFont="No"/>
</Items>
</Category>
<Category GUID="{40660F54-80FA-4375-89A3-8D06AA954EBA}" FontIsDefault="Yes">
<Items>
<Item Name="Plain Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="Selected Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="Inactive Selected Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
</Items>
</Category>
<Category GUID="{5C48B2CB-0366-4FBF-9786-0BB37E945687}" FontIsDefault="Yes">
<Items>
<Item Name="Plain Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="Selected Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="Inactive Selected Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="Current list location" Foreground="0x00A3DBFF" Background="0x01000007" BoldFont="No"/>
</Items>
</Category>
<Category GUID="{6BB65C5A-2F31-4BDE-9F48-8A38DC0C63E7}" FontIsDefault="Yes">
<Items>
<Item Name="Plain Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="Selected Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="Inactive Selected Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
</Items>
</Category>
<Category GUID="{8259ACED-490A-41B3-A0FB-64C842CCDC80}" FontIsDefault="Yes">
<Items>
<Item Name="Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="SelectedText" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="ChangedText" Foreground="0x000000FF" Background="0x02000000" BoldFont="No"/>
</Items>
</Category>
<Category GUID="{9973EFDF-317D-431C-8BC1-5E88CBFD4F7F}" FontIsDefault="Yes">
<Items>
<Item Name="Plain Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="Selected Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="Inactive Selected Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="Current list location" Foreground="0x00A3DBFF" Background="0x01000007" BoldFont="No"/>
</Items>
</Category>
<Category GUID="{9E632E6E-D786-4F9A-8D3E-B9398836C784}" FontIsDefault="Yes">
<Items>
<Item Name="Plain Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="Selected Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="Inactive Selected Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
</Items>
</Category>
<Category GUID="{A27B4E24-A735-4D1D-B8E7-9716E1E3D8E0}" FontName="Consolas" FontSize="10" CharSet="0" FontIsDefault="No">
<Items>
<Item Name="Plain Text" Foreground="0x001E1E1E" Background="0x00BABABA" BoldFont="No"/>
<Item Name="Selected Text" Foreground="0x00808080" Background="0x00E3E3E3" BoldFont="No"/>
<Item Name="Inactive Selected Text" Foreground="0x02000000" Background="0x00DBCDBF" BoldFont="No"/>
<Item Name="Indicator Margin" Foreground="0x02000000" Background="0x00BABABA" BoldFont="No"/>
<Item Name="Line Numbers" Foreground="0x00AF912B" Background="0x00BABABA" BoldFont="No"/>
<Item Name="CSS String Value" Foreground="0x00B55A5A" Background="0x02000000" BoldFont="No"/>
<Item Name="CSS Property Value" Foreground="0x00B55A5A" Background="0x02000000" BoldFont="No"/>
<Item Name="CSS Property Name" Foreground="0x005757B2" Background="0x02000000" BoldFont="No"/>
<Item Name="CSS Comment" Foreground="0x00488448" Background="0x02000000" BoldFont="No"/>
<Item Name="CSS Selector" Foreground="0x00000080" Background="0x02000000" BoldFont="No"/>
<Item Name="HTML Element Name" Foreground="0x00000080" Background="0x02000000" BoldFont="No"/>
<Item Name="HTML Entity" Foreground="0x005555AA" Background="0x02000000" BoldFont="No"/>
<Item Name="HTML Attribute Value" Foreground="0x00B15959" Background="0x02000000" BoldFont="No"/>
<Item Name="HTML Attribute" Foreground="0x004F4FB0" Background="0x02000000" BoldFont="No"/>
<Item Name="HTML Operator" Foreground="0x00A76262" Background="0x02000000" BoldFont="No"/>
<Item Name="HTML Server-Side Script" Foreground="0x006A5176" Background="0x02000000" BoldFont="No"/>
<Item Name="HTML Tag Delimiter" Foreground="0x004D4D4D" Background="0x02000000" BoldFont="No"/>
<Item Name="HTML Comment" Foreground="0x00488448" Background="0x02000000" BoldFont="No"/>
<Item Name="XML CData Section" Foreground="0x00808080" Background="0x02000000" BoldFont="No"/>
<Item Name="XML Delimiter" Foreground="0x00B45050" Background="0x02000000" BoldFont="No"/>
<Item Name="XML Name" Foreground="0x001515A3" Background="0x02000000" BoldFont="No"/>
<Item Name="XML Attribute" Foreground="0x004646AA" Background="0x02000000" BoldFont="No"/>
<Item Name="XML Attribute Value" Foreground="0x00B15959" Background="0x02000000" BoldFont="No"/>
<Item Name="XML Attribute Quotes" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="XML Text" Foreground="0x002E2E2E" Background="0x02000000" BoldFont="No"/>
<Item Name="XML Doc Tag" Foreground="0x004D4D4D" Background="0x02000000" BoldFont="No"/>
<Item Name="XML Doc Comment" Foreground="0x00488448" Background="0x02000000" BoldFont="No"/>
<Item Name="XML Comment" Foreground="0x00488448" Background="0x02000000" BoldFont="No"/>
<Item Name="Keyword" Foreground="0x00985252" Background="0x02000000" BoldFont="No"/>
<Item Name="Collapsible Text" Foreground="0x00808080" Background="0x02000000" BoldFont="No"/>
<Item Name="String" Foreground="0x00000080" Background="0x02000000" BoldFont="No"/>
<Item Name="Brace Matching (Rectangle)" Foreground="0x02000000" Background="0x00AA9CB0" BoldFont="No"/>
<Item Name="Excluded Code" Foreground="0x00808080" Background="0x02000000" BoldFont="No"/>
<Item Name="Number" Foreground="0x004A518C" Background="0x02000000" BoldFont="No"/>
<Item Name="Identifier" Foreground="0x00733738" Background="0x00BABABA" BoldFont="No"/>
<Item Name="Comment" Foreground="0x00488448" Background="0x02000000" BoldFont="No"/>
<Item Name="User Types" Foreground="0x00696249" Background="0x02000000" BoldFont="No"/>
<Item Name="Compiler Error" Foreground="0x00966464" Background="0x02000000" BoldFont="No"/>
<Item Name="Warning" Foreground="0x00008000" Background="0x02000000" BoldFont="No"/>
<Item Name="Syntax Error" Foreground="0x005454A6" Background="0x02000000" BoldFont="No"/>
<Item Name="Operator" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="Preprocessor Keyword" Foreground="0x00965140" Background="0x02000000" BoldFont="No"/>
</Items>
</Category>
<Category GUID="{A7EE6BEE-D0AA-4B2F-AD9D-748276A725F6}" FontIsDefault="Yes">
<Items>
<Item Name="Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="SelectedText" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="ChangedText" Foreground="0x000000FF" Background="0x02000000" BoldFont="No"/>
</Items>
</Category>
<Category GUID="{CE2ECED5-C21C-464C-9B45-15E10E9F9EF9}" FontIsDefault="Yes">
<Items>
<Item Name="Plain Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="Selected Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="Inactive Selected Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
</Items>
</Category>
<Category GUID="{EE1BE240-4E81-4BEB-8EEA-54322B6B1BF5}" FontIsDefault="Yes">
<Items>
<Item Name="Plain Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="Selected Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
<Item Name="Inactive Selected Text" Foreground="0x02000000" Background="0x02000000" BoldFont="No"/>
</Items>
</Category>
</Categories>
</FontsAndColors>
</Category>
</Category>
</UserSettings>






来源于这两个网址:

http://blog.csdn.net/huzgd/article/details/6069013

http://blog.csdn.net/gvgarven/article/details/19639719



  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值