打印
[STM32]

【原创】如何在keil中仿真stm32单片机

[复制链接]
1102|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
云图|  楼主 | 2017-11-30 13:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在学习51单片机的时候,经常会使用keil+protues的方式来做一些实验,这样的模拟仿真为我们节省了很多硬件和时间成本,可以更直观的看到代码的执行过程。那么当切换到stm32系列单片机的时候,protues明显不支持了,但是keil的模拟功能还是有很大的用处,例如stm32f103单片机,在keil中可以实现很好的模拟效果,我们可以在其中使用中断、定时器、PWM等功能,可以观测到GPIO的输出情况。然而keil对stm32系列单片机不是很好的支持,如果换一个型号,你会发现完全无法模拟!!!

相关帖子

沙发
云图|  楼主 | 2017-11-30 13:33 | 只看该作者
配置keil,模拟stm32系列单片机

我们可以通过修改某些地方来实现keil对stm32的模拟功能。

1)首先来修改“debug”标签的内容



“Use simulaor”代表要使用软件模拟仿真

“dialog DLL”的内容是“DARMSTM.DLL“,表示使用stm系列

“parameter”的内容是“-pSTM32F051C8“,这里匹配的是当前单片机的型号

2)initialization file

先来看一下这个文件的内容

map 0x40000000,0x4000ffff read write

map 0x40010000,0x4001ffff read write

map 0x40020000,0x4002ffff read write

map 0x48000000,0x4800ffff read write

这段内容其实是在设置单片机的内存地址的读写特性,上面的这几段地址都是可读可写的。C语言就是在存储器里不停的寻址,然后执行指令,那为什么会是上面这些地址呢?可以查看stm32f051单片机的存储器映射



上面只是截取部分存储器的映射情况,这是AHB2的地址。例如你要使用RCC功能,那么可以看到0x40021000•0x400213ff这部分地址需要有读写属性。

使用特权

评论回复
板凳
云图|  楼主 | 2017-11-30 13:35 | 只看该作者
原文发布过来 ,如果想了解的 可以去星创客官网学习资源中找


使用特权

评论回复
地板
地瓜patch| | 2017-11-30 22:43 | 只看该作者
keil一桶天下了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

30

帖子

1

粉丝