昭通市网站建设_网站建设公司_内容更新_seo优化
2026/1/19 17:18:31 网站建设 项目流程

libero ProASIC3 A3P250 JTAG-DirectC 源码分析一

1、JTAG 接口 描述

image

 

2、  read idcode 

void dp_read_idcode(void)
{opcode = IDCODE;IRSCAN_in();goto_jtag_state(JTAG_RUN_TEST_IDLE,0u);DRSCAN_out(IDCODE_LENGTH, (DPUCHAR*)DPNULL, global_buf1);device_ID = (DPULONG)global_buf1[0] | (DPULONG)global_buf1[1] << 8u | (DPULONG)global_buf1[2] << 16u | (DPULONG)global_buf1[3] << 24u;device_rev = (DPUCHAR) (device_ID >> 28);#ifdef ENABLE_DISPLAYdp_display_text("\r\nActID = ");dp_display_value(device_ID,HEX);#endifreturn;
}
 
  1. 指令  IDCODE  =  0x0Fu
  2. IRSCAN_in()→  goto_jtag_state(JTAG_SHIFT_IR,0u); 该函数 是 将“JTAG 16种状态” 变成  JTAG_SHIFT_IR 状态;
  3. dp_shift_in(0u, OPCODE_BIT_LENGTH, &opcode, 1u); 函数 将  指令 ‘IDCODE  =  0x0Fu’ 共计 8bit  发送出去,通过  TDI 引脚!
  4. goto_jtag_state(JTAG_PAUSE_IR,0u); 将  将“JTAG 16种状态” 变成  JTAG_PAUSE_IR 状态;
  5. goto_jtag_state(JTAG_RUN_TEST_IDLE,0u); 转换到  JTAG_RUN_TEST_IDLE 状态!
  6. goto_jtag_state(JTAG_SHIFT_DR,0u);  转换到 JTAG_SHIFT_DR 状态!
  7. 保存 TDO 输出的数据 ,共计 32bit  ,存到 global_buf1 数组中,共计4个字节!
  8. goto_jtag_state(JTAG_PAUSE_DR,0u);  转换到 JTAG_PAUSE_DR 状态!
  9. 结束!

JTAG 16种 状态图:

image

 

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询