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

[复制链接]
7406|7
 楼主| Simon21ic 发表于 2013-3-13 14:28 | 显示全部楼层 |阅读模式
本帖最后由 Simon21ic 于 2013-3-13 14:30 编辑

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

==,不光是这个哦。。。再来看看,别人当初要**stlink的目的不也就是为了加一个CDC吗?:
stlink_usb.jpg
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支持,可以调试的东西就多了去了
 楼主| Simon21ic 发表于 2013-3-13 21:17 | 显示全部楼层
王紫豪 发表于 2013-3-13 15:40
恭喜楼主!
希望能贡献出了点什么

明天我估计就没什么时间了,这个就暂时搁置。
其实,能够做的贡献,估计就等我硬件弄好后,帮忙做一些测试吧。
 楼主| Simon21ic 发表于 2013-3-13 22:46 | 显示全部楼层
本帖最后由 Simon21ic 于 2013-3-13 22:49 编辑

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

  1. // PLL0CON: disable PLL
  2.   47.2  OUT    f2 08 80 c0  0f 40 04 00  00 00 00 00  00 00 00 00  .....@..........   32ms        54.1.0        
  3.   47.2  OUT    00 00 00 00                                         ....              1.0ms        55.1.0        
  4.   47.2  OUT    f2 3b 00 00  00 00 00 00  00 00 00 00  00 00 00 00  .;..............  974us        56.1.0        
  5.   47.1  IN     80 00                                               ..                1.0ms        57.1.0        
  6. // PLL0FEED
  7.   47.2  OUT    f2 08 8c c0  0f 40 04 00  00 00 00 00  00 00 00 00  .....@..........  1.0ms        58.1.0        
  8.   47.2  OUT    aa 00 00 00                                         ....              1.0ms        59.1.0        
  9.   47.2  OUT    f2 3b 00 00  00 00 00 00  00 00 00 00  00 00 00 00  .;..............  1.0ms        60.1.0        
  10.   47.1  IN     80 00                                               ..                1.0ms        61.1.0        
  11. // PLL0FEED
  12.   47.2  OUT    f2 08 8c c0  0f 40 04 00  00 00 00 00  00 00 00 00  .....@..........  1.0ms        62.1.0        
  13.   47.2  OUT    55 00 00 00                                         U...              1.0ms        63.1.0        
  14.   47.2  OUT    f2 3b 00 00  00 00 00 00  00 00 00 00  00 00 00 00  .;..............  1.0ms        64.1.0        
  15.   47.1  IN     80 00                                               ..                1.0ms        65.1.0        
  16. // CCLKCFG
  17.   47.2  OUT    f2 08 04 c1  0f 40 04 00  00 00 00 00  00 00 00 00  .....@..........  1.0ms        66.1.0        
  18.   47.2  OUT    00 00 00 00                                         ....              1.0ms        67.1.0        
  19.   47.2  OUT    f2 3b 00 00  00 00 00 00  00 00 00 00  00 00 00 00  .;..............  998us        68.1.0        
  20.   47.1  IN     80 00                                               ..                990us        69.1.0        
  21. // SCS: enable main oscillator
  22.   47.2  OUT    f2 08 a0 c1  0f 40 04 00  00 00 00 00  00 00 00 00  .....@..........  1.0ms        70.1.0        
  23.   47.2  OUT    20 00 00 00                                          ...              1.0ms        71.1.0        
  24.   47.2  OUT    f2 3b 00 00  00 00 00 00  00 00 00 00  00 00 00 00  .;..............  1.0ms        72.1.0        
  25.   47.1  IN     80 00                                               ..                1.0ms        73.1.0        
  26. // CLKSRCSEL: select main oscillator as PPL0 source
  27.   47.2  OUT    f2 08 0c c1  0f 40 04 00  00 00 00 00  00 00 00 00  .....@..........   53ms        74.1.0        
  28.   47.2  OUT    01 00 00 00                                         ....              1.0ms        75.1.0        
  29.   47.2  OUT    f2 3b 00 00  00 00 00 00  00 00 00 00  00 00 00 00  .;..............  1.0ms        76.1.0        
  30.   47.1  IN     80 00                                               ..                1.0ms        77.1.0        
  31. //
  32.   47.2  OUT    f2 08 00 c0  0f 40 04 00  00 00 00 00  00 00 00 00  .....@..........  1.0ms        78.1.0        
  33.   47.2  OUT    3a 00 00 00                                         :...              1.0ms        79.1.0        
  34.   47.2  OUT    f2 3b 00 00  00 00 00 00  00 00 00 00  00 00 00 00  .;..............  1.0ms        80.1.0        
  35.   47.1  IN     81 00                                               ..                1.0ms        81.1.0        
IAR使能了主晶振后,系统就挂了,原因:主晶振没有焊接,焊接上去就OK了。
花了几小时测试一下了手头上有的其他cortex,stlink支持其他cortex只能使用SWD接口。目前估计一般的CortexM0/3/4应该都可以支持,CortexM0+的话,木有芯片测试,并且已知kinetis不支持(因为对DAP都了手脚,还没有硬件来研究)。
如果使用JTAG的话,程序就需要增加目标芯片的自动检测,以及根据检测到的目标芯片,自动设置JTAG参数。
lio 发表于 2014-7-24 08:28 | 显示全部楼层
大师的救我
lingjun1015 发表于 2015-11-9 14:41 | 显示全部楼层
感觉,玩的好高大上!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

266

主题

2597

帖子

104

粉丝
快速回复 在线客服 返回列表 返回顶部