您的位置:首页 > 其它

使用Visual Studio + Visual Assist X + MDK(编译器) 构建STM32开发环境

2013-10-12 12:36 369 查看

自己有一块STM32103的开发小板,想学学STM32开发,在网上搜搜入门教程,却发现,这些教程真是太令人恶心了!他们要每一次新建一个项目都要Copy一个比整个源代码大出几千倍的Standard Peripheral Library,每一次编写代码都需要使用老掉牙的、代码提示功能不全的IDE,每一次......这叫人怎么能忍受得了?

我打算给它换一个IDE,换一种新建项目的方法。嗯嗯,我是这样想的,也是这么做的。

我喜欢使用Visual Studio,这是一个强大的IDE,加上Visual Assist X的代码提示、代码高亮等等功能的辅助,用来开发C/C++工程简直棒极了!

既然如此,接下来我就介绍如何使用Visual Studio+Visual Assist X+MDK构建STM32开发环境。

首先,下载Visual Studio和Visual Assist X,MDK,这个很简单。不过,为了我们能够较为方便地使用STM32的各种功能,大家还是再下载一个Standard Peripheral Library吧,目前最新版本为3.5,在 ST官网 http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF257890 可以下载到,不过这个链接有可能失效,大家还是Google一下吧。

接下来,在安装MDK的时候我们要记住MDK的安装路径,因为里面有我们需要的编译器。

例如,我的MDK是安装在

C:\STM32\Keil

那么,MDK的编译器就坐落在

C:\STM32\Keil\ARM\ARMCC\bin

(补充:这个是ARM的编译器,如果你有DS-5的编译器,当然也可以用,但是我推荐使用这个,因为这个最简单,而且也不赖。)

好,第一步,建立专门的目录

好的,首先,我们先要确定一个项目位置,用来专门存放STM32项目,例如,我把它定为:

D:\STM32


然后,我们把Standard Peripheral Library里的

Libraries


文件夹复制到

D:\STM32


接着,打开Visual Studio,在D:\STM32目录下新建一个项目(记得为解决方案新建一个目录噢,不然你的目录会很乱的噢!)。

好,第二步,添加路径以使Visual Assist X正常工作。

好的,新建好项目以后,点击 视图 - 属性管理器,然后 双击 Win32 - Microsoft.Cpp.Win32.user - 进入通用属性 - VC++目录,将以下三个文件夹加入包含目录:

D:\STM32\Libraries\CMSIS\CM3\CoreSupport
D:\STM32\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
D:\STM32\Libraries\STM32F10x_StdPeriph_Driver\inc


将上面三个目录和这个目录加入源代码目录:

D:\STM32\Libraries\STM32F10x_StdPeriph_Driver\src

这样,Visual Assist X就能正常工作了!(记得启用它的所有功能噢,不然体验不到它所带来的“快”感的)

以上要做的是一次性的事情,不过以下要做的是每一次新建项目都要做的噢。

好,第三步,修改项目设置、添加文件

在左边的项目资源管理器里选中项目,右键属性-配置属性-生成事件-预生成事件

修改命令行为:

echo cleanning ...

cd "$(OutDir)"
if exist objs.txt del objs.txt *.o *.axf


再修改:

配置属性-自定义生成步骤-常规
命令行:

echo Linking ...
set path=C:\STM32\Keil\ARM\ARMCC\bin;%path%
set LibPath=..\..\Libraries

set IncludeParam=-I"%LibPath%\CMSIS\CM3\CoreSupport"
set IncludeParam=-I"%LibPath%\CMSIS\CM3\DeviceSupport\ST\STM32F10x" %IncludeParam%
set IncludeParam=-I"%LibPath%\STM32F10x_StdPeriph_Driver\inc" %IncludeParam%
set IncludeParam=-I"%LibPath%\STM32F10x_StdPeriph_Driver\src" %IncludeParam%

cd "$(OutDir)"

armlink --output "__Image.axf" --ro-base 0x08000000 --entry 0x08000000 --rw-base 0x20000000 --entry Reset_Handler --first __Vectors --via "objs.txt"

fromelf "__Image.axf" --i32 --output "$(TargetPath).hex"

echo output on $(TargetPath).hex

copy "$(TargetPath).hex" D:\z.hex


输出:

$(TargetPath)


以后每新建一个项目都这么修改一次属性。

添加一个main.cpp,选中它,右键-属性,将常规 - 项类型 修改为 自定义生成工具,点击应用。

将自定义生产工具 - 常规里的各个项目修改为(复制粘贴就可以了) :

命令行:

Building %(Filename)%(Extension)
set path=C:\STM32\Keil\ARM\ARMCC\bin;%path%
set LibPath=..\..\Libraries

set IncludeParam=-I"%LibPath%\CMSIS\CM3\CoreSupport"
set IncludeParam=-I"%LibPath%\CMSIS\CM3\DeviceSupport\ST\STM32F10x" %IncludeParam%
set IncludeParam=-I"%LibPath%\STM32F10x_StdPeriph_Driver\inc" %IncludeParam%
set IncludeParam=-I"%LibPath%\STM32F10x_StdPeriph_Driver\src" %IncludeParam%

armcc "%(Identity)" -c -o "$(OutDir)%(Filename).o" %IncludeParam% --cpu Cortex-M3 -O3 -Otime
echo "$(OutDir)%(Filename).o">>"$(OutDir)objs.txt"


输出:

$(OutDir)%(Filename).o;$(OutDir)objs.txt


以后每新建一个文件都这样设置一次。(新建.s等等汇编文件也可以用这个命令行,因为armcc也可以编译.s)。

好了,一切OK,你可以尽情地享受Visual Studio集成环境所带来的无限好处了:

精准、快速的代码提示;

令人心旷神怡的代码高亮;

按F7就可以马上编译;

如果你喜欢,再在命令行里加一两句话,按F7就可以自动编程咯!编写一个简单的程序,然后按F7编译了。生成的文件会存放在 (解决方案目录\Debug)里面。

好了,教程到此结束了,祝大家STM32之旅愉快^_^
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: