jTag

Jlink使用技巧之烧写SPI Flash存储芯片

こ雲淡風輕ζ 提交于 2021-02-12 04:29:24
前言 大多数玩单片机的人都知道Jlink可以烧写Hex文件,作为ARM仿真调试器,但是知道能烧写SPI Flash的人应该不多,本篇文章将介绍如何使用JLink来烧写或者读取SPI Flash存储器,JLink软件包含的工具中,有一个是JFlashSPI工具,这就是一个烧写和读取SPI存储器的工具了。 准备 要烧写程序或读取程序的的Flash芯片:SPI协议的Flash都可以,如W25Q128。 JFlashSPI软件工具:在Jlink系列软件的安装目录下 JLink V9仿真器 要烧写的文件:如GBK字库文件,UNIGBK.BIN 硬件连接 Jlink内部集成了SPI协议,部分接口是作为SPI复用功能的,具体硬件连接,如下图所示: 对于20P的标准JTAG接口 |引脚编号|名称|输入输出|和SPI Flash的连接| |----|-----|-----| |5|DI |输入|连接SPI Flash的MOSI引脚| |7|nCS |输出|连接SPI Flash的CS引脚| |9|CLK |输出|连接SPI Flash的CLK引脚| |13|DO |输出|连接SPI Flash的MISO引脚| 对于10P的JTAG接口 |引脚编号|名称|输入输出|和SPI Flash的连接| |----|-----|-----| |2|nCS |输出|连接SPI Flash的CS引脚| |4|CLK

STM32CUBEMX系列——CAN通讯的配置

眉间皱痕 提交于 2021-01-30 10:01:25
STM32CUBEMX系列——CAN通讯的配置 CUBEMX配置说明 CAN相关函数说明 过滤器的配置 回调函数的改写 发送函数的改写 CUBEMX配置说明 首先打开STM32CubeMX选择你开发的芯片型号,这里我选择的是F103R6Tx的芯片。然后第一步选择SYS里面的debug模式,如果用HAL库不进行SWD或JTAG配置,单片机只能进行下载一次程序,要进行第二次或更多次程序下载,需要按复位键(如果你的单片机有复位按键的话),或者用镊子夹住复位线路上的电容使其短路,点击Keil下载,再松开镊子。 然后RCC时钟源选择外部高速时钟,自接外部晶振 然后配置时钟树 配置CAN相关参数,波特率设定为500K,时钟频率为36M, 波特率计算公式:36M/9/(5+2+1)=500K. 模式选择正常通讯 CAN相关函数说明 HAL_CAN_Start //开启CAN通讯 HAL_CAN_Stop //关闭CAN通讯 HAL_CAN_RequestSleep //尝试进入休眠模式 HAL_CAN_WakeUp //从休眠模式中唤醒 HAL_CAN_IsSleepActive //检查是否成功进入休眠模式 HAL_CAN_AddTxMessage //向 Tx 邮箱中增加一个消息,并且激活对应的传输请求 HAL_CAN_AbortTxRequest //请求中断传输 HAL_CAN

逐飞与龙邱英飞凌miniwiggler仿真器硬件接口适配与差异总结

馋奶兔 提交于 2021-01-24 10:52:00
开头先放结论: USR0=TDO=DAP2 USR1=TDI 推理过程: 先看龙邱的核心板 线序: 3V3 TMS GND TCK GND TDO 未知1 未知3 未知2 RST 再看龙邱仿真器 显然 未知1=TX 未知2=RX TMS=DAP1 TCK=DAP0 USR0=TDO 未知3=USR1 根据英飞凌官网DAP接口共用表格 (https://www.infineon-autoeco.com/BBS/Detail/270) TCK=DAP0 TMS=DAP1 TDO=DAP2 第一第二条与我们先前的结论相印证, 第三条结合先前结论可知:USR0=TDO=DAP2 接下来观察逐飞仿真器线序 合理推测,上文中从未出现过的TDI即为USR1 我们再回看下这个张图 “JTAG四根通信线中,DAP可使用两根或三根” 显然TDI就是DAP用不到的那第四根。 所以,如果我们只使用英飞凌AURIX的DAP接口,TDI这根线是否连接并无影响。 并且,tc26x系列芯片不能使用JTAG接口,所以。。。这根线大可不接。 总结一下,英飞凌这款仿真器,不管是逐飞还是龙邱代理的,连接单片机的接口上都自带了串口,所以逐飞阉割了单独的串口接口。因为tc26x不能用JTAG且连接单片机的接口上已经整合了四线的JTAG,所以逐飞选择阉割单独的JTAG接口。因为板子上既有古董usb接口又有typec

JTAG、JLink、ULINK、ST-LINK仿真器区别(转)

与世无争的帅哥 提交于 2021-01-24 06:12:42
首先要了解一下JTAG。 JTAG协议 JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 相关JTAG引脚的定义为: TMS:测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式; TCK:测试时钟输入; TDI:测试数据输入,数据通过TDI引脚输入JTAG接口; TDO:测试数据输出,数据通过TDO引 脚从JTAG接口输出; JTAG协议在定义时,由于当时的计算机(PC机)普遍带有并口,因而在连接计算机端是定义使用的并口。而计算机到了今天,不要说笔记本电脑,现在台式计算机上面有并口的都很少了,取而代之的是越来越多的USB接口。那么能不能让JTAG支持USB协议,用USB接口来调试ARM呢?这就要说到JLINK和ULINK了。 说明:关于JTAG原理,请参考文章《 JTAG调试原理 》。 JLink仿真器 J-Link是德国SEGGER公司推出基于JTAG的仿真器。简单地说,是给一个JTAG协议转换盒,即一个小型USB到JTAG的转换盒,其连接到计算机用的是USB接口

教学开发板上的uart串口实验

為{幸葍}努か 提交于 2021-01-22 09:43:19
硬件资源 教学开发板(如下图所示)是带有USB-UART转接桥的,桥接到J6连接器。PC可以通过标准的COM端口命令连接到电路板。电脑需要有USB-COM串口驱动程序才能顺利连接。 USB-UART与A7连接的情况如下图,使用双线串行端口(TXD/RXD)和可选的硬件流控制(RTS / CTS)与FPGA交换串行端口数据。安装驱动程序后,可以从指向COM端口的PC使用I / O命令,以在C4和D4 FPGA引脚上产生串行数据流量。 FT2232HQ也可用作Digilent USB-JTAG电路的控制器,但USB-UART和USB-JTAG功能完全相互独立。 有兴趣在其设计中使用FT2232的UART功能的编程人员无需担心JTAG电路干扰UART数据传输,反之亦然。 将这两个功能组合到一个设备中,可以对Nexys A7进行编程,通过UART进行通信,并通过连接有单根Micro USB线缆的计算机供电。 传输模式 FT2232有两个通信的方向可以实现全双同的通信方式,但是需要串行传输每次传输一位。所以在发送数据的时候需要先将其 串行化 。 数据传输的时候没有时钟信号统一控制,通过 异步传输 的方式。实现异步传输的时候就需要有一个方式来告知对方这边要开始传输数据了。串口传输的时候通常如下: PC和电路板约定一个波特率,使其发送和接收的速度一致 没有数据传输的时候,数据线置高位

linux嵌入式系统开发小知识分享,嵌入式开发教程哪家好?

China☆狼群 提交于 2021-01-21 10:55:47
嵌入式入门你知多少?对于一些初入门的初学者而言,对嵌入式入门的一些知识有助于后期的学习,从嵌入式技术的应用前景以及到ARM认知到开发板等等。嵌入式企业用人需求在增长。 如今的嵌入式开发大热是ARM+Linux,还有就是Android系统平台,但对于ARM的发展的前景来讲,可谓是一片大好,翻开各个公司的网站,在招聘里面嵌入式工程师占据了大半工程师的职位,但在找工作当中,企业对于单纯的嵌入式开发核心技术,ARM开发来说要多于其他相关技术。如单片机、fpga、DSP工程师等,当然这是因为ARM在微处理器方面占着领军地位。 ARM是硬件还是软件 很难说,ARM 是硬件,LINUX 是软件。ARM 的硬件多半已经模块化了,实际中的 LINUX 的开发工作更多,更耗时。从这方面说 ARM 应该算是软件了。 在找工作中更是这样,就拿真实的例子来讲,联想里和 ARM 最接近的是“BIOS 工程师”是软件,MOTO里接近的是嵌入式LINUX工程师是软件。而其他很多公司把嵌入式产品开发归为硬件。看到这些,你就会想其实最关键的还是玩转好自己的板子。 嵌入式开发板的重要性 从个人经验来讲最好还是买现成的,在买板子上可以把注意力集中到软件开发上,这样软件开发方面就不必太过担心,对生育硬件方面可以尝试一边调试一边写驱动和程序,当然最好在每次写驱动前就先确认硬件没问题,当然如果自己做就可以更了解底层硬件

嵌入式linux系统开发教程

我是研究僧i 提交于 2021-01-21 09:31:41
在学习嵌入式开发的过程中,尤其是开始入门时,包括各种各样的教程,都是在讲学习linux,很少讲如何利用linux来开发属于自己的嵌入式项目,也就是没有一个全局的概念,简单理解,大概流程如下: 一、建立开发环境 操作系统当然是LInux,或者在win系统下安装虚拟机,通过网络下载相应的GCC交叉编译器进行安装,或者安装产品厂家提供的交叉编译器。 这一步,就相当于在win系统下,要安装一个IDE开发环境,如MDK,IAR等。 二、配置开发主机 主要是配置minicom,也就是串口助手,minicom软件是作为调试嵌入式开发板信息输出的监视器和键盘输入工具,是一个非常方便的工具,我们开发其他嵌入式程序时,其实很多时候也采用串口调试,所以最终原理都是相通的。 配置网络,主要是配置NFS网络文件系统,这个主要是用于下载程序,当然不配置也可以,有很多别的办法。 三、建立引导装在程序的bootloader 常用的bootloader主要有u-boot、vivi等,貌似主流的就是u-boot,这个根据自己具体的芯片进行移植修改。有些芯片是没有内置引导加载程序的,这就需要编写开发板上的Flash的少些程序,当然也可以用windows下的通过JTAG并口和仿真器少些Flash芯片程序,也有linux下的公开源代码的J-Flash程序,所以在设计自己的硬件时,可以预留多种方式。 简单的讲

使用Python开发鸿蒙应用--2021.01.07直播图文

穿精又带淫゛_ 提交于 2021-01-16 19:40:03
写在前面: 每年的过年前夕,手中的项目一定会告急。。。而自己又缺乏三头六臂七十二变等特技,所以只能在鸿蒙社区先消失一阵子了。今天再看社区的帖子,发现大家的进步可不一般,各种案例示例层出不穷,一片欣欣向荣的景象!在这样的氛围下,我又来了分享的欲望,希望自己的一点积累能为鸿蒙宇宙添砖加瓦。 直播主题回顾: 考虑到很多同学可能是新手,这里首先要谈谈交叉编译的概念! 交叉编译是嵌入开发中的基础概念,名字看起来高端大气上档次,但其本质还是编译,也就是把C/C++代码编译成可执行程序,和我们初学C/C++语言时的 Hello World! 程序编译几乎完全相同。 那么,你可能会问,不同之处在哪里? 不同之处仅仅是,Hello World! 在本机编译,可执行程序在本机运行;而交叉编译则是: 程序在本机编译,而可执行程序在设备运行(即:本机无法直接运行交叉编译得到的二进制文件)。 对于大型嵌入式企业,开发环境一般分为两个部分:代码编辑环境和代码编译环境。产品代码位于代码服务器上,每个员工远程登录代码服务器之后创建自己的代码分支,之后就可以进行代码编辑和编译了。其中,代码编辑是在员工的工作PC上完成;而代码编译则是在服务器上完成。编译得到的二进制可执行程序,需要拷贝到工作PC上之后烧写到设备中。 大家通过类比可以发现,其实目前的鸿蒙设备开发方式就是企业级嵌入式产品的开发方式,只不过进行了缩减而已

#2020征文-开发板# 用鸿蒙开发AI应用(一)硬件篇

女生的网名这么多〃 提交于 2021-01-13 16:09:04
目录: 前言 开发板简介 产品特色及功能 产品参数 各个主板功能简介 Hi3516DV300 芯片手册 前言 鸿蒙2.0的系统刚开源出来,华为志在打造1+8+N万物互联的全场景智慧生活,不仅是国产操作系统之梦,一次开发多设备部署也戳中开发者的痛点。这次开源的主要是基于嵌入式实时场景的微内核版本,用于手机端的宏内核版本预计要到明年。 最近申请到了一块 HarmonyOS HiSpark AI Camera 开发板,我们来体验一下AI应用的开发。 开发板简介 Hi3516DV300作为新一代行业专用Smart HD IP摄像机SOC,集成新一代ISP、业界最新的H.265视频压缩编码器,同时集成高性能NNIE引擎,使得Hi3516DV300在低码率、高画质、智能处理和分析、低功耗等方面引领行业水平。 产品特色及功能 主芯片Hi3516DV300 为海思Smart HD IP Camera SoC:双核Cortex-A7 @900MHz 处理器;集成新一代 ISP、业界最新的 H.265 视频压缩编码器,同 时集成高性能NNIE 引擎,1.0TOPS。 支持Linux OS、Lite OS、鸿蒙OS 多操作系统 一组DDRC,支持32bit/1GB 处理空间,最大数据速率1.8Gbps eMMC4.5,支持4bit/8GB 存储空间 外部扩展SD 存储接口,最大支持2TB SDXC 卡

2.移植uboot-添加2440单板,并实现NOR、NAND启动

喜你入骨 提交于 2021-01-12 08:04:03
上章分析了 uboot启动流程 后,接下来便来配置新的单板,实现nor、nand启动 1.首先在uboot里新建单板2440 1.1 将2410的单板文件夹拷贝成 2440 : cd board/samsung/ cp smdk2410 smdk2440 -rf // 拷贝文件夹, 然后将smdk2440下的smdk2410.c改为 smdk2440.c ,以及修改更改好的Makefile 1.2 将2410的头文件拷贝成 2440 : cd ../../include/configs/ cp smdk2410.h smdk2440.h 2.新建后,还需要修改boards.cfg,使uboot支持2440单板: 仿照 smdk2410 arm arm920t - samsung s3c24x0 添加: smdk2440 arm arm920t - samsung s3c24x0 添加后,就能够使用 make smdk2440_config 命令. (该命令便会调用include/configs/smdk2440.h和board/samsung/smdk2440里的文件来配置uboot) 3.修改uboot系统时钟 在start.S里,uboot只设置了 CLKDIVN寄存器 而2440的系统时钟需要设置两个寄存器: MPLLDIVN (设置FCLK频率)、 CLKDIVN