一、查看某个变量,使用Watch、Memory
-
工程最好存放在英文路径下,否则退出调试时会报错,需要强制退出keil。
-
首先在“魔术棒”选项 -> “Debug” -> 勾选"use simulator"。
-
以堆管理代码为例:
char heap_buf[1024];
int pos = 0;
void *my_malloc(int size)
{
int old_pos = pos;
pos += size;
return &heap_buf[old_pos];
}
void my_free(void *buf)
{
/* err */
}
int main(void)
{
char ch = 65; // char ch = 'A';
int i;
char *buf = my_malloc(100);
unsigned char uch = 200;
for (i = 0; i < 26; i++)
buf[i] = 'A' + i;
return 0;
}
-
开始调试。
-
打上断点,并且“一路执行”
-
查看变量 buf 。
-
可以看到,buf 的起始地址为0x20000004。
-
继续单步执行。
在 for 循环里执行几次,也就是在buf里写入几个字母。 -
来看看 buf 里面现在是什么。
二、串口查看
- 首先保证printf重定向到串口模拟器
- 打开串口窗口
- RUN一下