查看: 3641|回复: 0

[STM32F469试用体验]MDK-ARM开发环境的搭建及调试程序流程

[复制链接]
  • TA的每日心情
    开心
    2016-12-15 12:17
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2016-5-9 09:47:58 | 显示全部楼层 |阅读模式
    分享到:
    一步一步使用STM32开发

    MDK-ARM开发环境的搭建及调试程序流程
    上一篇讲述了如何使用mbed在线编译程序,mbed可以非常快速的评估开发板,但如果想获取更好的调试功能,还需要搭建桌面环境。本文讲述桌面环境的搭建和简单程序的开发流程。
    ST没有自己的集成开发环境(IDE),需要借助于第三方IDE开发。我们选择使用MDK-ARM集成开发环境,MDK-ARM是ARM官方IDE,MDK-ARM对于STM32 F0/L0系列的产品是免费的,通用版本对于代码小于32KByte是免费的,这个限制足以评估开发板几乎所有的示例程序。
    也由于ST没有自己的IDE,所以安装驱动、升级固件、安装IDE、安装开发包等都需要独立完成并配置正确。可以看出,尽管MDK-ARM尽量包含多的软件开发包,但它不能满足所有人的需求,否则这样的话MDK-ARM将会非常巨大,对于我们来说其中绝大部分开发包是不需要的。所以我们要完成配置包括安装MDK-ARM,并在其中配置支持开发板的软件开发包。ST也会退出一些列软件开发包,这2个开发包的关系及使用,我们将在本文做简单说明。
    1.安装MDK-ARM并添加开发包
    MDK-ARM可以在https://www.keil.com/download/product/中下载,当前最新版本是5.18a。安装路径尽量保持默认,如下图所示:

    安装过程中会自动安装ULINK驱动,ULINK是ARM推出的调试器。我们使用的是开发板自带的STLink调试器,后面会安装STLink驱动。如下图所示,我们选择“仍然继续”:

    最后完成安装,如下图所示:

    安装完成后,打开Keil uVision5程序,点击“Pack Installer”按钮,然后点击刷新按钮,如果网络条件不好,会提示无法连接到服务器,但即使能够连接,也推荐下载独立安装包,如下图所示,无法连接到服务器:

    在网站https://www.keil.com/dd2/pack中可以找到所有ARM芯片厂商的软件开发包,这里选择并下载“STMicroelectronics STM32F4 Series Device Support, Drivers and Examples”软件开发包,当前最新的版本是v2.8.0,如下图示:

    下载完成后,通过“Pack Installer”中的“File->Import”菜单导入开发包,如下图示:

    导入完成后,就可以在“Pack Installer”窗口中的“Device”和“Packs”选项卡中查看到开发板对应的MCU型号信息和开发板软件包了,如下图所示:

    在“Boards”选项卡中找不到本开发板,那是因为v2.8.0开发包还没有升级并包含此板,为什么会这样?!MDK-ARM毕竟不是ST公司自己的产品,MDK-ARM升级开发包需要ST首先提交所有文档、程序示例,然后ARM再打包、测试并放到官网提供下载。这个过程自然就会比较慢了,但是,评估此开发板只要能够找到对应的MCU即可,可以先不用开发板支持包。所以,为了能够获取最新的开发包,我们还需要再安装ST官方的开发包。
    2.安装STM32CubeMX并添加开发包
    STM32CubeMX是ST官方推出的芯片管脚配置、工程生成、开发板示例程序和资料的桌面版软件,通过它可以很方便的获取最新的开发包,并可以通过对芯片管脚的配置生成对应的工程文件。
    通过如下地址可以下载到STM32CubeMX:
    https://www2.st.com/content/st_com/zh/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html
    安装完成后,打开“STM32CubeMX”程序,选择“Help->Install New Libraries”菜单,在“New Libraries Manager”窗口中先通过“Check”按钮,检查升级,然后勾选“STM32CubeF4 Releases”中最新的版本,当前是v1.11.0,点击“Install Now”后开始下载,如下图示:

    通过STM32CubeMX下载的开发包是ST推出的最新版本,其典型存放路径是“C:\Documents and Settings\‘用户名’\STM32Cube\Repository\STM32Cube_FW_F4_V1.11.0”,STM32Cube_FW_F4_V1.11.0中存放的是独立的示例程序、文档、资料等,其中的一些示例可以在MDK-ARM中直接打开。
    3.MDK-ARM开发包与STM32CubeMX开发包的关系
    通过安装MDK-ARM和STM32CubeMX可以看出,他们分别有一套开发包,那这2者有没有联系?通过查看相关的Release Notes文件可知,他们都是ST官方推出的STM32CubeF4开发包,只不过由于业务关系,MDK-ARM下的开发包版本比STM32CubeMX低,且在MDK-ARM中使用ARM的版本控制,其版本命名也不同,但本质是一样的,如下图示:

    通过上图可以看出,MDK-ARM中的开发包版本比STM32CubeMX中的低了2个版本,具体可以查看相应的Release Notes文件。知道了这2者的关系后,我们就可以方便的引用最新的示例程序,或者使用MDK-ARM中的示例来评估开发板了。
    4.上电、安装驱动和升级固件
    使用mini USB口把开发版接入电脑,此时电源灯亮,如果未安装驱动或驱动版本过低,则其它LED灯不亮且电脑会提示安装驱动。
    下载最新的ST-LINK驱动,在系统提示的找到新硬件窗口中,根据提示安装驱动:




    根据系统提示,安装所有其它新硬件的驱动,把所有驱动目录都指向ST-LINK即可。
    为了最大限度的使用ST-LINK提供的调试功能,建议升级到最新的ST-LINK固件版本,下载最新的ST-LINK固件,并根据情况安装。如果最新的固件版本和开发板上的固件版本一致,则就不需要再安装了,如下图示:

    注意:如果安装了MDK-ARM v5及以上版本,里面默认的有ST-LINK Upgreade和ST-LINK驱动程序,但版本可能太低,这可能造成错误的升级或安装。比如,我的MDK-ARM里面的ST-LINK固件包就太低,不能用这个更新!由此看来ST-LINK Upgrade并不是实时联网获取最新固件的,建议通过官网下载最新的驱动和固件。MDK-ARM包含的驱动和固件版本可能较低,如下图示:

    至此,开发板的上电启动、驱动安装、固件升级等准备工作已经完成了。下面我们通过MDK-ARM编译一个简单的blinky程序来熟悉开发的基本流程。
    5.编译GPIO_EXTI程序
    由于MDK-ARM中没有本开发板的板级支持包,我们使用STM32CubeMX提供的示例程序,GPIO_EXTI程序的典型路径如下:
    C:\Documents and Settings\“用户名”\STM32Cube\Repository\STM32Cube_FW_F4_V1.11.0\Projects\STM32469I-Discovery\Examples\GPIO\GPIO_EXTI\MDK-ARM
    GPIO_EXTI提供了一个简单的程序,它把开发板上面的用户按钮通过中断控制LED1灯的开或关。直接双击打开上面目录中的“Project.uvprojx”工程,需要对该工程做简单配置,右击“STM32469I_DISCOVERY”工程,选择“Options for Target…”,在打开的选项对话框中选择“C/C++”选项卡,在“Include Paths”中添加“C:\Keil_v5\ARM\Pack\ARM\CMSIS\4.5.0\CMSIS\Include”包含目录,其中CMSIS版本号v4.5.0可能根据不同的版本而不同。在“Misc Controls”中添加“-JC:\Keil_v5\ARM\ARMCC\include”,注意多个项目用空格分开,该项表示明确指出编译器的位置,以防止多个编译器同时存在时出现不必要的错误。如下图所示:

    再选择“Linker”选项卡,在“Misc controls”中填入新的一行“--libpath=C:\Keil_v5\ARM\ARMCC\lib”,此项表示明确指出编译器使用的库文件所在的位置,以防止多个库文件同时存在时出现不必要的麻烦。如下图所示:

    点击“OK”按钮保存设置。再次右击“STM32469I_DISCOVERY”工程并选择“Rebuild all target files”项,此时开始编译工程,并成功生成一个后缀是axf的程序镜像,如下图所示:

    把开发板接入电脑,菜单中选择“Debug->Start/Stop Debug Session”,此时IDE变为调试状态,如下图示:

    点击菜单中的“Debug->Run”开始运行程序,此时按开发板上的用户按钮,LD1会循环开启或关闭,下图显示LD1开启的状态,显示屏是缓存的内容,此时触摸无反应:

    选择“Debug->Stop”停止调试。
    6.总结
    本文详细说明了开发环境的搭建,驱动的安装,固件的升级,并且比对了MDK-ARM开发包和STM32CubeMX开发包的关系,即都是ST官方推出的开发包,只是后者版本更新。通过MDK-ARM展示了开发程序的基本流程。目前可以暂时不用关注程序细节,先上手如何开始开发、调试。后续会详细分析程序代码,并通过示例程序展示更多开发板的功能。
    7.参考资料
    [1] MDK5 Software Packs: https://www.keil.com/dd2/pack
    [2] 32F469IDISCOVERY:
    https://www2.st.com/content/st_com/zh/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-discovery-kits/32f469idiscovery.html#quickview-scroll
    [3] STM32CubeF4:
    https://www2.st.com/content/st_com/zh/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32cube-embedded-software/stm32cubef4.html
    [4] STM32CubeMX:
    https://www2.st.com/content/st_com/zh/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html
    [5] STSW-LINK009:
    https://www2.st.com/content/st_com/zh/products/embedded-software/development-tool-software/stsw-link009.html
    [6] STSW-LINK007:
    https://www2.st.com/content/st_com/zh/products/embedded-software/development-tool-software/stsw-link007.html
    [7] MDK-ARM: https://www.keil.com/download/product/
    [8] STM32F479NI:
    https://www2.st.com/content/st_com/zh/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f4-series/stm32f469-479/stm32f479ni.html
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 08:52 , Processed in 0.110874 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.