【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

jtag调试是嵌入式开发中常用的一种调试方法。目前大多数soc都支持jtag调试,开发者只需要一个jtag转接器,一边是usb口连接电脑,一边是jtag连接开发板,就可以顺利进行后续的开发和调试工作了。

1、jtag是硬件协议

jtag和spi、nand、uart、iic一样,是一个硬件协议,主要由5个pin组成,分别是tdi、tdo、clk、rst、tms。

2、jtag的主要功能

目前,jtag主要负责下载和调试两个功能。下载,即利用jtag将二进制文件下载到norflash或者是nandflash当中。调试,就是利用jtag实现对cpu的单步调试。这在开发的初始阶段是非常有用的。

3、jtag下载flash的基本原理

很多时候,jtag实现flash的下载功能,是因为jtag先实现一个最小bin文件,加载到内部sram中。紧接着jtag使能cpu,这个最小bin完成flash的驱动配置,将从jtag接受到文件写入到flash当中去,比如说stm32中下载算法就是这里说的最小bin文件,如果使用的不是通用型flash,那么就需要自己编写。

4、jtag调试原理

jtag调试离不开cpu内部的debug模块。所有的断点设置、外设访问、寄存器读取、ram操作这些动作都需要cpu的配合。除此之外,为了实现jtag和gdb的完美配合,还需要在上位机侧实现一个gdbserver + commnd解析工具,实现pc和usb的通信。

5、jtag的硬件实现

目前网上有一些jtag的开源实现方法,比如说openjtag。要做一个适合自己的仿真器或者下载器,一般需要一个stm32芯片,负责pc和仿真器通讯(usb通信),还需要一个fpga,负责jtag的收发操作。当然,fpga中的verilog代码也是需要自己完成的。

6、jtag的软件实现

除了硬件之外,jtag还需要一个command上位机程序、一个下位机的固件程序。当然,为了方便上位机使用,还需要设计一个GUI、gdbserver、command parse的框架。

7、jtag的基本流程

pc -> || usb -> stm32 -> fpga || -> dev board

pc <- || usb <- stm32 <- fpag || <- dev board

8、目前市场上的jtag工具

由于现在电脑普遍没有并口,现在用的最多的jtag调试工具还是jlink或者openjtag这样的usb转jtag调试板。

9、什么情况下不需要jtag

目前很多开发板支持从sd卡启动系统,那么这个时候其实不存在flash烧录的情况,也就无所谓jtag功能了。通常,一般的soc支持jtag、norflash、nandflash、sd四种启动方式,如果能用sd卡启动,那也是非常不错的一种选择。

随想录(jtag知识点小结)相关推荐

  1. python基础知识点小结(2021/2/9)

    python基础知识点小结(2021/2/9)持续更新中~~ 入门小知识 cmd 在cmd上进行python,直接输入 python\quad pythonpython 退出cmd输入 exit()\ ...

  2. C++重要知识点小结---3

    C++重要知识点小结---1:http://www.cnblogs.com/heyonggang/p/3246631.html C++重要知识点小结---2:http://www.cnblogs.co ...

  3. 线性表部分知识点小结

    线性表部分知识点小结 ------------------------------------- 开发工具与关键技术:<数据结构与算法> 作者:林敏静 撰写时间:2020年5月6日 --- ...

  4. 排序算法部分知识点小结

    排序算法部分知识点小结 ------------------------------------- 开发工具与关键技术:<数据结构与算法> 作者:林敏静 撰写时间:2020年4月26日 - ...

  5. C++基础知识点小结

    C++基础知识点小结 第一章 绪论 (1)cout 输出流的对象 (2)cin输入对象 (3)endl 输出控制符/操控符 (4)标识符 (5)命名空间(namespace) (6)左值: (7)右值 ...

  6. python语言基础知识点总结_Python语言的12个基础知识点小结

    Python语言的12个基础知识点小结 python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(g ...

  7. 气象统计方法期末知识点小结

    气象统计方法知识点小结 小知识点 气象统计诊断的基本步骤 资料收集 资料预处理 选取诊断方法 科学综合与诊断分析 气象统计预测的基本步骤 资料收集 选择合适的统计模型 统计检验 预测结论 一些概念 气 ...

  8. jdbctemplate 开启事务_SpringBoot 系列教程之事务隔离级别知识点小结

    上一篇博文介绍了声明式事务@Transactional的简单使用姿势,最文章的最后给出了这个注解的多个属性,本文将着重放在事务隔离级别的知识点上,并通过实例演示不同的事务隔离级别下,脏读.不可重复读. ...

  9. C语言指针知识点小结

    前期回顾   C语言指针基础知识点(一)–指针及指针变量   C语言指针基础知识点(二)–指针变量的引用   C语言指针基础知识点(三)–指针变量作为函数参数   C语言指针基础知识点(四)–通过指针 ...

最新文章

  1. 【数据库】Window环境安装MySQL Server 5.7.21
  2. angualr 单选全选方法(适用购物车/各种列表删除等)
  3. 理解 OpenStack 高可用(HA) (6): MySQL HA
  4. 在Mac电脑上如何对 Brotli格式进行压缩与提取
  5. PythonRabbitmq文档阅读笔记-生产者数据直接送入队列消费者消费
  6. websocket.js
  7. SQLSERVER的视图、函数、存储过程、触发器
  8. 一对电话线传输100M带宽不再是问题
  9. gitlab两种连接方式:ssh和http配置介绍
  10. 一份针对于新手的多线程实践
  11. LabVIEW入门教程
  12. 软件开发团队中各个成员的英文简称
  13. HBuilderX - 高效极客技巧
  14. POSCMS 邮件服务器配置
  15. Lenovo 使用BoMC工具制作微码升级U盘刷新System x
  16. Java eclipse控制台按任意键返回主菜单 控制台清屏
  17. 如何换照片背景底色?在线证件照换背景怎么换
  18. Enhancing Quality for HEVC Compressed Videos
  19. 分立元器件——电阻器
  20. 硬件电气接线需要注意的问题汇总

热门文章

  1. java后台发送请求并获取返回值(续)
  2. linux安装操作系统以及配置ip地址
  3. 串行 RapidIO
  4. The Dataflow Model: A Practical Approach to Balancing
  5. iOS开发之数据存储之Preference(偏好设置)
  6. 实现简单的字符串队列
  7. oracle传输表空间功能测试(含详细过程)
  8. 技术专题:厦门9月30日限制路由(网络尖冰),WAYOS或ROS解决方案
  9. priority_quenue
  10. MySQL索引(1)