2018年8月

Xilinx Jtag 驱动问题

Win10 64位系统,原先由Vivado 2016.4,又安装Vivado18.1后,Jtag识别异常

第一次连接USB-JTAG下载器时,在设备管理器指定驱动程序位置:C:\Xilinx\Vivado\2017.4\data\xicom\cable_drivers\nt64后,显示驱动安装成功,出现如下现象;

现象:
下载器上的连接指示灯不亮,但系统设备列表里显示USB连接设备正常,名称为:
xilinx embedded platform. usb firmware loader,vivado识别不到JTAG设备

解决方法:
1)安装Jungo驱动:找到低版本vivado安装后文件夹,如C:\Xilinx_16.4\Vivado\2016.4\data\xicom\cable_drivers\nt64\:
管理员运行install_drivers_wrapper.bat,
安装完成后设备管理器中出现Jungo–WinDriver设备;

2)插入Cable后,在设备管理器中选中xilinx embedded platform. usb firmware loader设备,右击“卸载设备”,勾选“删除此设备的驱动程序软件”,删除之前驱动;某些机器会提示重启

3)重新拔插Usb Cable,系统将自动识别设备并自动安装正确驱动,此时设备列表显示:Xilinx USB Cable
Vivado可识别到JTAG设备。

参照:Xilinx Platform Cable USB下载器识别

Linux环境Qt打包-linuxdeployqt

使用linuxdeployqt工具,git项目地址:https://github.com/probonopd/linuxdeployqt

1. Qt环境
确保设备已经安装了Qt环境

2. 设置qmake环境变量PATH

root@ubuntu:~# export PATH=/opt/Qt5.11.1/5.11.1/gcc_64/bin:$PATH

检查qmake环境变量设置情况

root@ubuntu:~# qmake -v
QMake version 3.1
Using Qt version 5.11.1 in /opt/Qt5.11.1/5.11.1/gcc_64/lib

3. 下载linuxdeployqt
linuxdeployqt release版:https://github.com/probonopd/linuxdeployqt/releases

wget https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage

将linuxdeployqt-continuous-x86_64.AppImage移动到/opt/linuxdeployqt-continuous-x86_64目录下

mkdir /opt/linuxdeployqt-continuous-x86_64
cp linuxdeployqt-continuous-x86_64.AppImage /opt/linuxdeployqt-continuous-x86_64/

4.设置linuxdeployqt环境变量
root@ubuntu:~# export PATH=/opt/linuxdeployqt-continuous-x86_64/:$PATH

准备工作完成。

5. Qt工程生成Release版程序,将生成的二进制文件单独复制到一个路径,shell切换到二进制文件所在路径,执行如下命令(其中K7_PCIe2-DMA为生成的二进制文件)

root@ubuntu:~/Desktop/K7_PCIe2-DMA# linuxdeployqt-continuous-x86_64.AppImage K7_PCIe2-DMA -appimage

参考:
https://blog.csdn.net/enaldick12/article/details/63255934
https://blog.csdn.net/zjx18915341085/article/details/79715075

STM32 设置 A13、A14、B15、B3、B4为普通IO使用

STM32 的PA13、PA14、PA15、PB3、PB4主要是用来JTAG调试用的,于是在默认下是启动后为JTAG模式,但是对于不需要JTAG而需要充分利用GPIO口时,就需要将JTAG关闭,设置为GPIO模式。
与JTAG有关的为PA13、PA14、PA15、PB3、PB4
与SWD有关的为PA13、PA14

// 使能对应管脚的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);  //打开PA时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);  //打开PB时钟

// 这几个管脚的复位后功能不是IO口,而是JTAG口,需要复用为IO
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);   //打开复用时钟----重要

// 关掉JTAG功能,保留SW  即PB3、PB4、PA15设置为普通IO,PA13、PA14仍为调试管脚
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//关掉JTAG,不关SW
// 关掉SW  即PA13、PA14、PA15、PB3、PB4全部设置为普通IO
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);//关掉SW

注:
关掉JTAG功能,保留SW后,将不再可以使用JTAG调试下载程序,只能通过SW进行下载调试
关掉SW功能后,将不再可以使用JTAG、SW功能调试下载程序

参考文章:
STM32 关闭JTAG 使用相应GPIO口 简单记录
stm32不小心把SWD和JTAG都给关了,程序下载不进去,解决办法

Ubuntu Linux 安装 .7z 解压和压缩文件

安装方法:

sudo apt-get install p7zip

解压文件:

7z x manager.7z -r -o /home/xx

解释如下:
x 代表解压缩文件,并且是按原始目录解压(还有个参数 e 也是解压缩文件,但其会将所有文件都解压到根下,而不是自己原有的文件夹下)manager.7z 是压缩文件,这里大家要换成自己的。如果不在当前目录下要带上完整的目录
-r 表示递归所有的子文件夹
-o 是指定解压到的目录,这里大家要注意-o后是没有空格的直接接目录

压缩文件:

7z a -t7z -r manager.7z /home/manager/*

解释如下:
a 代表添加文件/文件夹到压缩包
-t 是指定压缩类型 一般我们定为7z
-r 表示递归所有的子文件夹,manager.7z 是压缩好后的压缩包名,/home/manager/* 是要压缩的目录,*是表示该目录下所有的文件。