自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SoldierJazz的专栏

从铿锵的历史中,寻找经典;从凝血的经典中,检索未来的通途!

  • 博客(167)
  • 资源 (11)
  • 收藏
  • 关注

原创 FT230X芯片的国产化替代

使用CH9101Y国产化替代FT230XQ芯片。

2022-10-12 15:39:58 1094 1

原创 FT232芯片的国产化替代

使用CH9101不用修改电路设计直接替换FT232芯片的项目经验。

2022-10-12 14:52:36 3776

原创 CH9101 USB转串口替换FT232R和FT230XQ

FT232芯片CH9101国产化替代、FT230芯片CH9101国产化替换

2022-08-08 09:52:57 2245

原创 CH9102 USB转串口应用体验

近期使用CH9102 USB转串口芯片成功用在原有使用CP2102的产品板上,整个替换和验证过程还是很顺利的,顺带写个blog做个记录。原项目上使用CP2102搭载ESP32实现Arduino物联网应用,采用USB转串口芯片实现串口下载,代码的Debug调试,以及编程软件的控制与交互。公司其他项目在用的比较多的USB转串口芯片还有CH340。因为使用CP2102的项目和产品用量不是很大,所以原项目设计更改也一直没有提上日程。因疫情原因,原使用CP210...

2021-09-13 13:56:53 7066 2

原创 OpenWrt 之 MT7628 使用GPIO中断

在支持设备树的系统中使用中断一般有2种方式。一、DTS配置interrupt节点这里有个挺好的博客,链接地址:https://biscuitos.github.io/blog/DTS-interrupt/也即,找到dts文件中的GPIO中断控制器节点,然后在你的dts驱动节点中根据interruptcells数量做下声明。二、通过宏gpio_to_irq获取我在实验中是...

2020-03-27 10:03:26 1653

原创 OpenWrt 之 MT7628 移植第三方SPI驱动

1、在OpenWrt系统上移植SPI驱动前,首先要确保SPI相关引脚未被复用为其他功能,比如GPIO;以下操作已假定该条件成立,否则请修改相关dts和c文件中复用配置;2、打开dts配置文件进行修改,这里我是用的硬件为WRTNODE2R,所以文件路径为:/target/linux/ramips/dts/WRTNODE2R.dts。在SPI控制器节点下添加与我们要添加的SPI设备及驱动匹配的信息...

2020-03-26 16:21:47 2439

原创 gcc工具链查看默认编译选项

命令:echo "" | gcc -v -x c++ -E -如在Ubuntu系统下输出结果为:rambo@ubuntu:/tmp$ echo "" | gcc -v -x c++ -E -Using built-in specs.COLLECT_GCC=gccOFFLOAD_TARGET_NAMES=nvptx-noneOFFLOAD_TARGET_DEFAULT=1T...

2020-03-26 13:08:19 5611

原创 苹果MacOS系统上安装第三方驱动失败/无效

近期不少用户在苹果系统上安装一些第三方驱动时反馈没有作用,但是驱动安装提示是完成的,并拷贝到了系统的驱动路径下;造成该问题的原因可参见如下苹果官方说明:User-Approved Kernel Extension Loading引用下第一段官网说明macOS High Sierra 10.13引入了一项新功能,在加载新安装的第三方内核扩展(KEXT)之前,需要用户批准。 当请求加载用户...

2020-03-23 14:23:47 5455 2

原创 Windows系统USB转CDC串口驱动限制说明

USB转串口芯片目前主流的几种USB类别有:1、USB厂商类;2、USBCDC类;3、USBHID类;其中若使用USBCDC系统内置驱动时,使用时会有诸多特殊性,如下为使用说明:1、测试中出现若打开串口状态下,拔掉USB硬件,然后插上。关闭串口后重新打开一定会出错,除非再插拔一次硬件才能恢复;2、CTS引脚在CDC协议中没有相对应的字段,实际上,若DCD、RI、DSR...

2020-03-23 14:08:37 1797

原创 The futex facility returned an unexpected error code

在 linux 程序执行中若遇到该错误,考虑下是否是如下变量使用了强制内存对齐导致。比如:在将如上变量包含到结构体中,强制1字节或2字节内存对齐。如:信号量相关 struct semaphore,线程相关的 pthread_mutex_t,以及 pthread_cond_t 等等。解决办法:1、取消强制内存对齐;2、不要包含在结构体中或类中;...

2020-02-11 10:18:29 6279

原创 C++ Tips

1、析构函数调用时机<1> 栈中定义的对象程序会自动调用析构函数例如CLassName object;这样声明的对象,当程序运行到了对象作用域之外或者程序退出,对象都会被销毁,当然析构函数也会被调用<2> 堆中new的对象使用new声明的对象,必须手动调用delete才会调用析构函数...

2019-07-27 15:49:06 242

原创 使用std::thread线程相关函数,-static静态编译的程序运行时的一些常见错误

使用std::thread的应用程序,编译时如果是动态链接pthread线程库运行正常,-static静态链接时在某些平台下可能会遇到一些意外错误。如常见编译命令:g++ -std=C++11 test.c -o test -pthread1、Segmentation fault(段错误)2、terminate called after throwing an instance of 's...

2019-07-27 13:58:01 1207 1

原创 Ipad平板作为MAC苹果电脑的扩展屏幕的技术研究

直入主题,这方面的研究直接参考当前使用基数最大,反馈最好的两个产品。最新产品讯息,请分别进入各自官网。BTW,Duet Display也跟随Luna Display开始发布硬件了。Duet Display 颠覆了基于 Wi-Fi 的传统运作原理,改经 USB 数据线实现,虽然此前也有使用 USB 的类似应用,但二者的实现方式有本质的区别。其次,Duet Display 并非通过纯粹的「屏幕...

2019-05-31 17:48:11 4825

原创 Linux驱动如何在不同版本上快速迭代升级

As well known,Linux内核版本更新很快,有些内核版本的迭代升级可能会导致在使用的驱动版本存在编译失败或使用的兼容性问题,如何快速定位到内核版本间变更的地方,并处理掉该问题,列一下我常用的解决方法。(之前遇到问题,就下载对应的内核版本安装测试的方法,看来很foolish)1、通过kernel.org内核官网查看具体版本相较于上版本的ChangeLog。该方法可以全面看到内核版...

2019-05-24 18:08:39 1254

原创 安卓BLE开发教程(二) BLE开发流程

在安卓上进行BLE开发时,就不必像理解BLE协议栈那样复杂了。因为安卓的BLE包为我们提供了十分丰富的API、各类常量、各类连接通信情况下的回调API等。具体流程一、声明权限二、获取Adapter适配器三、开启蓝牙四、BLE扫描与停止五、连接设备六、枚举特征值及其属性七、利用特征值通讯八、关闭蓝牙一、声明权限在AndroidManifest.xml文件中...

2018-12-20 18:33:58 1882

原创 安卓BLE开发教程(一) BLE基础

我试图以一种简单的方式去把重要的事情讲清楚。目的是希望BLE协议栈和基础概念简单化,让自己及类似的安卓开发者可以在较短的时间内把握住BLE的核心及使用方法。BLE本身很复杂,但对于安卓开发而言只要抓住一些核心点,便已足够。如果你想全面了解BLE协议栈,包括分层及每层功能,那么你从这里可能得不到答案。1、BLE协议栈层次然而,安卓BLE开发不用理解如此复杂的分层结构。因为我们不是在开发B...

2018-12-20 15:50:50 4814

原创 安卓获取屏幕最大(绝对)分辨率

安卓开发时,在很多应用场景需要获取手机屏幕的真实分辨率,然而查阅了大部分博客提供的获取方法发现获取方法并不对。下面几种常用的方法(错误)和最终正确获取的方法均会展示在下面。实验场景:Activity(隐藏或不隐藏状态栏、虚拟导航栏等场景)、Service 中。错误方法一:DisplayMetrics metrics = new DisplayMetrics();getWindowM...

2018-12-14 14:00:45 2390 7

原创 Android/Linux 系统添加对多点触摸屏的支持

    含有 HID 多点触摸控制器的触摸屏、触摸板在 Android 和 Linux 内核中都是由 "hid-multitouch" 驱动进行支持的。因此如果你的系统连接触摸屏没有反应,问题基本都出于驱动未加载或者与触摸屏的 VID 与 PID 不适配。以下分情形讨论:1、系统中已存在“hid-multitouch”驱动    若“hid-multitouch”驱动是以内核模块的方式存在于系统里...

2018-07-06 09:52:12 4457 8

原创 安卓App报错:android.os.FileUriExposedException

安卓7.0开始,不再允许在App中把 file://Uri 暴露给其他App,因此在代码中需要做下版本判断,在7.0版本及以上需要使用 FileProvider 生成 content://Uri 来代替 file://Uri。同时安卓工程需要做以下调整:1、在 AndroidManifest.xml 的 application 标签页下增加 provider 声明 &lt;applicati...

2018-06-29 09:54:38 820

原创 解决 Windows Update 更新错误/无法创建还原点 代码 0x80246008

这个问题在我的电脑上由来已久,但是大部分的更新工作可以由其他第三方软件来完成,所有有时候得过且过。但同时,有一些棘手的问题,会提示系统进行 Windows Update,只有硬着头皮解决了。如果你遇到了“系统无法创建还原点”,也可以参考此博客。1. 一般更新出现 80246008 是由于 BITS 服务没有启动导致的。又名:后台智能传送服务 / Background Intelligent Tra...

2018-03-03 18:08:36 5044

原创 中标麒麟/NeoKylin 安装QT开发环境

1. 如果你对中标麒麟系统安装有疑问,请阅读上一篇文章:《中标麒麟/NeoKylin U盘安装系统》。2. 进入系统打开终端,以 root 模式操作。&lt;1&gt; yum install gstream* libXext-devel libX11-devel&lt;2&gt; ln -s /usr/lib64/libXrender.so.1.3.0 /usr/lib64/libXrend...

2018-02-13 11:51:34 5782 1

原创 中标麒麟/NeoKylin U盘安装系统

这里以 NeoKylin6 为例,其他版本与此相类似大同小异。但是下载指定版本的镜像时要注意配合该版本的软件包是否充足,不然就会遇到安装好系统很多软件无法安装或更新的情况。1. 官方下载地址:http://download.cs2c.com.cn/neokylin/desktop/releases/2. 第二步,在上个地址中找你想要下载的版本,注意前面说的先检查下资源,以我想下载的版本 6.0 为...

2018-02-13 11:41:58 16039 1

原创 USB OTG 的进一步理解

一直以来在做安卓系统相关的嵌入式通讯(USB、BLE、网络、串口等),最近在讨论 OTG 问题的时候,对该规范又重新理解了一次,这里仅做一些概要和核心点说明,下方会给出具体 OTG 包含协议的参考链接,大同小异就不多赘述了。1. 硬件接口与传统的 4 线USB接口不同,OTG接口除了 VCC、GND、D+、D-之外还多了一根 ID 线,对支持 OTG 规范的设备来说,按照连接时的 ID 线状态分为

2018-02-06 14:50:29 2330

原创 Vmware提示:the operation was canceled by the user

一般遇到这种情况是由于当前虚拟机资源中的资源文件被其他进程占用导致的。如果你的系统中有 DAEMON Tools Lite 软件,那么多半是因为这个原因。因此下面针对此情况提出两种解决办法:1. 检查有无安装 DAEMON Tools Lite 软件,若安装此程序,打开任务管理器,显示所有进程,找到是否有名称为 DiscSoftBusService 的存在,有的话,结束该进程。然后重新启动 Vmw

2017-12-08 11:15:47 10468

原创 Windows与Linux下tftp服务的使用

tftp 协议是基于 udp 的,轻量小巧,用在局域网和嵌入式上很顺手。大部分帖子把在 linux 上配置的过程描述的过于复杂,其实只是个工具而已。研究协议抓下包对比协议内容也可以满足需求了,下面进入正文。分别讲下在 linux 以及 windows 环境下的tfpd使用教程。1. windows 工具链接下载地址:Tftpd32 链接2. Linux 软件包安装sudo apt-get inst

2017-12-06 15:22:35 6460 1

原创 《言简意赅之Linux设备驱动编程》 前言

linux 内核与驱动开发是一门很深的学问,主要是由于覆盖知识面较广、内核架构设计层级较深、软硬件知识要兼具。因此自己在学习理解时会经常遇到某一章节需要反复阅读理解多次。所以,我想用一种言简意赅的方式讲述 Linux 内核与设备驱动开发。我认为把一个概念阐述的比较言简意赅的关键在于抽象与从宏观角度理解。也即,充分理解框架与核心点,然后在实际开发中不断强化该知识点的学习与使用。这样可以起到事倍功半的

2017-11-13 20:11:36 722

原创 frameworks/av/media/CedarX-Projects/CedarAndroidLib/LIB_KK44_/Android.mk: No such file or directory

在安卓系统编译过程中如果遇到上述或者与之类似的错误,可以采取相同的处理方法进行解决。直接进入到 CedarAndroidLib 目录下,也即此例中的 frameworks/av/media/CedarX-Projects/CedarAndroidLib。看一下当前文件:注意第9行为包含标题中报错的那个 Android.mk 文件。可见为此步骤出错,上述字符串定义如内容所示,查看上级目录

2017-09-30 10:59:23 2566 2

原创 VMware 虚拟机占用磁盘空间

使用VMware创建的虚拟机尽管已经设定分配的磁盘大小,但仍然会发现虚拟机占用的磁盘空间会越来越大,而直观体现就是虚拟机系统文件 vmdk 不断增大。因此下面介绍一个简单的方法,使用 VMware 自带的工具对 vmdk 文件进行压缩以节省磁盘空间。拿我的系统为例:如果有很多 vmdk 文件,那是由于虚拟机创建的时候选择了把磁盘存储成多个文件,选择合并(又快照时不合并会影响后面的压缩)

2017-09-30 10:22:10 7684 2

原创 JAVA循环队列

关于自定义循环队列的实现原理和要点可以参见之前的博文系列:循环队列及C语言实现。这里主要对JAVA下的具体实现方式与原理进行说明。一、JAVA 中已经自带了 Queue、DQueue、ArrayList、LinkedList 等常用的数据结构,为什么还要单独实现循环队列?之所以使用自定义循环队列,出发点还是基于我们在实际应用中对于数据处理各种各样的需求。使用自定义数据结构的好处就在于可以更

2017-09-15 15:25:44 4368 2

原创 Android开发如何使用JNA

在非安卓的平台上,一般我们直接使用这两个 jar 包就可以轻松使用 JNA 并进行安卓开发了。在安卓上由于这两个 jar 包默认没有对应安卓版本的 libjnidispatch.so 文件,因此我们需要从 jna master 中提取该文件并对 jna.jar 文件进行改造,或者使用 jna-min.jar 文件。

2017-08-07 19:48:18 7116 11

原创 Java 结构体之 JavaStruct 使用教程<三> JavaStruct 数组进阶

经过前面两篇博客的介绍,相信对于 JavaStruct 的认识以及编程使用,读者已经有一定的基础了。只要理解和实践结合起来,掌握还是很容易的。下面进行一些数组使用方面的实例说明及演示。在结构体类中使用数组有几种方式,可以使用静态指定大小的方式也可以通过使用 ArrayLengthMaker 进行动态分配。数组的大小既可以在类中定义,也可以在定义对象后通过对象进行指定。静态指定方法如下所

2017-07-21 18:07:55 11093 4

原创 Java 结构体之 JavaStruct 使用教程<二> JavaStruct 用例分析

使用环境前一篇在介绍 JavaStruct 类时指定了使用库使用环境为 Java 5 及以上,也即开发我们使用的 JDK 版本为1.5及以上就可以了。以下讲解的用例可以直接将 code 直接粘贴到 java 的 main 函数中执行就可以了,后面会给出测试用例和结果。使用方法JavaStruct 类用于打包和解包结构体,也即使用方法为用该类的 pack 与 unpack 方法将定义的

2017-07-21 14:23:21 29093 12

原创 Java 结构体之 JavaStruct 使用教程<一> 初识 JavaStruct

Javastruct 是什么简而言之,Javastruct 是一个第三方库,用于像处理 C 或者 C++ 结构体那样处理 java 对象。也即利用 Javastruct 可以在 java 上实现类似于结构体的功能和操作。Javastruct 的用途在 java 或者 Android 应用程序与一些嵌入式设备通讯或者C、C++ 应用程序通讯时,比如网络、无线、蓝牙、串口通讯等场景,由于实

2017-07-20 18:06:30 19138 2

原创 Linux 驱动编译报错:error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time]

编译驱动时遇到这个错误提示,表示当前编译环境中将关于 DATE 以及 TIME 的警告也作为错误来进行处理的。有如下几种方法可以参考:1. 在编译驱动的相应 Makefile 中增加一行:CFLAGS += -Wno-error=date-time,然后保存重新 make;2. 若 CFLAGS 不生效,将关键字替换为 EXTRA_FLAGS;3. 修改 /lib/modules/

2017-07-17 11:32:18 7309 1

翻译 安卓USB开发教程 <六> 安卓 AOA 2.0

Android Open Accessory Protocol 2.0目录Detecting AOAv2 supportAudio supportHID supportInteroperability with AOAv1Connecting AOAv2 without an Android app目录检测AOAv2支持音频支持H

2017-07-10 19:58:33 3636

原创 安卓USB开发教程 <五> 安卓 AOA 1.0

Android Open Accessory Protocol 1.0(AOA 协议 1.0)Android USB 配件必须遵从 Android Open Accessory(AOA)协议,该协议定义了配件如何检测和建立与 Android 设备的通信。配件应执行以下步骤:等待并检测连接的设备确定设备的配件模式支持尝试以配件模式下启动设备(如果需要)如果设备支持 AOA,与设备

2017-07-10 11:13:10 2447

原创 安卓USB开发教程 <四> 安卓 AOA

Android 开放性配件协议(AOA)Android 开放性配件协议(AOA)支持允许外部 USB 硬件(Android USB 配件)与工作在配件模式下的 Android 设备进行交互。当处于配件模式的 Android 设备被供电,所连接的配件充当 USB 主机(为总线供电并枚举设备),Android 设备作为 USB 配件。Android USB 配件旨在连接 Android 设

2017-07-09 23:42:55 2010

原创 Cygwin 下载极速源推荐

Cygwin 默认列表中的源下载速度太慢,国内使用时常用以下两个源,经过实际使用速度很快,下载时不妨两者都尝试下:如上图所示,下载时在此栏填写 URL 地址即可,推荐地址:http://mirrors.sohu.com/cygwin/http://mirrors.163.com/cygwin/添加完,选中新的源后,再进入下一步就可以了。

2017-07-05 14:14:28 834

翻译 安卓系统源代码下载(官方教程)

下载源代码Android 源代码树位于由 Google 托管的 Git 代码库中。Git 代码库中包含 Android 源代码的元数据,其中包括与对源代码进行的更改以及更改日期相关的元数据。本文档介绍了如何下载特定 Android 代码流水线的源代码树。要从特定设备的出厂映像开始,请参阅选择设备版本。安装 RepoRepo 是一款工具,可让您在 Android

2017-07-04 19:27:01 2833

原创 轻松访问 Android 系统源码与下载

有时研究 Android 某个特性或者协议的时候需要参阅安卓系统源代码中代码实现或者协议文档等。通过正常的建立 repo,git 获取十分耗时,并且速度很慢,除非是需要重新编译系统,定制系统才需要这样做。因此,推荐一个 Android 系统网站,可以轻松访问,下载参考需要的文档即可。首先进入网站:http://www.androidxref.com ,界面如下所示:之后选择我们需要的

2017-07-04 19:02:23 809

安卓电视与BLE遥控器交互蓝牙报文.zip

该资料为安卓电视与BLE遥控器之间的通讯报文,使用安卓手机抓取的hci log,内容十分详细。下载之后,使用Wireshark可以打开。具体包括数据有: 遥控器按键数据,语音数据。

2019-07-23

Android/Linux触摸屏解决方案

Linux与Android系统下无法支持触摸屏的解决方法,资料内部为触摸屏驱动以及加载的方法,详细资料可以参见博客:https://blog.csdn.net/JAZZSOLDIER/article/details/80935454 没有积分发邮件到我邮箱:[email protected]

2018-07-06

解决 Windows Update 更新错误/无法创建还原点 代码 0x80246008

如果你遇到了“系统无法创建还原点”,也可以参考此博客。 一般更新出现 80246008 是由于 BITS 服务没有启动导致的。又名:后台智能传送服务 / Background Intelligent Transfer Service。若启动该服务出现错误,一般为依赖的 COM+ Event System 服务未启动,具体参考博客:http://blog.csdn.net/jazzsoldier/article/details/79431860

2018-03-05

Office2007转PDF插件

Office2007转pdf的插件,安装成功此插件后,在word或者ppt文件里面“另存为”就有 PDF 或 XPS 选项了。老规矩,无积分的发送邮件到:[email protected]

2018-02-09

加密U盘配置工具

加密U盘配置工具,专盘专用,专门用于U盘的密码修改与分区表配置等。

2017-12-27

安卓JNA例程

安卓下使用JNA例子,如果对原理不是很清楚,可以参考博客:Android开发如何使用JNA - SoldierJazz的专栏 - CSDN博客http://blog.csdn.net/jazzsoldier/article/details/76855952 资源分设置半天最少一分,不晓得原因,没有积分同学发邮件到:[email protected]

2017-09-25

JavaStruct库与应用文档

JavaStruct轻松在Java中实现与C语言的结构体类型,资源包含库以及实现源码,使用的时候参考wiki内容或者test文件夹下的例程即可,有问题及时与我联系,更多移动开发等问题,移步至:http://blog.csdn.net/jazzsoldier

2017-07-20

安卓串口应用资料

源于谷歌的Android系统操作串口的文档,代码与wiki集合,代码在trunk主分支下面,第一时间没有找到的需要注意了。更多移动开发或者问题,可至 http://blog.csdn.net/jazzsoldier 。

2017-07-20

CCIE路由与交换认证考试指南(英文版)

通过《CCIE路由与交换认证考试指南》,你可以了解关于CCIE路由与交换笔试以及通信与服务笔试所涉及的全部知识点:一般路由概念,如OSI模型、网络互连设备以及路由选择协议的特点等。快速以太网、吉比特以太网和无线局域网。透明桥接、VLAN和VLAN中继。帧中继、ATM和SONET/SDH。RIP、IGRP、EIGRP。OSPF和IS-IS。BGP、路由反射器和联盟。队列、MPLS、CAR和流量整形。IP多播、IP优先级和多服务网络。防火墙、加密以及其它的安全主题。, CCIE是网络界炙手可热的认证。获取CCIE认证非常困难,因而在业界拥有无可比拟的声誉。要准备CCIE考试,你必须花大量的时间学习广泛的技术知识,进而在现实网络中加以实践,然后才可以去参加CCIE路由与交换的笔试。《CCIE路由与交换认证考试指南》涵盖了CCIE路由与交换以及通信与服务笔试要求的所有知识点,包括网络理论、设备操作、桥接和局域网交换、WAN、IP和IP路由选择协议、安全性及多业务网络。, 《CCIE路由与交换认证考试指南》由CCIE们编写和审校,有助于你理解和掌握通过考试必需的知识。通过每个章节关于每个知识点的小测验,可以优化你的学习时间。每章的最后提供了关键概念的回顾,有助于加强记忆。每章的“问题与答案”,可以检验你对知识的理解程度,并且可以在一系列场景中,检验你对知识的吸收和利润,随书的光盘中有模拟测验,包含200多道测验题,你可以选择感兴趣的专题。加上经验和培训,这《CCIE路由与交换认证考试指南》可以让你掌握CCIE笔试所需的知识,从而向CCIE进一步靠近。

2016-10-20

Uboot源码以及编译教程

Uboot源码:u-boot1.1.6.tar.gz u-boot-2015.04-rc5.tar.bz2 Uboot编译教程:2篇

2015-04-20

KEIL注册机

支持KEIL4、KEIL5,完美破解,下载包有具体注册界面,和注册机,请按照步骤进行操作。如有任何疑问,请联系我。

2014-05-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除