zoukankan      html  css  js  c++  java
  • MDK建立STM32F103*开发模板

    一、整体流程

    1、获取ST库--STM32F10x_StdPeriph_Lib_V3.5.0

    2、新建文件夹并加载文件

    3、新建工程

    4、给工程添加组

    5、设置"Target Option"

    6、设置J-link选项

    二、获取ST库

      这里用野火光盘提供的"ST库3.5.0源码"--STM32F10x_StdPeriph_Lib_V3.5.0,也可以从ST公司的官网下载,下载地址是“http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF257890”。

    三、新建文件夹并添加文件

      先新建一个顶层文件夹Template,然后依次建立以下子文件夹。

    1、DOC

      此目录存放说明文档,对程序的一些简要说明、用法之类,通常放readme.txt。

    2、Include

      该目录集中存放头文件,将下面列出的库中的头文件拷贝到这个文件夹下。

       STM32F10x_StdPeriph_Lib_V3.5.0/Librarys/CMSIS/CM3/CoreSupport/core_cm3.h

         STM32F10x_StdPeriph_Lib_V3.5.0/Librarys/CMSIS/CM3/DeviceSupport/ST/STM32F10x/stm32f10x.h以及该目录下的system_stm32f10x.h。

       STM32F10x_StdPeriph_Lib_V3.5.0LibrariesSTM32F10x_StdPeriph_Driverinc下的所有头文件,比如说misc.h、stm32f10x_adc.h等。

       STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_StdPeriph_Templatestm32f10x_conf.h以及该目录下的stm32f10x_it.h。  

    3、Libraries

      再新建两个子目录:CMSIS和FWLIB

    ①CMSIS

     存放ARM公司为cm3内核专一定制的内核文件接口,将下面列出的库中的文件拷贝到这个文件夹下。

      STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3CoreSupportcore_cm3.c

      STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10xsystem_stm32f10x.c

      再在CMSIS中新建一个子文件夹startup,将下面列出的库中的文件拷贝到这个文件夹下。

      STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10xstartuparm所有文件拷到该目录。

    ②FWLIB

      存放STM32的外设库,将下面列出的库中的文件拷贝到这个文件夹下。

      STM32F10x_StdPeriph_Lib_V3.5.0LibrariesSTM32F10x_StdPeriph_Driversrc所有文件。

    4、Listing

      该目录是MDK生成信息输出目录,存放代码分布(.map和.lst)。

    5、Output

      该目录是MDK生成信息输出目录,存放目标文件(.o)、调试文件(.axf)、下载文件(.hex)、依赖文件(.d)等。

    6、Project

      再新建一个子目录RVMDK(uv4),将来MDK的工程就建在这个目录中。之所以这样处理,是因为可能将来我们会在IAR环境下编译程序,这个时候只需要在Project目录下新建一个针对IAR的目录,就可以方便的切换开发环境。

    7、User

      存放用户程序,以后写程序的文件存放在该目录,先把库中的用户程序添加进来,建立一个完整模板。

      STM32F10x_StdPeriph_Lib_V3.5.0ProjectSTM32F10x_StdPeriph_Templatemain.c和stm32f10x_it.c。

    8、keilkill.bat

      在顶层目录中,添加MS-DOS批处理文件keilkill.bat。当双击这个工具的时候,会将Output目录中生成的中间目标文件全部删除,只留下hex文件。

    四、新建工程

    1、点击MDK图标打开软件

    2、Project->New uVision Project,将工程目录选择在TemplateProjectRVMDK(uv4)

    3、选择芯片为ST公司的STM32F103VE。

    4、在新弹出的对话框--询问是否添加启动代码,我们选择"否"。

    五、给工程添加组

    1、建立5个分组,分别为STARTUP、SMSIS、USER、DOC、FWLIB。

    2、对每个分组双击,然后添加文件。

      这里只需要添加C文件和汇编文件(其中DOC目录除外),头文件不需要添加。通过“六、设置Target Option”,我们可以指定头文件搜索路径,来解决这个问题。而且,编译器会根据*.C文件生成对应的依赖文件。

    六、设置Target Option

      依次选择Project->Options for Target ‘Template’

    1、Device

      Device选择100脚的STM32F103VE

    2、Target

    晶振频率:8 MHz

    Use MicroLIB: 使用微库

    片内Flash起始地址:0x8000000

    片内Flash大小:0x80000

    片内RAM起始地址:0x20000000

    片内RAM大小:0x10000

    3、Output

    Select Folder for Objects: 可以选择输出文件夹

    Name of Executable:  可执行文件的名字

    4、Listing

    Select Folder for Listing: 可以选择生成Lst的文件夹

    5、User

      如果想生成bin格式的可执行文件,可以在User栏子选项中添加如下语句:

    C:/Keil/ARM/BIN40/fromelf.exe --bin -o ../../Output/Template.bin ../../Output/Template.axf

    6、C/C++

    Define:  预处理宏

      STM32F10X_HD  使用的芯片是大容量的

      USE_STDPERIPH_DRIVE 为了使用ST库

    Optimization  优化等级

    Warngings  警告等级

    Include Paths   添加头文件目录

    compiler control string  可以查看编译命令

      可见头文件搜索目录除了系统默认的C:KeilARMINCSTSTM32F10x,还包括我们添加的....Include

    7、ASM

      与C/C++选项配置类似

    8、Linker

    R/O Base  代码段和只读数据段起始地址

    R/W Base  数据段起始地址

    Linker control string 可以查看连接命令

    Don't Search Standard Libraries 完全不使用系统默认提供的库

    9、Debug

    Use simulator  软件仿真

    Use cortex-M3 J-LINK 用J-link硬件仿真

    10、Utilities(工具)

    七、设置J-link选项

      在步骤六的第8小步--Debug界面,按下settings,进入J-link配置界面。以下是开发板上电后正常连通时的配置信息。

    1、Debug

    2、Flash Download

      其中Programming Algorithm的Description中需要添加芯片的Flash型号,这样下载的时候才知道是什么存储器,下载到哪里,大小多少。

    Erase Full Chip 擦除整个Flash

    Program  使能编程

    Verify   使能核查

    Reset and Run  编程完毕后,复位并且运行

    参考资料:《STM32库开发实战指南》

    附:Template.zip

  • 相关阅读:
    一个简单的knockout.js 和easyui的绑定
    knockoutjs + easyui.treegrid 可编辑的自定义绑定插件
    Knockout自定义绑定my97datepicker
    去除小数后多余的0
    Windows Azure Web Site (15) 取消Azure Web Site默认的IIS ARR
    Azure ARM (1) UI初探
    Azure Redis Cache (3) 创建和使用P级别的Redis Cache
    Windows Azure HandBook (7) 基于Azure Web App的企业官网改造
    Windows Azure Storage (23) 计算Azure VHD实际使用容量
    Windows Azure Virtual Network (11) 创建VNet-to-VNet的连接
  • 原文地址:https://www.cnblogs.com/amanlikethis/p/3702698.html
Copyright © 2011-2022 走看看