打印
[开发工具]

教你做CMSIS-DAP仿真器(基于Nucleo-F767ZI)

[复制链接]
1908|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
说书先生|  楼主 | 2017-4-18 09:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么选这个板子,因为我就这个高性能.哈哈.
新建Keil工程把我所列的组件都选上.
首先我们用的FULL SPEED模式.
修改USB_Config_0.c配置,这里名字记得改,他识别名字和VID PID.一定要带CMSIS-DAP字的.
再把具体USB_Config_HID_0.h修改.
我们这次是FullSpeed,先试试延迟16ms的版本.(默认值),接着把堆栈改大.

修改操作系统的参数.
在组右键通过模板增加一个文件,测试一下配置.
因为是HSI,注意修改一下main中的配置.

这时候编译应该就不会出什么错误.
设置一下让他ST-Link下载.
进入调试查看时钟对不对.时钟配置后下断点观察.
找到CMSIS-DAP源码.我的地址是[C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.0.1\CMSIS\DAP\Firmware]
把配置文件搞过来.
同样如此.
然后搞这两个过来,Main不要覆盖.
把源码挪过来.
里面这个文件不要.
把刚才添加的一些东西加到Keil里面.

在main.c中增加include.
#include "osObjects.h"#include "rl_usb.h"#include "DAP_config.h"#include "DAP.h"RTOS调度相关函数删掉.添加我们的DAP数据.
  DAP_Setup();                          // DAP SetupDelayms(100U);                        // Wait for 100msUSBD_Initialize(0U);                  // USB Device InitializationUSBD_Connect(0U);                     // USB Device Connectwhile (!USBD_Configured(0U));         // Wait for USB Device to configure把这个文件的只读去掉.(在资源管理器)
然后把device.h改成stm32f7xx.h
CPU_CLOCK填真实系统时钟.
暂时不要SWO功能.

添加INCLUDE,自身项目目录和RTE目录.
这时候编译,应该会出错的.通过错误快速引导到需配置的地方.
一般情况已经可以了,如果还不可以,请加装HSE晶振.
但是这个时候不能仿真啊,不能不能啊.因为我们PIN脚都还没定义呢.由于硬件限制和偷懒,先只实现一个SWD吧,另外SWD有双向引脚,正常来说呢,不应该一个IO搞定的.但是速度无所谓党表示算了.把函数按照最后的改装表改装,如果SWDIO是不是很难控制?外部电路当然容易,当然也可以采用不断切换输入输出模式.就像我这样,但是缺点是最慢速度才能满足他检测所需时间了.

全部IO改好后,调到最低速度,连接了一个STM32F103,检测成功,仿真肯定也是可以的,只是慢得…
具体每个函数解释如下.
未来设想,做个带屏幕的调试器?

沙发
Ketose| | 2017-4-18 10:07 | 只看该作者
赶紧收藏。。。

使用特权

评论回复
板凳
mmuuss586| | 2017-4-18 12:45 | 只看该作者

学习了

使用特权

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

本版积分规则

71

主题

191

帖子

0

粉丝