《stm32嵌入式系统开发实战指南》一3.3 创建工程

3.3 创建工程

本小节以一个简单的DEMO为例,向读者展示如何创建一个工程实例。在介绍之前,应首先从ST公司官方网站获得STM32FXXX系列芯片的驱动库,其官方网址为:http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32f10x_stdperiph_lib.zip。接下来具体介绍操作步骤。
1)启动IAR EWARM,如图3.25所示。

image

2)单击“File”→“New”→“Workspace”,新建工作空间,如图3.26所示。

image

3)单击“Project”→“Create New Project”,如图3.27所示。

image

4)在完成步骤3后,弹出如图3.28所示对话框,选择“Empty project”,并单击“OK”按钮。
5)完成步骤4后,弹出如图3.29所示对话框,读者选择或创建适当的工作路径,并给该工程命名,此处命名为“Demo1”,最后单击“保存”按钮,创建后如图3.30所示。需要注意的是,工程保存路径最好不要包含空格或中文字符。本例程中选择的工作路径为G:DemoProjectDemo1。
6)给工程创建源文件分类目录,单击“Project”→“Add Group”,如图3.31所示。

image
image

image

7)在完成步骤6后,弹出如图3.32所示对话框,输入源文件分类目录名称,并单击“OK”按钮。

image

重复步骤6和步骤7,直至创建完所有源文件目录。
注意?IAR EWARM开发环境可创建源文件目录的子目录,当“活动条目”为“创建的工程”时,创建的是根目录,如图3.33所示;当“活动条目”为“源文件目录”时,创建的是与其对应的子目录,如图3.34所示。

image

image

创建目录完毕,如图3.35所示。

image

8)添加源文件。首先将ST公司提供的驱动解压缩,将其中的Librarys文件夹拷贝至G:DemoProjectCommon路径下,如图3.36所示。

image

将STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_StdPeriph_TemplateEWARM文件夹下的stm32f10x_flash.icf、stm32f10x_flash_extsram.icf、stm32f10x_nor.icf、stm32f10x_ram.icf四个文件拷贝至DemoProjectDemo1目录下,创建工程如图3.37所示。(实际上,仅需要其中一个即可,稍后介绍该文件。)

image

添加源文件有两种方法:其一,在对应的源文件目录上单击右键,在弹出菜单中选择“Add Files”如图3.38所示;其二,选中源文件目录,然后单击“Project”→“Add Files”。在弹出的对话框中选择相应的源文件,如图3.39所示。
image

image

源文件目录中对应的源文件如下:
CMSIS源文件目录:system_stm32f10x.c,位于DemoProjectCommonLibrariesCMSISCM3DeviceSupportSTSTM32F10x中。
EWARMV6源文件目录:startup_stm32f10x_cl.s,位于DemoProjectCommonLibrariesCMSISCM3DeviceSupportSTSTM32F10xstartupiar中。
StdPeriph_Driver源文件目录:stm32f10x_xxx.c(xxx代表ST公司约定的外设英文缩写),位于DemoProjectCommonLibrariesSTM32F10x_StdPeriph_Driversrc中,读者可根据实际用到的外设添加;或全部添加,只引用需要的头文件。
User源文件目录:main.c、stm32f10x_it.c、stm32f10x_it.h、stm32f10x_conf.h,其中stm32f10x_it.c、stm32f10x_it.h、stm32f10x_conf.h可直接从官方驱动库的例程中拷贝,存放于STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_StdPeriph_Template文件夹中。用户仅需自己创建main.c文件。
9)创建好main.c文件后,在main.c源文件中添加如下代码:

/*************************************************************
  * File name:                    DemoProject/Demo1/main.c 
  * Author :                       Li Zhiming
  * IAR EWARM Version:             V6.3
  * StdPeriph_Driver Version:    V3.5.0
  * Update Version:        V1.0
  * Update Date:                   08-Aug-2012
  ***********************************************************/  

/*Includes -------------------------------------------------*/
#include "stm32f10x.h"

/*Private variables ----------------------------------------*/
GPIO_InitTypeDef GPIO_InitStructure;

/*Private function prototypes -------------------------------*/
void GPIOToggleBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */
int main(void)
{
  
  /* GPIOD Periph clock enable */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);

  /* Configure PD0 and PD2 in output pushpull mode */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_2;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOD, &GPIO_InitStructure);

  GPIO_ResetBits(GPIOD,GPIO_Pin_0|GPIO_Pin_2);
  
  /* Infinite loop */
  while (1)
  {
    GPIOToggleBits(GPIOD,GPIO_Pin_0|GPIO_Pin_2);
    for(unsigned long i = 0;i<1000000;i++);
  }
}

/**
  * @brief  Toggles the selected GPIO Pin.
  * @param  GPIOx: Specifies the GPIO Port. 
  *   This parameter can be of following parameters:
  *     @arg GPIOx
  * @param  GPIO_Pin: Specifies the Pin to be toggled. 
  *   This parameter can be one of following parameters:
  *     @arg GPIO_Pin_x
  * @retval None
  */
void GPIOToggleBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
  /* Check the parameters */
  assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
  assert_param(IS_GPIO_PIN(GPIO_Pin));
  
  GPIOx->ODR ^= GPIO_Pin;
}
/***************************END OF FILE**********************/

添加后的工程如图3.40所示,后续将介绍工程的设置。

image

10)工程设置。在“Workspace”区域的工程根目录上单击右键,在弹出菜单中单击“Options”,如图3.41所示。

image

11)单击“Options”后弹出如图3.42所示对话框。
单击左侧列表框中的“General Option”,然后单击“Target”选项卡中“Device”后面的图标,设置处理器类别,根据实际选用的器件选择对应的型号,本工程采用的器件是ST STM32F107VCT6,可按照图3.43进行选择。

image

12)配置头文件包含路径。图3.42中选择“C/C++ Compiler”,再选择“Preprocessor”选项卡,然后在“Additional include directories”的文本框中输入项目所需索引的头文件地址。该工程基于ST公司官方驱动库,按照官方库的要求,需要在“Defined symbols”中添加预编译条件,“USE_STDPERIPH_DRIVER”表示使用官方驱动库,等同于源程序文本中的“#define USE_STDPERIPH_DRIVER”;“STM32F10X_CL”表示所使用芯片是STM32F10X的互联型微控制器,等同于源程序文本中的“#define STM32F10X_CL”。
配置完成后如图3.44所示。
image

13)在图3.42中选择“Linker”,再选择“Config”选项卡,勾选“Override Default”复选框,单击文本框右侧的文件选择按钮,在项目根目录中选择要连接配置的文件(例如,若准备将程序在Flash中运行,则选择stm32f10x_flash.icf),配置完成如图3.45所示。
14)选择“Linker”,再选择“List”选项卡,勾选“Generate linker map file”复选框,该选项用于指示生成链接映像文件,该文件主要包含了链接信息、程序起始地址信息、运行模式信息,以及目标文件占用代码、数据和常数空间的大小等,最后给出了在链接过程中出现的警告和错误信息。配置完成后如图3.46所示。

image

15)选择“Debugger”,在“Setup”选项卡的“Driver”下拉列表中选择仿真器的类型,本教程中使用的是J-Link,因此选中“J-Link/J-Trace”。若要想调试过程中程序从main函数处作为执行起点,则勾选“Run to”,并在下面的文本框中输入main。配置完成后如图3.47所示。

image

至此,整个工程已配置完毕,选择“Project”菜单中的“Make”,工程进行编译,如图3.48所示。
编译完成后,选择“Project”菜单中的“Download and Debug”,即可开始代码的调试,如图3.49所示。

image

image

至此,在IAR EWARM下的工程创建和配置已讲述完毕,关于IAR EWARM开发环境其他选项的设置方法可参考开发环境的帮助手册。本小节仅对工程实现的必要配置进行初步设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值