IARSTMEVKIT软件开发入门指南.docx
《IARSTMEVKIT软件开发入门指南.docx》由会员分享,可在线阅读,更多相关《IARSTMEVKIT软件开发入门指南.docx(18页珍藏版)》请在冰豆网上搜索。
IARSTMEVKIT软件开发入门指南
STMEVKIT-STM32F10xx8
软件开发入门指南
目录
1EWARM安装1
1.1第一步:
在线注册1
1.2第二步:
下载软件2
1.3第三步:
安装EWARM3
2基于STMEVKIT-STM32F10xx8的示例代码运行6
2.1GPIODemo6
2.2JoyStickDemo8
3EWARM的项目配置选项10
3.1GeneralOptions10
3.2C/C++Compiler11
3.3Linker14
3.4Debugger15
4参考17
4.1手册17
4.2网站17
1EWARM安装
1.1第一步:
在线注册
基于STMEVKIT的两个示例项目均使用IAREmbeddedWorkbenchforARM(EWARM)进行开发。
您可以通过以下链接下载EWARMKickStart版本(32KB代码大小限制),此版本免费使用。
在如上的页面中点击Continue…并填写您的注册信息。
点击Submitregistration完成本步骤。
1.2第二步:
下载软件
几分钟之后,在您的注册信息中提供的信箱将会自动收到一封邮件,如下所示:
点击邮件中的链接,打开下载页面,如下图所示:
现在您就可以下载安装EWARMKickStart版本的安装程序了,可以选择HTTP下载,也可以选择FTP下载。
请保存安装程序到本地磁盘。
红色框中为安装过程所需的licensenumber和licensekey。
1.3第三步:
安装EWARM
1)双击已经下载的安装文件EWARM-KS-WEB-5302,选择InstallIAREmbeddedWorkbench:
2)继续安装过程,直到EnterUserInformation,填入个人信息和已经获得的licensenumber。
3)点击Next,复制已经获得的LicenseKey到以下的窗口,注意必须将“#”以及“#”之前的字符全部复制。
4)继续安装过程,直到SetupComplete。
点击Finish,结束安装过程。
2基于STMEVKIT-STM32F10xx8的示例代码运行
2.1GPIODemo
项目描述
==============
这个示例描述了如何使用GPIOBSRR(Portbitset/resetregister)寄存器以及BRR(Portbitresetregister)寄存器来触发IO输入输出,板上的LD2,LD3,LD4,LD5将轮流闪亮。
硬件配置
=================
-STLink_USB:
跳线选择ST-LINK。
-使用一根USB线,连接CN4(ST-LINK)和PC。
运行demo
===============
请按照以下步骤运行demo程序:
-打开EWARM集成开发环境IDE:
选择Start->Programs->IARSystems->IAREmbeddedWorkbenchforARMKickStart->IAREmbeddedWorkbench
-打开Workspace:
在EWARMIDE菜单中选择File->Open->Workspace。
在OpenWorkspace对话框中,在[......]\IAR-STMEVKIT\GPIO路径下,选择文件GPIODemo.eww,点击Open打开workspace文件:
-Build项目:
在Workspace面板里,右击项目名(GPIODemo),选择RebuildAll来编译和链接所有的项目文件。
你也可以通过菜单选项Project->RebuildAll来实现相同的功能。
这步完成之后,在Build面板里将提示没有警告和错误的信息。
-Download程序theprogram:
在工具栏里点击
或者从菜单栏里选择Project->Debug来下载代码到flash空间。
调试器将会在main()函数的入口处停止:
-调试和执行程序:
关于程序调试的详细信息,请参考EWARM_UserGuide.pdf的Part.4Debugging章节(您可以从菜单栏里选择Help,打开ARMEmbeddedWorkbenchUserGuide)。
这里我们仅从工具栏里点击点击
来运行程序(也可使用菜单栏Debug->Go)。
-代码运行正常,板上的LD2,LD3,LD4,LD5将轮流闪亮。
2.2JoyStickDemo
项目描述
==============
这个示例描述了通过对USB的配置使用,以及板上的操纵杆,来模拟鼠标上下左右移动的功能。
硬件配置
=================
-STLink_USB:
跳线选择ST-LINK。
-使用一根USB线,连接CN4(ST-LINK)和PC。
-程序运行之后,使用一根USB线,连接CN2和PC。
运行demo
===============
-build,download,以及debug的步骤请参考如上的GPIO示例。
Workspace工程文件位于[......]\IAR-STMEVKIT\JoyStick路径下。
-点击
运行程序之后,使用一根USB线,连接CN2和PC,再上下左右四个方向移动板上的操纵杆,PC上的鼠标光标将跟随操纵杆上下左右移动。
3EWARM的项目配置选项
为了使用EWARM来构建STM32的应用程序,您需要了解EWARM不同的配置选项的含义,例如deviceselection,compiler,assembler,linker,debugger等等。
作为一个例子,请在Workspace面板里右击项目名GPIODemo并选择Options…来打开Optionsfornode“xxx”对话框。
同样的,您也可以使用菜单栏Project->Options…打开对话框。
3.1GeneralOptions
从Category列表中选择GeneralOptions。
在Target选项卡中,根据具体的硬件,从菜单中选择正确的MCU(例如STSTM32F10xx8)。
3.2C/C++Compiler
从Category列表中选择C/C++Compiler。
在Language选项卡中,选择所需要使用的编程语言。
你也可以指定使用strictISO/ANSI编程语言,或者允许IAR的扩展关键字(例如__irq,__ramfunc,等等)。
C
IARC/C++编译器默认使用ISO/ANSIC标准,遵循ISO9899:
1990标准,也就是我们熟知的ANSIC。
EmbeddedC++
EmbeddedC++,C++编程语言的一个子集,专为嵌入式编程所设计。
它是EmbeddedC++Technicalcommittee技术委员会定义的一个标准。
支持如下的C++特性:
类、多态、操作符和函数名重载、new和delete、内联函数。
那些消耗资源影响速度和代码大小的特性被排除,像模板类、多重和虚拟继承、异常处理、运行时类型信息、名字空间等等。
ExtendedEmbeddedC++
ExtendedEmbeddedC++是C++更大的一个子集,由IARSystems定义。
和EmbeddedC++相比,它增加了如下的特性:
模板、多重和虚拟继承、名字空间、mutable属性、操作符转换static转换const转换、以及reinterpret转换。
Automatic
如果选择Automatic,编程语言将会根据文件编译时的扩展名自动进行选择。
扩展名为c将会按照C源文件进行编译,扩展名为cpp将会按照ExtendedEmbeddedC++源文件进行编译。
在Optimizations选项卡中,你可以选择编译优化的级别和类型。
Level
IARC/C++编译器支持不同的优化级别,在最高的优化级别中,你可以指定按照Speed,Size或者Balanced优化。
●None(最好的调试支持)
●Low
●Medium
●High,Balanced(自动的在速度和大小之间作平衡)
●High,Speed(速度优先)
●High,Size(代码大小优先)
Enabledtransformations
为了产生最优的目标码,编译器将会对源码作很多的转换。
根据不同的优化级别,编译器自动执行下面的转换,也可以在复选框中自己选择。
●Commonsubexpressionelimination
●Loopunrolling
●Functioninlining
●Codemotion
●Type-basedaliasanalysis
●Staticvariableclustering
●Instructionscheduling
更多关于优化级别和转换的信息,请参考EWARM_DevelopmentGuide.pdf的Controllingcompileroptimizations章节。
在Preprocessor选项卡中,你可以定义符号(宏),添加编译器使用的include路径。
Additionalincludedirectories
这个选项可以添加#include文件路径。
在查找标准的include路径之前,在这里列出的路径将首先被查找。
从更好的移植性考虑,你可以使用$TOOLKIT_DIR$来定义EWARM的路径,使用$PROJ_DIR$来定义当前项目文件的路径。
DefinedSymbols
可以方便的指定一个选项或者值。
你可以为整个项目定义符号的类型,例如:
TESTVER=1/*equalto:
#defineTESTVER1*/
TESTDEF/*equalto:
#defineTESTDEF*/
注意在=周围没有空格。
Definedsymbols选项和#define表达式作用相同。
3.3Linker
从Category列表中选择Linker。
在Config选项卡中,你可以指定linker配置文件的路径和名字,也可以定义符号。
LinkerConfigurationFile
Linker配置文件用来指定在memory中代码和数据的位置和大小。
你也可以使用复选框Overridedefault来覆盖默认的Linker配置文件,同时指定你自己的配置文件。
$TOOLKIT_DIR$或$PROJ_DIR$可以用来提高程序的可移植性。
你也可以点击Edit来打开Linkerconfigurationfileeditor,在IDE的辅助下创建自己的linker配置文件。
Configurationfilesymboldefinitions
使用这个文本框来定义在linker配置文件中使用的常量符号。
这些符号和在linker配置文件中使用definesymbol指令定义的符号作用相同。
更多关于linker配置文件的信息,请参考EWARM_DevelopmentGuide.pdf的LinkingusingILINK以及Linkingyourapplication章节。
3.4Debugger
从Category列表中选择Debugger。
在Setup复选框中,从Driver下拉菜单中选择ST-Link。
STMEVKIT板子包含一个板上的仿真器ST-LINK。
Runto复选框用来指定C-SPY调试器运行之后停止的位置,默认的位置是main()函数。
在Download选项卡中,你可以配置程序代码下载到RAM还是flash。
Verifydownload
这个选项用来验证下载的代码映像可以正确的从memory空间中读出。
Suppressdownload
这个选项用来调试已经驻于memory空间中的应用程序。
当选择这个选项时,代码将不会被下载,而会保留flash中的当前内容。
Useflashloader(s)
这个选项用来指定下载代码到flash中所用的一个或多个flashloader。
如果对于指定的芯片(如STM32F10xx8)flashloader已经存在,则使用default。
关于更多flashloader的信息,请参考用户手册FlashLoaderGuide.pdf(位于EWARM的doc路径)。
4参考
4.1手册
使用EWARM开发嵌入式系统时的更多帮助,你可以参考如下的手册:
关于EWARM的基本使用方法,例如创建项目、管理项目、编辑、编译链接和调试,请参考下面的文档:
EWARM_UserGuide.pdf->Part2.Tutorials
EWARM_UserGuide.pdf->Part3.Projectmanagementandbuilding
EWARMC-SPY调试器的使用,请参考下面的文档:
EWARM_UserGuide.pdf->Part4.Debugging
集成开发环境IDE的设置,例如窗口、菜单、对话框等,请参考下面的文档:
EWARM_UserGuide.pdf->Part7.Referenceinformation
嵌入式应用程序的开发和程序编写,请参考下面的文档:
EWARM_DevelopmentGuide.pdf->Part1.UsingtheIARbuildtools
代码和数据的存放,linker配置文件,请参考下面的文档:
EWARM_DevelopmentGuide.pdf->Part1.->LinkingusingILINK
EWARM_DevelopmentGuide.pdf->Part1.->Linkingyourapplication
EWARM_DevelopmentGuide.pdf->Part2.->Thelinkerconfigurationfile
IAR对标准C/C++语言的扩展,请参考下面的文档:
EWARM_DevelopmentGuide.pdf->Part2.->Compilerextensions
EWARM_DevelopmentGuide.pdf->Part2.->Extendedkeywords
EWARM_DevelopmentGuide.pdf->Part2.->Pragmadirectives
EWARM_DevelopmentGuide.pdf->Part2.->Intrinsicfunctions
4.2网站
更多关于IARSystems开发工具的信息,请登陆我们的网站:
IAREWARM(重点总结,特征特点,支持的ARM核以及芯片,免费的评估版以及KickStart版本,用户手册,代码示例,生动的flash教程等等):
IARPowerPacforARM(RTOS,文件系统FileSystem,TCP/IP栈,USB栈)
IARvisualSTATE(UML状态图的软件模型及设计工具)