Chocore 发表于 2012-3-26 10:55

如何自定义添加基于FTDI的调试器

本帖最后由 Chocore 于 2012-3-26 11:24 编辑

很多调试器都使用了FTDI FT2232 或类似芯片做为主控芯片。CooCox用户可以自定义基于FT2232 的调试器。

在CoIDE 和CoFlash 安装后的目标文件夹中,有一个配置调试器的文件夹\config\adapter。自定义调试器需要对该文件夹下的文件做适当修改。

一、向CoFlash添加基于FTDI的调试器
以调试器Turtelizer2为例:

1. 在adapterlist.xml 文件中添加行
<adapter name="Turtelizer2 "config="Turtelizer2.xml"/>

2. 复制icdi.xml并重命名为Turtelizer2.xml

3. 修改文件中的调试器名称为Turtelizer2,修改厂商名
此时CoFlash的调试器选项中已能看到添加的Turtelizer2(如下图)。



要让调试器在CoFlash正常工作,还需要进行最后一步。
注意:CooCox目前只支持FTDI调试器的JTAG调试,SWD调试暂不支持。

4. 修改transaction的mask和value参数值
基于FTDI FT2232的调试器,都使用了FTDI芯片的MPSSE模式。这个模式使用芯片的Channel A,Channel A有8 + 4个IO。 除了TMS, TDI, TDO, TCK外,其他IO有的对应使能/禁能控制信号,有的控制LED灯的亮/灭,不同调试器使用的IO也不同。

transaction中,mask用来设置IO的方向, 1为输出,0为输入。每一位对应一个IO。




Bit 11
10
9
8




ACBUS3
ACBUS2
ACBUS1
ACBUS0








7
6
5
4
3
2
1
Bit 0
ADBUS7
ADBUS6
ADBUS5
ADBUS4
ADBUS3
ADBUS2
ADBUS1
ADBUS0




TMS
TDO
TDI
TCK
                                                                                                                                       

其他引脚的功能请参见该调试器的相关手册。

1)Open transaction时,低4位设置如下表:


ADBUS3
ADBUS2
ADBUS1
ADBUS0
功能
TMS
TDO
TDI
TCK
方向(mask)
1
0
1
1
初始值(value)
0
0
0
0
                                                                                                            

此外,还需使能JTAG_EN,控制部分状态灯点亮,使复位信号控制位无效。

2)Close transaction时,禁能JTAG_EN,设置其他位为输入态。

3)Reset transaction时,TMS,TDO,TDI,TCK,JTAG_EN等位的设置与1)相同,复位信号控制IO设置为输出,并输出有效信号。点亮一些状态灯。

4)Busy transaction时,一般是亮一个busy灯,TMS,TDO,TDI,TCK,JTAG_EN等位的设置与1)相同。

二、向CoIDE添加基于FTDI的调试器
由于CoIDE的下载调试功能与CoFlash不同,如直接添加,界面中不会出现调试器选项。

用户修改已有调试器的mask和value参数,选择该调试器作为替代即可。

请您在下载和调试测试成功后将XML文件发送到Master@coocox.com,我们会添加相应调试器的支持,方便更多用户使用。

点此访问更多CoIDE支持的调试器信息。
页: [1]
查看完整版本: 如何自定义添加基于FTDI的调试器