Keil/MDK(2):STM32堆栈使用情况分析

一、概述

这一节主要记录下堆栈空间的设置。首先看下堆栈的概念:

栈区(stack):由编译器自动分配和释放,存放函数的参数值、局部变量的值等,其操作方式类似于数据结构中的栈。
堆区(heap):一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收。分配方式类似于数据结构中的链表。(点击链接

二、.htm文件

以往只关注了hex、bin、map文件,其实在工程的\Projects\Objects\目录下还有两个htm文件,当然这个目录同样与设置有关:
在这里插入图片描述
其中:

  1. xxxxx.build_log.htm
    在这里插入图片描述
    这个文件主要是编译信息,通常不必过多关注。

  2. xxxxx.htm
    这个文件最大的作用是帮助我们合理设置栈空间大小,关键字段为Maximum Stack Usage:
    在这里插入图片描述
    这里看出最大的栈空间需求为2632字节,再加上一些不知道的部分。这样设置占空间大于2632,并适当留出一些余量即可。

    此外,我们还可以查看单个函数的栈空间使用情况。在文件内搜索要查看的函数名称即可:
    在这里插入图片描述
    可以看到函数TAMPER_Init,最大栈深度是4字节。函数本身占用代码大小(Thumb指令集)40字节,使用栈4字节。

三、.s启动文件

确定了栈空间大小,就可以在启动文件中进行设置:
在这里插入图片描述
Stack_Size是栈空间。我这里设置的是A88,转换为10进制即为2696,大于上面的2632,并且留出了一些余量。
Heap_Size是堆空间。因为程序中并没有使用malloc来动态分配内存,这里直接设置为0。

  • 18
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Keil MDK5作为一款强大的MCU开发工具,可以用于从头开始建立STM32 Project项目。下面是详细的步骤: 1. 打开Keil MDK5软件,点击“File”菜单,选择“New”→“Project”来创建新工程。 2. 在弹出的对话框中,选择“STMicroelectronics”作为Manufacturer,选择“STM32F4xx”作为Device。 3. 输入工程名称,选择工程存放路径,然后点击“Save”按钮。 4. 在“Project”窗口中,点击“Options for Target”来打开“Target Options”页面。在这个页面中,我们可以设置编译器、链接器、调试器等选项。 5. 在“C/C++”选项中设置编译器,一般选择ARMCC,同时可以设置一些编译器的选项,如编译优化等。 6. 在“Linker”选项中设置链接器,一般选择ARMLINK,同时设置链接器的选项,如堆栈大小等。 7. 在“Debug”选项中设置调试器,一般选择ST-LINK Debugger,同时可以设置一些调试器的选项,如Flash编程等。 8. 在“Target”选项中设置目标设备,选择STM32F407VG,同时可以设置一些芯片的选项,如时钟频率等。 9. 点击“OK”按钮保存设置并关闭“Target Options”页面。 10. 在“Project”窗口中,右键点击“Source Group 1”目录,选择“Add Existing Files to Group”。 11. 在弹出的对话框中,选择工程所使用的源文件(.c、.h等)。 12. 在“Project”窗口中,右键点击“Target 1”目录,选择“Options for Target”来打开“Target Options”页面。 13. 在“Debug”选项中,勾选“Use ST-Link”选项,然后点击“Settings”按钮。 14. 在“ST-Link Debugger”页面中,设置一些调试器选项,如芯片型号、连接方式等,然后点击“OK”按钮保存并关闭页面。 15. 点击“Build”菜单,然后选择“Build Target”来编译工程。 16. 点击“Flash”菜单,然后选择“Download”来下载程序到芯片中。 17. 程序下载成功后,可以进行调试和测试。 以上就是Keil MDK5从头建立STM32 Project项目的详细步骤。通过这些步骤,您可以快速创建STM32工程,并开始您的MCU开发工作。 ### 回答2: Keil MDK5是一款广泛使用的嵌入式开发集成环境(IDE),它可以用来开发多种类型的嵌入式系统,包括基于ARM Cortex-M处理器的STM32系列芯片。下面是使用Keil MDK5从头建立一个STM32项目的详细步骤。 1. 安装Keil MDK5 首先,需要从Keil官网上下载和安装MDK5。安装完成后,打开Keil MDK5 IDE界面。 2. 创建新工程 在Keil MDK5 IDE界面中,选择“File”→“New…”菜单,弹出“Create New Project”对话框。在该对话框中,选择“Device Database”中的STM32系列,然后选择芯片型号和开发板,并指定工程文件夹,并设置工程名称,最后点击“OK”按钮。 3. 配置工程 在相关设备和程序库之前,必须设定一些工程配置项。这些项包括所使用的编译器、产生的代码、和选项。在Keil MDK5的工程管理器中,会显示新建的工程。右键单击该工程,并选择“Options for…”命令选项。在弹出的对话框中,配置编译器和链接器选项,以及其他必要的信息。 4. 添加外设驱动程序库 要使用STM32芯片上的外设,需要编写相应的驱动程序库。可以在ST网站上下载相应的驱动库文件。下载好后,将其解压缩,并添加到Keil MDK5的工程中。具体操作是,在工程管理器中,右键单击“Project”条目,选择“Add Files…”菜单项,并选择下载解压后生成的文件,然后选择“Add”按钮,即可加入工程中。 5. 编写程序 使用Keil MDK5 IDE所提供的开发工具,编写所需的STM32程序代码。通过设定代码所用的宏、数据类型、和内 Core外的存储器类型信息,可以得出性能和体积。 6. 编译和调试 使用Keil MDK5 IDE所提供的编译工具将程序编译成可执行文件,并运行调试程序,检查程序是否正常运行。主要是在工程管理器中,右键单击“Project”条目,选择“Build Target”菜单项,以执行编译操作,查看编译结果是否正常,并可以进行一些简单的调试和排错。 以上就是使用Keil MDK5从头建立一个STM32项目的详细步骤。通过这些步骤,可以快速地建立一份STM32的程序,然后进行编译和调试。当然,在实际的项目开发中,还需要根据具体的要求进行一些调整和修改。 ### 回答3: Keil MDK5是一款非常常用的嵌入式开发环境,用于在嵌入式系统中开发、编译和调试。下面将详细介绍如何在Keil MDK5中从头开始建立STM32项目: 1.安装STM32支持包 在Keil MDK5中创建STM32项目之前,您需要先安装STM32支持包。您可以在Keil官方网站上下载并安装。安装完毕后,启动Keil MDK5。 2.创建新的项目 在Keil MDK5的菜单栏中,选择"File" -> "New Project",在弹出的对话框中选择"STM32F4xx"和"MDK-ARM"作为芯片类型和编译器类型。然后为您的项目选择一个合适的名称并选择存储的位置,最后单击"OK"按钮。 3.配置芯片参数和系统时钟 在创建新项目时,Keil MDK5会为您自动配置一些芯片参数。您可以在左侧的"Project"栏中选择"Options for Target"来进一步配置芯片参数,如GPIO、UART和SPI。同时你还需要配置系统时钟,以便更好地适应芯片型号。您可以在左侧的"Project"栏中选择"Manage Run-Time Environment"来更改时钟源和频率。 4.添加程序代码 将您的程序代码添加到项目中。可以在左侧的"Project"栏中添加新的源文件或在现有的源文件中添加代码。务必注意您的代码中所用的指令集是否与目标芯片所支持的指令集匹配。 5.编译和调试 在代码添加完成后,您可以通过编译和调试来验证代码是否正常工作。点击Keil的"Build"按钮来编译您的代码。如果出现错误,请确认代码是否正确并解决错误。如果编译成功,则可以使用Keil MDK5的"Simulator"或"Debug"功能来调试您的程序。 6.烧录 如果您已经完成了程序的编译和调试,可以通过烧录器将程序烧录到芯片中。选择"In-System Programming"后编译一下程序,然后你能通过烧录插件来将程序烧录到指定芯片上。 以上是在Keil MDK5中从头建立STM32项目的详细步骤。您只需要按照以上步骤一步一步进行操作,就能在Keil MDK5中成功开发和调试STM32项目。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值