打印

努力了8小时,stlink也成为浮云了

[复制链接]
6521|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 Simon21ic 于 2013-3-13 14:30 编辑


买到的stlink版本是V2J15S4,既然仿制了一个,就对J版本+1,目前是V2J16S4。
其实,对于有能力,有经验的人来说,这个确实只是浮云。

==,不光是这个哦。。。再来看看,别人当初要**stlink的目的不也就是为了加一个CDC吗?:

CDC也比较容易的集成进去了

不过,还有一个不满意,集成进去的Versaloon代码,需要更换驱动才能使用,正在考虑如何解决。
可能需要重写Versaloon的PC端底层驱动,不使用libusb,而是用WINUSB。
沙发
王紫豪| | 2013-3-13 15:40 | 只看该作者
恭喜楼主!
希望能贡献出了点什么

使用特权

评论回复
板凳
cjhk| | 2013-3-13 20:27 | 只看该作者
楼主  把你的经验啥的分享一点吗  呵呵   需要共同进步哦  呵呵

使用特权

评论回复
地板
Simon21ic|  楼主 | 2013-3-13 21:09 | 只看该作者
这个的经验,就是从08年到现在,自己的兴趣而已。代码早就分享了,经验就看有没有能力获得了。
STLink调试的速度确实比以前OpenOCD+Versaloon要高不少,毕竟不用通过一个中介。
逻辑分析仪看到的命令,基本上都分析出了功能,不过有一个没搞定,还好貌似不影响调试:
case STLINK_ADI_SUBCMD_UNKNOWN41:
{
        SET_LE_U16(&cmd[0], STLINK_ADI_REP_OK);
        return 2;
}
命令是F2 41 00 00 ....,截取到的这个命令的应答都是80 00,所以就不知道是干什么的了。

TODO list:
1. SWIM的支持,N久之前就搞定过,不知道ST有没有修改协议,不过感觉压力不大,浮云级的东西
2. 其他CortexM系列的支持,很多芯片可能可以直接支持,不过芯片种类不少,而且其他芯片也肯定不用stlink测试,所以工作量还是有一些的
3. Versaloon的PC程序(vsprog),增加WinUSB的驱动方式,这样就可以直接支持VersaloonONstlink。
4. N多芯片的测试,估计只是我用到的芯片测试一下而已。

FUNC list:
1. IAR/MDK 调试CortexM
2. CDC串口
3. 标准Versaloon支持,包括10+种处理器/存储器,5+种外设接口
4. OpenOCD支持,可以调试的东西就多了去了

使用特权

评论回复
5
Simon21ic|  楼主 | 2013-3-13 21:17 | 只看该作者
王紫豪 发表于 2013-3-13 15:40
恭喜楼主!
希望能贡献出了点什么

明天我估计就没什么时间了,这个就暂时搁置。
其实,能够做的贡献,估计就等我硬件弄好后,帮忙做一些测试吧。

使用特权

评论回复
6
Simon21ic|  楼主 | 2013-3-13 22:46 | 只看该作者
本帖最后由 Simon21ic 于 2013-3-13 22:49 编辑

show一段stlink调试lpc1766的底层数据以及分析,貌似问题很简单:

// PLL0CON: disable PLL
  47.2  OUT    f2 08 80 c0  0f 40 04 00  00 00 00 00  00 00 00 00  .....@..........   32ms        54.1.0        
  47.2  OUT    00 00 00 00                                         ....              1.0ms        55.1.0        
  47.2  OUT    f2 3b 00 00  00 00 00 00  00 00 00 00  00 00 00 00  .;..............  974us        56.1.0        
  47.1  IN     80 00                                               ..                1.0ms        57.1.0        
// PLL0FEED
  47.2  OUT    f2 08 8c c0  0f 40 04 00  00 00 00 00  00 00 00 00  .....@..........  1.0ms        58.1.0        
  47.2  OUT    aa 00 00 00                                         ....              1.0ms        59.1.0        
  47.2  OUT    f2 3b 00 00  00 00 00 00  00 00 00 00  00 00 00 00  .;..............  1.0ms        60.1.0        
  47.1  IN     80 00                                               ..                1.0ms        61.1.0        
// PLL0FEED
  47.2  OUT    f2 08 8c c0  0f 40 04 00  00 00 00 00  00 00 00 00  .....@..........  1.0ms        62.1.0        
  47.2  OUT    55 00 00 00                                         U...              1.0ms        63.1.0        
  47.2  OUT    f2 3b 00 00  00 00 00 00  00 00 00 00  00 00 00 00  .;..............  1.0ms        64.1.0        
  47.1  IN     80 00                                               ..                1.0ms        65.1.0        
// CCLKCFG
  47.2  OUT    f2 08 04 c1  0f 40 04 00  00 00 00 00  00 00 00 00  .....@..........  1.0ms        66.1.0        
  47.2  OUT    00 00 00 00                                         ....              1.0ms        67.1.0        
  47.2  OUT    f2 3b 00 00  00 00 00 00  00 00 00 00  00 00 00 00  .;..............  998us        68.1.0        
  47.1  IN     80 00                                               ..                990us        69.1.0        
// SCS: enable main oscillator
  47.2  OUT    f2 08 a0 c1  0f 40 04 00  00 00 00 00  00 00 00 00  .....@..........  1.0ms        70.1.0        
  47.2  OUT    20 00 00 00                                          ...              1.0ms        71.1.0        
  47.2  OUT    f2 3b 00 00  00 00 00 00  00 00 00 00  00 00 00 00  .;..............  1.0ms        72.1.0        
  47.1  IN     80 00                                               ..                1.0ms        73.1.0        
// CLKSRCSEL: select main oscillator as PPL0 source
  47.2  OUT    f2 08 0c c1  0f 40 04 00  00 00 00 00  00 00 00 00  .....@..........   53ms        74.1.0        
  47.2  OUT    01 00 00 00                                         ....              1.0ms        75.1.0        
  47.2  OUT    f2 3b 00 00  00 00 00 00  00 00 00 00  00 00 00 00  .;..............  1.0ms        76.1.0        
  47.1  IN     80 00                                               ..                1.0ms        77.1.0        
//
  47.2  OUT    f2 08 00 c0  0f 40 04 00  00 00 00 00  00 00 00 00  .....@..........  1.0ms        78.1.0        
  47.2  OUT    3a 00 00 00                                         :...              1.0ms        79.1.0        
  47.2  OUT    f2 3b 00 00  00 00 00 00  00 00 00 00  00 00 00 00  .;..............  1.0ms        80.1.0        
  47.1  IN     81 00                                               ..                1.0ms        81.1.0        
IAR使能了主晶振后,系统就挂了,原因:主晶振没有焊接,焊接上去就OK了。
花了几小时测试一下了手头上有的其他cortex,stlink支持其他cortex只能使用SWD接口。目前估计一般的CortexM0/3/4应该都可以支持,CortexM0+的话,木有芯片测试,并且已知kinetis不支持(因为对DAP都了手脚,还没有硬件来研究)。
如果使用JTAG的话,程序就需要增加目标芯片的自动检测,以及根据检测到的目标芯片,自动设置JTAG参数。

使用特权

评论回复
7
lio| | 2014-7-24 08:28 | 只看该作者
大师的救我

使用特权

评论回复
8
lingjun1015| | 2015-11-9 14:41 | 只看该作者
感觉,玩的好高大上!!!!

使用特权

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

本版积分规则

个人签名:www.versaloon.com --- under construction

266

主题

2597

帖子

104

粉丝