Type-C 接口 CC 针脚的工作模式
Type-C 接口 Type-C 接口的规范大致与 USB 3.1 规范同时期发布,但是由于在 USB 3.2 规范中才引入了 Type-C 的双通道传输模式,因此我们通常仅基于 USB 3.2 及以后的规范版本来讨论 Type-C 接口。 Type-C 接口的针脚定义我曾经在 USB 2.0 与 USB 3.2 一文中介绍过,为了方便,我将其搬运到本文中: Type-C 公头针脚定...
Type-C 接口 Type-C 接口的规范大致与 USB 3.1 规范同时期发布,但是由于在 USB 3.2 规范中才引入了 Type-C 的双通道传输模式,因此我们通常仅基于 USB 3.2 及以后的规范版本来讨论 Type-C 接口。 Type-C 接口的针脚定义我曾经在 USB 2.0 与 USB 3.2 一文中介绍过,为了方便,我将其搬运到本文中: Type-C 公头针脚定...
Android C++ 程序开发现状 在 Android 下开发 C++ 程序,我见过绝大多数人都是不使用任何语法插件,就靠硬写,写完之后再根据编译报错来修改语法错误。这也怪不得程序员,一方面,Android 使用 Arm 平台的 clang 编译器,跟 x86 平台的开发环境并不是很兼容;另一方面,Android 要求我们将 C++ 程序放在 vendor 目录下,但是我们包含的头文件却...
模板 在为静态类型语言开发代码时,我们很经常遇到这样的情况:我们需要为多个数据类型实现相同的功能。放在 C 语言中,我们不得不为他们各自定义一个函数或结构体,例如: int add(int x, int y); unsigned addu(unsigned x, unsigned y); float addf(float x, float y); // ... struct Vecto...
QTimer 基础用法 QTimer 提供了计时器的高级编程接口,我们可以通过 Qt 的信号槽机制快速启用一个定时器: QTimer *timer = new QTimer(this); connect(timer, &QTimer::timeout, recv, &recv::slot_function); timer->start(1000); 这将会使 r...
前言 目前,大部分的 AppImage 的教程与工具都建议你在最低所支持的系统上进行编译打包,这是由于 Linux 系统的兼容性,在旧版本系统打包的软件可以正常在新版本系统中运行,反过来则不行。 但是这一点对于 Qt 用户尤其是 Qt6 用户而言很不友好:一方面,在旧版本的 Linux 系统上很难安装高版本的 Qt,另一方面,过于老旧的 GCC 不支持大量的 C++ 新特性,需要对代码进...
复合语句作为表达式 在使用 Rust 的过程中,常常会觉得 Rust 任何一个 block 都能返回值的特性太赞了,这可以极大地限制一些临时变量的作用域,例如: fn main() { let value: Option<u8> = { let string = "123".to_owned(); if let Ok(temp) = s...
前言 实际上,这个功能在 Jekyll 的 Issue #8621 上早有讨论,但是时至今日这个功能迟迟没有进展。 相关的讨论者提出了一些简易的 Ruby 脚本,但是这些脚本功能并不完整,例如不支持行号。但是奈何本人又不会 Ruby,只能考虑另辟蹊径,通过 JS 来实现行高亮。 二月时写了一个效果较差的版本,近日重新写了一个更好一点的版本,因此重写本帖。 Ruby 脚本在生成站点时静...
器件介绍 NB7VPQ904M 是一颗由 onsemi 的子公司 Semiconductor Components Industries, LLC 生产的 USB redriver 器件,其官方介绍是: 1.8V USB Type-C™ DisplayPort™ ALT Mode 10Gbps Linear Redriver 我们来逐字解析: 1.8V 指器件所需的供电电压; ...
在大多数高通平台上,默认都提供以下的按键功能: 按住 vol+ 键开机,进入 recovery 模式。 按住 vol- 键开机,进入 fastboot 模式。 按住 vol+ 键及 vol- 键开机,进入 edl(Emergency Download)模式。 根据平台的不同,主要分为两种情况:使用 lk2nd 的高通平台以及使用 edk2 的高通平台。 使用 lk2nd...
免责声明 本文是对原博文《It’s Not Always ICache》的无授权翻译转载,不享受任何著作权利,不用于任何商业目的,不以任何许可证进行授权,不对任何转载行为尤其是商业转载行为负责。一切权利均由原作者 Aleksey Kladov 保有。 本文中出现的所有第一人称均指代 Aleksey Kladov 而非译者本人。本文中对一些术语会额外附加英文原文注释,以帮助读者搜索相关概念...