本帖最后由 samos2011 于 2016-2-16 17:35 编辑
在嵌入式开发过程中,编写代码其实是要占用很大一部分时间的,但编码的体验,uVision确实不怎么样,在试用过各种各样的IDE后,唯有Visual Studio的IntelliSense令我爱不释手.编码体验号称宇宙第一一点不为过.
可能论坛里很多人未必使用过Visual Studio(后面简称VS),对智能感知的体验也许没有,但肯定也有很大一部分号称全能型的,上位机,下位机都会写的那种人,应该就比较熟悉VS了
嵌入式集成开发环境通常提供编辑,编译,仿真三大功能,本文教你使用VS实现编辑,编译(生成二进制文件)两大功能.
- 主要特性:
支持多种编译器,(ARMCC,GCCARM,...)
每个源文件可单独设置编译选项
IntelliSense本身具有实时错误与警告
双击错误列表可光标定位
可生成 [.lib] [.hex] [.bin]文件,使用GCC时可生成[.a]文件
灵活的用户命令功能,编译前执行,编译后执行
实现uVision的所有编译控制功能
如何操作:
新建[项目]->[Visual C++]->[生成文件项目]
不需要设置什么,点完成.
添加工程文件(.c .cpp .s .lib),汇编文件.s需要修改
[项类型]为
[C/C++ 编译器],
设置工程,如图:
主要设置,输出目录,包含目录,编译器选项,连接器选项,预处理器定义,指定分散加载文件等.
附上例子工程,包含RTX4.73库工程(CM0,CM3,CM4F的lib,小端模式),以及基于RTX的Blinky工程
vs rtx473.rar
(429.52 KB, 下载次数: 179)
目录说明:
SRC RTX4.73源代码,拷贝自: C:\Keil\ARM\RL\RTX
lib VS输出的lib文件
RTX_Lib.sln VS解决方案文件,直接打开即可
例子在:
MCB1200
MCB4300 均拷贝自: c:\keil\arm\boards\keil
看鼠标移到成员上显示的信息以及注释:
非活动的代码块直接灰色:
控制命令说明:
/ccflag= 指定编译器选项
/asflag= 指定汇编器选项
/ccdef= 编译器预定义,已过时!
/asdef= 汇编器预定义
/ldflag= 连接器选项
/link= 指定分散加载文件
/microlib 使用MicroLib,没有则使用标准库
/cmdline 显示完整编译器命令行
/mcu= 指定CPU,如/mcu=Cortex-M3,若要查看armcc编译器支持的cpu可使用 armcc --cpu=list
/编译器包含路径= 只能书写在[包含搜索路径]
/汇编器包含路径= 只能书写在[程序集搜索路径]
/编译前1= 编译前执行的用户命令,数量不限,1表示执行,0表示不执行
/编译后1= 编译后执行的用户命令,数量不限,1表示执行,0表示不执行
其它可以书写在
[强制使用程序集]与
[附加选项]里,不区分大小写,用分号隔开
如:/ccflag=-O3 -g;/asdef=__RTX USE_OS=1;
目标文件在
[输出]栏设置,由后缀名决定输出的格式,没有后缀名则仅输出.axf文件
编译器预定义直接书写在
[预处理器定义]里面即可,VS要求使用分号风格,不需要/ccdef控制,
若要为某个文件指定不同的编译选项,请看图:
主要是:$(AdditionalOptions);/asdef=NO_CRP 有了$(AdditionalOptions);则继承工程设置,再额外添加一个汇编器定义,没有这一句则不继承工程设置,其他栏也一样,你懂的.
说明可能不是特别详细,但我相信聪明的你结合例子工程应该一看就明白了!
有不明白的或者BUG,或者建议欢迎提出!
如果你还没有安装VS,建议下载VS2015社区版,免费。较低版本没试过,不保证能用!
附加:armcc支持的CPU列表:
C:\Keil\ARM\ARMCC\bin>armcc --cpu=list
The following arguments to option 'cpu' can be selected:
--cpu=ARM7EJ-S
--cpu=ARM7TM
--cpu=ARM7TDM
--cpu=ARM7TDMI
--cpu=ARM710T
--cpu=ARM720T
--cpu=ARM740T
--cpu=ARM7TM-S
--cpu=ARM7TDMI-S
--cpu=ARM9TDMI
--cpu=ARM920T
--cpu=ARM922T
--cpu=ARM940T
--cpu=ARM9E-S
--cpu=ARM9EJ-S
--cpu=ARM926EJ-S
--cpu=ARM946E-S
--cpu=ARM966E-S
--cpu=ARM968E-S
--cpu=Cortex-M0
--cpu=Cortex-M0plus
--cpu=SC000
--cpu=Cortex-M1
--cpu=Cortex-M1.os_extension
--cpu=Cortex-M1.no_os_extension
--cpu=Cortex-M3
--cpu=Cortex-M3-rev0
--cpu=SC300
--cpu=Cortex-M4
--cpu=Cortex-M4.fp
--cpu=Cortex-R4
--cpu=Cortex-R4F
最后,VS的IntelliSense的激动人心功能有请你自己去探索!我就不截图了。