一、实验准备
实验目的:
重温C语言程序里全局变量、局部变量、堆、栈等概念,在Keil中针对stm32系统进行编程,调试变量,进行验证;通过串口输出信息到上位机,进行验证。 并归纳出stm32的堆、栈、全局变量的分配地址,与ARM教材中的地址分配进行对比。
这是我另一篇类似的博客:【嵌入式】Ubuntu和树莓派下的C语言编程(探究内存分区)
实验工具:
硬件
- 野火指南者开发板
软件
- keil 5
串口工程:(此次实验是在此工程的基础上进行更改)
链接:https://pan.baidu.com/s/19ehFg5NMrbr6jGfyIFYYzA
提取码:fyiv
二、相关代码
解压工程并打开,找到main.c
下的bsp_usart.h
文件,添加头文件如下:
#include <stdio.h>
#include <stdlib.h>
然后bsp_usart.c
文件中添加函数fputc
int fputc(int ch, FILE *f)
{
USART_SendData(DEBUG_USARTx, (uint8_t)ch);
while(USART_GetFlagStatus(DEBUG_USARTx, USART_FLAG_TXE) == RESET);
return (ch);
}
main.c
中换成以下代码:
#include "stm32f10x.h"
#include "bsp_usart.h" //添加 bsp_usart.h 头文件
int init_global_a = 1;
int uninit_global_a;
static int inits_global_b