MDK-ARM开发软件的使用(上)

前言

在进行嵌入式开发学习中,大部分人都使用过MDK-ARM开发软件,由于陌生的英文界面,不知道有那些实用功能,使得开发过程走弯路。工程是基于HAL建立,下面是博主在使用此软件的一些经验,希望对大家有用。

MDK软件的使用可以分为4个步骤

新建工程------工程设置-------程序编译和下载--------程序调试

一,新建工程

文件结构

在CubeMX的文件夹下,自动生成了名为“text15.3(用户自命名)”的文件夹。在 text15.3文件夹下,生成了如图所示的相关文件和文件夹。

       文件夹中图标为蓝色MX的文件是由 CubeMX软件生成的 CubeMX 工程文件。如果用户需要修改之前的设置,如引脚分配和外设配置等,就可以直接点击,启动 CubeMX 软件来完成相关的设置。
工程文件中还生成了四个文件夹,分别是 Drivers、Inc、MDK-ARM 和 Src。(bsp文件为我自己选择添加,只是为了方便存储用户自己建立的文件而设立,不属于软件生成文件结构)

1.Drivers 文件夹


存放与驱动相关的文件,里面包含两个子文件夹:
1)CMSIS 子文件夹
Cortex-M 内核微控制器的软件接口标准。
2)STM32F4xx HAL Driver 子文件夹
STM32F4 系列微控制器的 HAL库驱动文件。


2.Inc 文件夹


存放用户头文件,包含以下3个文件:
1)emain.h
用户主程序的头文件。
2)stm32f4xx hal conf.h
HAL库配置头文件。该文件主要用于对 HAL库的裁剪。例如,修改外部晶振的频率,使能或禁能相应的片内外设。
3)estm32f4xx it.h
中断服务程序的头文件。

3.MDK-ARM 文件夹

存放 MDK 软件的工程文件,里面比较重要的是两个文件

Demo.uvprojx
MDK 软件的工程文件。
estarlup_stm32f411xe.s
芯片启动代码,主要功能是配置系统堆和栈的大小以及初始化中断向量表。

4.Src 文件夹

存放用户源文件,包含以下4个文件:

main.c :
用户主程序。
stm32f4xx_hal_msp.c
与目标 MCU 相关的片内外设初始化程序,
stm32f4xx it.c
中断服务程序,定义了常用的中断服务函数。
system_stm32f4xx.c
系统初始化代码,主要完成系统初始化操作。

点击 MDK-ARM 文件夹下面的 Demo.uvprojx文件,就可以启动MDK软件,并打开对应的工程文件。MDK 软件的主界面可以分成5部分

二,工程配置

完成工程的建立后,我们需要配置工程的开发环境。在 MDK 软件主界面的工具栏中点击 魔术棒 按钮,进入工程配置界面(Options for Target'Demo')。在工程配置界面中,一共有十个标签页。


1.Device(器件)标签页


用于选择微控制器的型号。一般情况下,在新建工程时已经选择好了芯片型号。如果用户需要更改芯片型号,可以在 Device 标签页中进行修改。

2.Target(目标)标签页


用于硬件配置,一般使用默认配置即可,其中几个重要的设置选项如下:

Xtal( MHz )
        用于设置外接晶振的频率,如图所示。用户需要根据实际情况进行修改,该值主要用于软件仿真。
 ARM Compiler
        用于选择进行程序编译的编译器,如图所示。MDK 软件提供了 V5 和V6 两种编译器。利用 CubeMX 软件所生成的 MDK 工程,默认使用的是 V5 编译器。而直接利用 MDK 软件新建工程时,默认使用的是 V6 编译器。由于 V6 编译器对 HAL,库的支持还不太完善,直接编译时会出现一些警告和错误,因此建议初学者使用 V5 编译器
Use Micro LIB
         使用微库,如图所示。为了适应 MCU 存储空间较小的情况,Keil 公司专门开发了一套小型的C语言标准库函数,比普通C语言的标准库函数代码量更小。例如,我们使用 printf()函数时就会调用微库。用户调用C语言的标准库函数时,需要勾选该选项。
Read/Only Memory Areas 和 Read/Write Memory Areas
        设置片内和片外存储器的起始地址和大小,包括 ROM 和 RAM,如图 所示。对于 Cortex-M内核微控制器而言,一般不用进行片外存储器的扩展,只使用片内存储器。存储器的起始地址和大小会根据芯片型号自动分配。
       对于 STM32F411RET芯片而言,片内ash的起始地址为0x8000000,大小为 512 KB。
片内 SRAM 的起始地址为 0x20000000,大小为 128 KB。

3:Output(输出)标签页


用于设置编译过程中输出的中间文件的存放路径,如图5-7所示,一般采用默认配置即可,其中几个重要的设置选项如下:

Select Folder for Objects
用于选择编译过程中输出的中间文件的存放路径。利用CubeMX软件生成的MDK工程将自动设置该路径为 MDK-ARM 文件夹下与工程名同名的文件夹。
Name of Executable
生成的可执行文件名称,默认和工程名一致。
Create Executable
该选项默认选中。它包含三个子选项:
1)Debug Information
生成调试信息。

2)Create HEX File
生成 HEX 格式的编程文件。
Browse Information生成浏览信息,如查看程序中定义的变量和函数等。三个子选项默认为选中状态,以便生成详细的调试信息和浏览信息以及 Hex格式的编程文件。
3)Create Library
生成Lb 文件(库文件)。如果用户希望隐藏自己的程序源码时,可以选中该选项,样就可以以库文件的形式提供程序,而不必公开源代码。

4.Listing(列表)标签页


用于生成列表文件。列表文件中包含了生成代码的详细信息,如代码大小、变量所。
用的存储器地址等,如图所示,一般使用默认配置即可。



5.User(用户)标签页


用于设置在编译之前或编译之后运行的一些用户命令,比如拷贝文件或删除文件等批处理操作,如图所示,一般使用默认配置即可。


6.C/C++ 标签页


用于在C或者 C++程序中设置预定义的宏、程序优化等级以及头文件路径,如图 5-10所示,其中几个重要的设置选项如下:

 Define
用于设置预定义的宏,其作用与在程序中用 defne 关键字定义的宏一样。如果利用CubeMx 软件生成的 MDK工程,已经默认添加了两个预定义的宏:USE HAL DRIVER 和STM32F411xE,如图 中序号①所示。如果是手动建立工程,则需要用户自行添加。

 USE HAL DRIVER
表示使用 HAL库。定义这个宏之后,才会包含“stm32f4xx_hal.h”头文件,才能使用HAL库中的接口函数。
STM32F411xE
表示使用的芯片型号。定义这个宏之后,才会包含“stm32f431xx.h”,才能访问芯片内部的寄存器。

Optimization
用于设置程序的优化等级,默认的优化等级是 Level3,如图 中所示。建议初学者选择1emd0,也就是不进行程序优化,这样可以使于观察程序中全部变量以及设置断点。如果配置成Lewd13,在硬件伤真时,可能会由于程序的优化而无法察觉,无法在某些代码行设置断点以及单步调试时出现代码运行不连续

Include Paths
用于添加头文件路径,如图中所示。如果利用CubeMx软件生成MDK工程,会自动添加所需的头文件路径。如果直接利用 MDK 软件建立工程或着用户在当前工程的基础上添加了新的文件,则需要用户手动添加对应的头文件路径。头路径没有正确添加时,编译将会报错。


7.Asm 标签页

用于在汇编程序中设置预定义的宏和文件的包含路径等,功能与C/C++标签页类如图 所示,一般使用默认配置即可。

8.Linker(链接器)标签页


用于设置程序的链接地址和分散加载文件,如图 所示,一般使用默认配置即可。

9.Debug(调试)标签页


用于程序仿真方式的设置,如图 所示。


           MDK 软件支持软件仿真和硬件仿真,软件仿真主要用于验证算法和程序的流程是否正确。在实际工程中,一般采用硬件仿真进行程序的调试和错误的排查。
          使用硬件仿真时,首先要选择所使用的仿真器:如果使用官方开发板(如Nucee开发板),板上集成了ST-Lnk 仿真器,则选择ST-Link Debuesr。如果是用户设计的电路则需要根据所使用的仿真器类型来选择。MDK软件所支持的仿真器类型如图中所所示。

       选择好仿真器后,还需要进行仿真器设置。点击仿真器右边的“Setlings”按钮,如图所示,将进入仿真器设置窗口。
          仿真器设置窗口分成了 Debug、Trace 和 Flash Download 三个子标签页,如图 所示。一般情况下,只需要设置 Debug 子标签页和 Fash Download 子标签页。


Debug 子标签页


     用于显示仿真器的名称、序列号、硬件版本号和固件版本号等基本信息,如图所示。
如果仿真器连接正确,并且用户的电路板设计正确。电路板上电后,在SW Device 窗口中将显示芯片的ID号,如图 所示。如果无法显示仿真器的相关信息,可以检意传真器是否插紧,仿真器的驱动程序是否安装。如果无法显示芯片的ID号,先检查是否上电。如果电路板已经上电则考虑微控制器的最小系统电路问题,可以通过检查时钟电路、复位电路和调试电路来排查错误。

Flash Download 子标签页


       用于下载程序的配置,如图所示,一般使用默认配置即可。如果希望程序下载完毕后自动运行,则需要勾选“Reset and Run”选项,如图所示。如果不选该选项,则下载程序后,需要按一下电路板上的复位按钮,程序才能运行。

        在 Programming Algorithm(编程算法)部分可以设置MCU片内Flash 的编程算法,片内 Fash 的编程算法会根据芯片型号自动添加,如图 所示。

10.Utilities(工具)标签页


           用于选择 MDK软件中没有支持的第三方仿真器以及对第三方仿真器的配置,如图所示。大多数情况下我们会选择 MDK 软件中支持的仿真器,因此在该标签页中不做任何修改,使用默认配置即可。

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要打开mdk-arm头文件,您需要先安装MDK(Microcontroller Development Kit)软件。MDK是由Keil开发的一套用于ARM处理器的嵌入式开发工具。 安装MDK后,您可以按照以下步骤打开mdk-arm头文件: 1. 打开MDK软件,您将看到一个IDE(集成开发环境)界面。 2. 在顶部菜单栏中,找到“File”(文件)选项,点击它。 3. 在下拉菜单中,选择“Open”(打开)选项。这将弹出一个文件浏览器窗口。 4. 在文件浏览器窗口中,导航到存储mdk-arm头文件的文件夹。 5. 找到您要打开的mdk-arm头文件,并双击它。或者,选择文件后点击“打开”按钮。 6. MDK将打开您选择的mdk-arm头文件,并在IDE界面的编辑器窗口中显示其内容。 通过以上步骤,您可以打开mdk-arm头文件,并在MDK中进行编辑、查看或其他操作。请注意,mdk-arm头文件是用于ARM处理器的头文件,用于定义编程所需的常量、数据结构和函数等。因此,要正确地使用这些头文件,您需要熟悉ARM处理器的编程知识。 ### 回答2: 要打开mdk-arm头文件,首先需要在电脑上安装MDK-ARM软件。MDK-ARM是一款由ARM公司开发的嵌入式开发环境,用于编写和调试ARM处理器架构的应用程序。 安装完MDK-ARM软件后,可以在计算机上找到安装目录,一般默认是在C盘的Program Files文件夹下。在这个文件夹中,可以找到包含mdk-arm头文件的文件夹。 在这个文件夹中,你可以看到一些常用的头文件,如stdio.h、stdlib.h等。要打开mdk-arm头文件,可以选择其中的一个文件,比如stdio.h,鼠标右键单击该文件,然后选择使用文本编辑器(如Notepad++、Sublime Text等)打开。 另外,如果你想在MDK-ARM软件中直接查看mdk-arm头文件的内容,可以通过以下步骤进行操作: 1. 打开MDK-ARM软件。 2. 在软件界面中找到“Project”或“项目”选项,点击打开。 3. 在项目文件列表中找到mdk-arm头文件所在的项目文件夹,双击打开。 4. 在项目文件夹中,可以看到mdk-arm头文件的列表。 5. 双击打开任意一个mdk-arm头文件,就可以在MDK-ARM软件中查看和编辑该文件的内容了。 通过以上方法,你可以方便地打开和查看mdk-arm头文件的内容。 ### 回答3: 要打开mdk-arm头文件,首先需要安装mdk-arm开发环境。 1. 在Keil官方网站上下载mdk-arm开发环境的安装程序。 2. 运行安装程序并按照提示进行安装。安装程序会将mdk-arm的所有文件和头文件安装到指定的目录中。 3. 打开Keil软件,点击菜单栏的“File”(文件)选项,选择“Open”(打开)。 4. 在弹出的文件选择对话框中,浏览到mdk-arm环境的安装目录,并找到所需的头文件。 5. 选中要打开的头文件,点击“Open”(打开)按钮。 6. 头文件将在Keil软件的编辑器中打开,您可以在其中进行编辑和查看。 在打开mdk-arm头文件之前,建议您对mdk-arm开发环境有一定的了解,熟悉相关的编程语言和工具。这样有助于更好地理解和使用头文件中的功能和定义。您可以查阅mdk-arm的相关文档和资料,了解如何使用和配置mdk-arm开发环境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值