- 博客(210)
- 资源 (27)
- 收藏
- 关注
原创 xilinx低延时视频编解码方案
xilinx的Zynq® UltraScale+™ MPSoCs(EV系列,ZCU106开发板)有一个视频编解码硬核VCU,能实现多种profile/level的H264/H265编解码能力,最高支持一路3840x2160@60或4096x2160@60 yuv422的分辨率,支持yuv422 10 bit HDR等,详细请参考《PG252》文档。 总共支持4种不同延时的编解码能力: VCU的软件框架使用了Gstreamer跨平台多媒体处理框架,可...
2020-09-18 00:03:20
8893
7
原创 RK3399 android8.1 app获取root权限
这里指的是app能利用Runtime.getRuntime().exec("su")或者ProcessBuilder()等创建一个新的具有root权限的shell终端进程,而不是app本身拥有root权限。使得app自身具有root权限这个我没有研究过,但使得app自身具有system权限则可以使用签名,在Android Framework 之HelloWorld(三)里有描述。 我是参考了[九鼎RK3399Pro] Android 8.1 系统定制给用户root权限这篇文...
2020-08-23 22:12:13
3339
原创 Android Framework 之HelloWorld(三)
本来是要写一个linux驱动,用于控制led灯的,但考虑到nanopc-T4的内核已经帮我们配置好设备树,已经可以利用/sys/class/gpio操作gpio了,所以没必要再造轮子了! 在shell里,可以利用下面的命令控制Led灯的亮与灭:#导出GPIO1_A0管脚echo 32 > /sys/class/gpio/export#让GPIO1_A0管脚作为输出使用echoout > /sys/class/gpio/gpio32/direction...
2020-08-23 14:58:35
885
原创 Android Framework 之HelloWorld(二)
因为HelloWorld的功能是点亮一盏Led灯,因为功能简单,我们就不使用硬件访问服务了,直接使用JNI的方式操作底下硬件。JNI不是Android特有对的,而是java语言自带的特性。有兴趣可以查阅jni的官方接口规范文档。 我们先写java端,...
2020-08-23 12:35:03
349
原创 Android Framework 之HelloWorld(一)
我用是友善之臂的NanoPC-T4开发板,CPU是瑞芯微rk3399,搭载android8.1版本,之后的实验都基于此平台。开发板的wiki百科在http://wiki.friendlyarm.com/wiki/index.php/FriendlyThings_for_RK3399/zh,有兴趣的可以阅读一下。我不是打广告,我都是二手市场淘的,别人不要我便宜买了。 这个Hellworld的最终功能是操控一个gpio管脚,控制外接led灯的亮和灭。 理论...
2020-08-19 19:24:15
386
原创 Android studio4.0.1尝鲜
Android studio4.0.1是目前最新稳定版,可到https://developer.android.google.cn/studio下载安装。在能上网的电脑上安装Android studio似乎很简单,在离线环境下安装则很痛苦,尤其是gradle这套环境,Android studio4.0.1里面很多配置选项跟之前的版本不一样了,网上很多资料都过时了,而且官网给出的offline-gmaven-stable.zip与Android studio4.0.1版本也不匹配,在C:\Us...
2020-08-19 19:04:47
1050
转载 C盘“瘦身”计划
为什么给C盘分了100多个G,依然不够用?为什么整个128G的固态硬盘作为系统盘,不到一年C盘就用掉90%空间?你是否有这样的疑问,那么请细细看这篇文章,事实证明确实能够让你的C盘真正清理。先来介绍几个好朋友:名称 清理率 风险性 Windows 自带磁盘清理工具 10%左右 极低 开源清理工具 Dism++ 12%左右 低 磁盘分析工具SpaceSniffer 8%左右 中 WindowsInstaller目...
2020-08-16 13:59:07
309
原创 evpp网络库代码分析(二)
EventLoop类的实现。 EventLoop类主要实现了如下几个功能:提供libevent2的事件循环,提供Ttimer功能,
2020-08-02 19:05:49
1054
原创 设置Hi3536的HDMI2.0自定义显示时序
Hi3536的SDK定义了一些常见的分辨率,诸如3840X2160@30/1920X1080@60/3840X2160@60等:typedef enum hiVO_INTF_SYNC_E{ VO_OUTPUT_PAL = 0, VO_OUTPUT_NTSC, VO_OUTPUT_960H_PAL, /* ITU-R BT.1302 960 x 576 at 50 Hz (interlaced)*/ VO_OUTPUT_960H...
2020-07-14 11:36:07
3054
原创 调整Hi3536的VO显示延迟
Hi3536的时钟管理可以参考《Hi3536 H.265解码处理器用户指南.pdf》的“3.2.3 时钟资源分布”章节。其中,与视频相关的PLL是vpll0和vpll1。当MPP使用VHD0作为显示设备时,内部使用vpll0,涉及的寄存器为PERI_CRG_PLL4和PERI_CRG_PLL5,基地址为0x1204_0000:和可以理解为根据上述两组寄存器,就可以微调VO输出的频率,文档上有计算公式:举个例子,假设输出1920x1080@60,理论上像...
2020-07-13 23:12:08
2139
原创 evpp网络库代码分析(一)
evpp是奇虎360内部使用的开源多线程网络库,集tcp/udp/http多种协议的服务器和客户端支持。github代码路径是:https://github.com/Qihoo360/evpp,可以不依赖boost库,使用现代c++14语言(evpp/invoke_timer.cc的lambda表达式使用到了c++14的特性)进行编码。本项目高度参考了muduo网络库,而底层使用现成的libevent库作为事件驱动库,典型的一个reactor网络编程模式的例子,本文就是通过分析evpp源码来...
2020-07-04 20:46:46
2935
原创 linux usb gadget驱动详解(五)
现从fsg_bind()讲起。//不失一般性,删掉错误处理和configfs相关代码static int fsg_bind(struct usb_configuration *c, struct usb_function *f){ struct fsg_dev *fsg = fsg_from_func(f); struct fsg_common *common = fsg->common; struct usb_gadget *gadget = c->cdev-...
2020-07-04 12:46:40
4816
7
原创 linux usb usbip驱动详解(六)
我们开始讲解usbip-host驱动原理。 我们前面一直都没有讲devid的作用,本文会详细讲解。 usbip-host驱动源文件大多以stub_*命名,我们先看stub_main.c的usbip_host_init()函数:static int __init usbip_host_init(void){ int ret; init_busid_table(); stub_priv_cache = KMEM_CACHE(stub_priv...
2020-07-02 22:59:55
2472
原创 linux usb usbip驱动详解(三)
usbip协议很简单,总共有4对:OP_REQ_DEVLISTOP_REP_DEVLISTOP_REQ_IMPORTOP_REP_IMPORTUSBIP_CMD_SUBMITUSBIP_RET_SUBMITUSBIP_CMD_UNLINKUSBIP_RET_UNLINK分为控制命令和数据传输命令两大类。控制命令主要是用来list设备或者导出设备:在C/S模式中基本都是client发出请求,譬如当client在“usbip attach -r 192.168.100.191 -b 2-
2020-07-02 01:53:48
3729
4
原创 linux usb usbip驱动详解(二)
终于来到usbip驱动代码分析了! 我们在做产品时,通常是先讨论方案、制定协议、编码和测试。 usbip的方案是行得通的,它是从URB对象获取信息,然后从tcp发送出去的,URB是linux usb子系统里面用于抽象usb通信而精心设计的对象,只要server和client两边在恰当的时机分别隔断各自系统的usb通信流程,然后巧妙地交换数据,各自系统都察觉不到,就像黑客利用钩子函数做rookit。如果server和client都是linux系统,就很容易理解了,毕竟部...
2020-07-01 21:54:11
2199
2
原创 linux usb usbip驱动详解(一)
在分析usbip驱动前,我们先来学习一下usb总线在linux系统下的表示。我们知道在linux中,/proc和/sys这个两个文件系统包含了很多有用的信息,所以usb的信息自然也少不了利用他们来展示。1,我们在《linux usb gadget驱动详解(三)》知道了ls /sys/class/udc 能查看系统注册了的udc驱动。2,cat /proc/devices能查看当前系统注册了哪些驱动,linux系统为每个已注册的设备驱动分配一个“主设备号”:Character devices
2020-07-01 16:57:24
9193
16
原创 Pycharm搭建python代码阅读环境
阅读别人写的python工程,只是使用notepad++的话不太方便,毕竟我们希望它能跳转到定义处,查看方法,看方法的说明,甚至运行调试环境。 因为编译环境在ubuntu下,Pycharm刚好能满足要求,而且有免费版提供。 但是需要配置环境路径,不然Pycharm会找不到包和模块,参考网上的做法,成功创建一个阅读python工程的环境:1,创建好工程(可参考其他资料,这里不再赘述)2,先File->Settings..弹出设置框。2,...
2020-06-09 00:21:34
532
转载 几种TCP连接中出现RST的情况
应该没有人会质疑,现在是一个网络时代了。应该不少程序员在编程中需要考虑多机、局域网、广域网的各种问题。所以网络知识也是避免不了学习的。而且笔者一直觉得TCP/IP网络知识在一个程序员知识体系中必需占有一席之地的。在TCP协议中RST表示复位,用来异常的关闭连接,在TCP的设计中它是不可或缺的。发送RST包关闭连接时,不必等缓冲区的包都发出去,直接就丢弃缓存区的包发送RST包。而接收端收到RST包后,也不必发送ACK包来确认。其实在网络编程过程中,各种RST错误其实是比较难排查和找到原因的。下面我列出
2020-05-30 12:48:48
1047
转载 Thrift语法参考
1、TypesThrift类型系统包括预定义基本类型,用户自定义结构体,容器类型,异常和服务定义(1) 基本类型bool: 布尔类型,占一个字节byte: 有符号字节i16:16位有符号整型i32:32位有符号整型i64:64位有符号整型double:64位浮点数string:未知编码或者二进制的字符串注意:thrift不支持无符号整形,因为很多目标语言不存在无符号整形(比如java)(2)容器类型List<t1>:一系列t1类型的元素组成的有序.
2020-05-25 11:31:13
989
原创 加强gcc的警告信息
CFLAGS = -g3 -Wall -Wextra -Werror -Wno-unused-function -Wno-unused-parameter -D_GNU_SOURCECXXFLAGS = -g3 -std=c++11 -Wall -Wextra -Werror -Wno-unused-function -Wno-unused-parameter
2020-05-21 19:01:08
294
原创 linux内核中断子系统基础知识
韦东山:一文看看尽linux对中断处理的前世今生韦东山:剥丝抽茧分析linux中断系统的重要数据结构韦东山:在Linux设备树(DTS)中指定中断_在代码中获得中断
2020-05-15 10:40:37
195
原创 Xilinx Artix7视频裁剪问题探讨
参考:https://www.cnblogs.com/jamesnt/p/3535073.html《ug472_7Series_Clocking.pdf》《pg065-clk-wiz.pdf》为了将一个3840x2160@30的视频裁剪为4路1920x1080@30输出,我使用了Xilinx 的XC7A35T-2FGG484C进行裁剪,用4颗HDMI1.4a Transmitter(s...
2020-04-17 14:16:29
733
原创 QT5的usb键鼠热插拔支持
有两种方案:1.利用系统的udev进行热插拔检测,QT本身是支持的,configure时默认是使用udev的,或者显式地加入选项也行“-libudev”,但嵌入式系统的udev要不版本太低,要不就规则文件描述不完整。所以很多嵌入式系统都不支持这种方式,除非你的文件系统移植了systemd,systemd有一个systemd-udev的程序专门用于处理热插拔事件,而且systemd文档齐全,不像...
2020-03-05 09:50:09
3271
转载 虚拟机VMware安装Kali Linux
转载自https://www.cnblogs.com/henuzyx/p/9144969.html本文讲解如何在虚拟机上安装Kali Linux,希望对大家有所帮助。 准备:一台电脑,VMware(VMware安装教程)一、下载系统镜像文件1.首先下载系统镜像,进入kali官网,在Downloads中选择Download Kali Linux,如下图所示。2....
2020-02-04 11:21:52
519
转载 Python网络爬虫实战:根据天猫胸罩销售数据分析中国女性胸部大小分布
转载自https://www.cnblogs.com/nokiaguy/p/9618475.html本文实现一个非常有趣的项目,这个项目是关于胸罩销售数据分析的。是网络爬虫和数据分析的综合应用项目。本项目会从天猫抓取胸罩销售数据,并将这些数据保存到SQLite数据库中,然后对数据进行清洗,最后通过SQL语句、Pandas和Matplotlib对数据进行数据可视化分析。我们从分析结果中可以得出很...
2020-02-04 11:15:34
833
原创 Linux实现的IEEE 802.1Q VLAN
https://blog.youkuaiyun.com/dog250/article/details/7354590
2020-01-16 16:04:03
420
转载 解决Linux内核问题实用技巧之 - Crash工具结合/dev/mem任意修改内存
Linux内核程序员几乎每天都在和各种问题互相对峙: 内核崩溃了,需要排查原因。 系统参数不合适,需要更改,却没有接口。 改一个变量或一条if语句,就要重新编译内核。 想稍微调整下逻辑却没有源码,没法编译。 ... 解决每一类问题都需要消耗大量的时间,特别是重新编译内核这种事情。于是,每一个Linux内核程序员或多或少都会掌握一些Hack技巧,以节...
2020-01-16 14:43:34
1914
原创 开源硬件USB抓包及协议分析工具分享
USB抓包工具属于小众产品,开源的就更少了!!USB抓包工具分为纯软件的和硬件的两种,纯软件usb抓包工具需要在系统能正确枚举usb设备的前提下才能让内核的钩子函数捕抓到数据,而后者在usb不正常时也能捕捉到链路数据(令牌包等),属于更底层的抓包方式。一、我用过的并且好用的纯软件USB抓包工具有:1.USBlyzer(能很方便的帮你分析出HID报告描述符等等)2.Bus Hound...
2020-01-10 18:43:23
40310
15
转载 还在收集资料?我这里有个github汇总
国内程序员都喜欢收集资料,但是又不看,github是重灾区。更有莫名其妙fork的,让人不得要领。这些资料其实也代表了收集者的一个思路,还是有不小参考价值的。这里,我整理了一下java后端的一些资料,算是送给大家的福利吧。收集了不看,也无所谓了(排名不分先后)。如何贡献?我把这些信息放在了github上,做索引用。如果你有其他的高质量仓库,但star数不高的,欢迎提交issues。内容包...
2019-11-22 07:41:41
314
原创 tty终端设置杂记
使得终端重定向到串口/dev/ttyAMA2microcom -t 10000 -s 115200 /dev/ttyAMA2关闭/开启终端的回显stty -echostty echosetconsole,百度百科说“setconsole [video][serial][ttya][ttyb],设置系统终端”,我没有用过!...
2019-11-15 22:58:32
632
原创 海思交叉编译一些工具和库(iperf3/openssl/libevent/boost/thrift等)
为Hi3559AV100编译iperf3时./configure --host=aarch64-himix100-linux --prefix=`pwd`/install出现如下报错:/opt/hisi-linux/x86-arm/aarch64-himix100-linux/host_bin/../lib/gcc/aarch64-linux-gnu/6.3.0/../../../../...
2019-11-15 10:36:34
2534
1
原创 MII和RGMII的区别
上图是am3358芯片的物理层接口,RGMII和MII,可以看出管脚数量不一样,以及Clk的方向不一样,MII的Rx和Tx方向的时钟都是由PHY或者FPGA提供的,而RGMII则是谁发数据谁提供时钟,而且是双沿采样的。...
2019-11-14 17:23:54
7224
原创 ARM交叉编译工具链的下载与安装
ARM的GNU交叉编译工具链下载链接:https://launchpad.net/gcc-arm-embedded/+download 因为海思Hi3559AV100平台SDK编译用到了ARM cortexM7核的gcc,根据文档说明,需要安装gcc-arm-none-eabi-4_9-2015q3.tgz,但我的SDK是别人共享的不是从海思官方获得的(以前的Hi3536等...
2019-10-26 09:16:39
5488
原创 海思Hi3536交叉编译x264库
一、交叉编译x264库到https://www.videolan.org/developers/x264.html下载源代码。配置生成Makefile,默认是开启NEON的./configure --prefix=`pwd`/_inatall --host=arm-hisiv400-linux --cross-prefix=arm-hisiv400-linux- --enable-s...
2019-10-15 23:21:33
858
原创 RGMII/MII不使用PHY和变压器直连通信
没有物理层的PHY芯片,也就是无法使用MDIO接口配置IEEE相关的寄存器。有时我们只要板子内两个CPU或者FPGA与CPU间进行点对点通信,那就无需使用PHY和变压器了!节省成本比较新的linux内核能直接支持这种应用,即所谓的fixed-link。下面的例子是TI am3358官方评估板BBB版的设备树摘录:红色为关注点cpsw_default: cpsw_default ...
2019-10-10 19:20:31
9989
7
转载 内核符号表的生成和查找过程
https://blog.youkuaiyun.com/jasonchen_gbd/article/details/44025681
2019-10-08 23:07:59
339
TDS1000C/2000C系列泰克示波器固件
2024-06-28
phywhispererusb-vcs-sim.zip
2023-08-26
ov-ftdi-2020-0607.tar.gz
2020-06-07
qt5.9.8的USB键鼠热插拔源码修改.tar.gz
2020-03-05
HaneWinNFSServer_ha_setup.zip
2019-11-06
sourceinsight4.0.99.zip
2019-09-12
modelsim10.6d
2018-10-13
BCM43142官方驱动文件
2018-10-09
《自己设计制作CPU与单片机》附录与配套源代码
2015-03-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人