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

  • 相关阅读:
    达到J2EE在后台action控制接待javascript弹出的对话框
    .Net下一个Winform方案可以让MessageBox.Show它显示在父窗口的中间
    Apache Commons-logging使用实例
    java aopalliance-1.0.jar这个包是做什么用的?
    antlr-2.7.6.jar的作用
    ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序--解决方法
    Java 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包)
    javaweb学习总结(二十六)——jsp简单标签标签库开发(二)
    javaweb学习总结(二十五)——jsp简单标签开发(一)
    javaweb学习总结(二十四)——jsp传统标签开发
  • 原文地址:https://www.cnblogs.com/amanlikethis/p/3702698.html
Copyright © 2011-2022 走看看