嵌入式系统,似乎顾名思义就是嵌入到别的东西里的软硬件系统;其实也说不清楚,现在手机、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要方便很多,应该说微软在这一点上还是做得非常好的。
分享到:
相关推荐
Visual Studio Code简称VS Code,是非常流行的跨平台编辑器,是微软的免费开源产品,可以运行在Windows、Linux、Mac Os X上使用。轻量、简洁、插件众多、功能强大而被各类程序员追捧,用于开发嵌入式C语言的代码也是...
用visual studio 2005开发嵌入式wince应用程序需要以下开发环境!简单易读!刚开始学习,希望多交流!
Mastering Visual Studio 2017_Code 源码 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
Visual Studio 2003/2005 经典界面框架及实例,整天用VS2005,大家对它的界面应该在熟悉不过了吧,此处提供源码及实例下载,绝对是.NET开发工程师想要的东西。 下载前可以参见...
如何在visual studio调试 .net 源码
微软官方提供的Visual Studio 2010彻底卸载工具,本人已亲测。用它可以轻松彻底地删除Visual Studio 2010以及它诸多的依赖项,让你彻底从机器上删除Visual Studio 2010。支持Visual Studio 2010 各种版本。 微软官方...
本系统运用Microsoft Visual Studio 2005平台开发 运行需在安装.NET 2.0 环境下,安装.net过程无需任何参数 以下为安装.NET 2.0的系统要求: 1、支持的操作系统 Windows 2000 Service Pack 3; Windows 98; Windows ...
[NET源码]C#学习的101个经典例子VisualStudio2008版.rar
企业管理系统源码(初级)_ Visual Studio2005 C#
多线程在Visual_Studio_C_的应用实例教程 多线程在Visual_Studio_C_的应用实例教程
嵌入式开发系列课程(7):使用Visual Studio
社区信息管理系统源码_ Visual Studio2005 C#社区信息管理系统源码_ Visual Studio2005 C#
VisualC 实效编程 42 嵌入式电子钟VisualC 实效编程 42 嵌入式电子钟VisualC 实效编程 42 嵌入式电子钟VisualC 实效编程 42 嵌入式电子钟VisualC 实效编程 42 嵌入式电子钟VisualC 实效编程 42 嵌入式电子钟VisualC ...
Visual Studio 2017平台下,C++编写MathLibray dll,并在MathClient调用,内含sln工程文件。
餐饮系统 visual studio c# 餐饮系统 visual studio c# 餐饮系统 visual studio c#
在Visual Studio .Net中创建Active X组件C++源代码程序小实例visual studio.net
visual studio c# 串口调试助手源码,支持win7-win10 自动检测系统串口,支持检测usb转串口,支持热插拔,支持自动检测插入的串口。
如何在visual studio 2010 中使用c语言
Visual C++ Redistributable for Visual Studio 2015 Visual C++ Redistributable for Visual Studio 2015
因为这是一个离线的文件,需要安装到visual studio中,怎么操作呢? 也是有办法的,不能直接像普通的exe文件一样双击就可以安装,他需要利用visual studio环境下的vsixinstaller.exe可执行程序来安装。我们需要...