在Visual Studio下维护嵌入式系统C源码的一个实例

嵌入式系统,似乎顾名思义就是嵌入到别的东西里的软硬件系统;其实也说不清楚,现在手机、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将搜索所有符合条件的文件加到工程中。

生成的项目如图示:

在Visual Studio下维护嵌入式系统C源码的一个实例_第1张图片

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

在Visual Studio下维护嵌入式系统C源码的一个实例_第2张图片

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

在Visual Studio下维护嵌入式系统C源码的一个实例_第3张图片

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

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

你可能感兴趣的:(嵌入式)