主题 : 请教一下关于minijtag 在openocd 中的使用 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 11156
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
综合积分: 14 分
注册时间: 2009-11-28
最后登录: 2017-09-13
楼主  发表于: 2010-03-26 10:42

 请教一下关于minijtag 在openocd 中的使用

请教一下关于minijtag 在openocd 中的使用

开发板自带的minijtag 的连接并口的是:2 3 4 11 这四个引脚,而openocd里的chameleon 的引脚定义是 0x01 0x02 0x04 0x80 前三个都能对应上,第四个0x80对应是9号引脚才对呀??
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2010-03-26 14:12
openocd对于TDO_MASK和TDI_MASK, TMS_MASK, TCK_MASK的用法是不同的,具体看parport.c里的parport_read和parport_write这两个函数。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 18038
精华: 0
发帖: 10
金钱: 50 两
威望: 20 点
综合积分: 20 分
注册时间: 2010-04-04
最后登录: 2010-06-07
2楼  发表于: 2010-04-06 22:38
不是很明白?求解惑!!
static int parport_read(void)
{
    int data = 0;

#if PARPORT_USE_PPDEV == 1
    ioctl(device_handle, PPRSTATUS, & data);
#else
    data = inb(statusport);
#endif

    if ((data ^ cable->INPUT_INVERT) & cable->TDO_MASK)
        return 1;
    else
        return 0;
}
static void parport_write(int tck, int tms, int tdi)
{
    int i = wait_states + 1;

    if (tck)
        dataport_value |= cable->TCK_MASK;
    else
        dataport_value &= ~cable->TCK_MASK;

    if (tms)
        dataport_value |= cable->TMS_MASK;
    else
        dataport_value &= ~cable->TMS_MASK;

    if (tdi)
        dataport_value |= cable->TDI_MASK;
    else
        dataport_value &= ~cable->TDI_MASK;

    while (i-- > 0)
        parport_write_data();
}