CPU 多核指令 —— WFE 原理

作者:heaven 发布于:2022-2-11 1:34 分类:ARMv8A Arch

今天我想分享一个跟多核锁原理相关的东西,由于我搞 arm 居多,所以目前只研究了 arm 架构下的 WFE 指令,分享出来,如果有表述不精准或者错误的地方还请大家指出,非常感谢。研究这个原因也是只是想搞清楚所以然和来龙去脉,以后写代码可以更游刃有余。

阅读全文>>

标签: ARM wfe wfi

评论(2) 浏览(7010)

Atomic operation in aarch64

作者:schspa 发布于:2021-11-15 19:42 分类:ARMv8A Arch

在Linux内核中看到下面这句话:

At least on ARM, pgprot_noncached causes the
memory to be mapped strongly ordered, and atomic operations on strongly ordered
memory are implementation defined, and won't work on many ARMs such as omaps.

所以, 为什么对用户non-cached的内存,部分平台不支持原子操作?

阅读全文>>

标签: 原子操作 atomic arm64 aarch64

评论(5) 浏览(5087)

USB-C(USB Type-C)规范的简单介绍和分析

作者:wowo 发布于:2017-12-18 16:18 分类:USB

从1996年1月USB1.0正式发布至今(2017年9月 USB3.2发布),USB已经走过了21个年头。在这21年的时间了,USB标准化组织(USB Implementers Forum,USB-IF)折腾出来了各式各样、五花八门的接口形态:Type A、Type A SuperSpeed、Type B、Type B SuperSpeed、Mini-A、Mini-B、Micro-A、Micro-B、Micro-B SuperSpeed、Type C等等。

另外,USB接口主要由插座(Receptacle)、插头(Plug)和线缆(Cable)三部分组成,再叠加上这些奇奇怪怪的规范,灾难就发生了:

A产品喜欢用Type A的插座,B产品偏偏喜欢Type B,连接它们的线缆就悲剧了,只能变成A-to-B的了。以此类推,A-to-A、B-to-B、A-to-MicroA、等等,于是我们的抽屉就挤满了各种不明用途的USB线……

好吧,吐槽时间结束,因为本文的主角不是过去的那些奇奇怪怪的接口,而是最新的、红到发紫的USB-C(也称作USB Type C)规范。提起typec,它还真和它的A、B前辈们不太一样:

因为它有自己独立的、自行演化的规范文件----USB Type-C Specification(2014年发8月布1.0版本,2017年7月发布1.3版本)。而前辈们就没有这样的待遇了,它们都依附于具体的USB规范(USB 1.0、USB 1.1、USB 2.0、等等)。

为什么会这样的呢?当然是因为它有独特之处了,具体请参考本文后续的描述。

阅读全文>>

标签: Power USB typec type-c 3.1 pd

评论(17) 浏览(55494)

蓝牙协议分析(11)_BLE安全机制之SM

作者:wowo 发布于:2017-9-7 19:49 分类:蓝牙

注1:此SM是Security Manager的缩写,非彼SM,大家不要理解歪了!

书接上文,我们在“蓝牙协议分析(10)_BLE安全机制之LE Encryption”中介绍了BLE安全机制中的终极武器----数据加密。不过使用这把武器有个前提,那就是双方要共同拥有一个加密key(LTK,Long Term Key)。这个key至关重要,怎么生成、怎么由通信的双方共享,关系到加密的成败。因此蓝牙协议定义了一系列的复杂机制,用于处理和加密key有关的操作,这就是SM(Security Manager)。

另外,在加密链路建立之后,通信的双方可以在该链路上共享其它的key(例如在“蓝牙协议分析(9)_BLE安全机制之LL Privacy”中提到的IRK),SM也顺便定义了相应的规范。

阅读全文>>

标签: 蓝牙 Bluetooth BLE SMP 配对 pairing 鉴权 authentication security

评论(17) 浏览(86671)

蓝牙协议分析(10)_BLE安全机制之LE Encryption

作者:wowo 发布于:2017-3-28 11:52 分类:蓝牙

前面文章介绍了两种BLE的安全机制:白名单[4]和LL privacy[3]。说实话,在这危机四伏的年代,这两种“捂着脸讲话(其它人不知道是谁在讲话,因而不能插话、不能假传圣旨,但讲话的内容却听得一清二楚)”的方法,实在是小儿科。对于物联网的应用场景来说,要做到安全,就必须对传输的数据进行加密,这就是LE Encryption要完成的事情(当然,只针对面向连接的数据),具体请参考本文的介绍。

阅读全文>>

标签: 蓝牙 Bluetooth BLE 安全 Encryption

评论(30) 浏览(36125)

玩转BLE(3)_使用微信蓝牙精简协议伪造记步数据

作者:wowo 发布于:2017-3-11 11:42 分类:蓝牙

在物联网时代,有一个问题肯定会让人头疼(现在已经初露端倪了):

物联网中的IOT设备有两个主要特点:
1)简单小巧(不具备复杂的人机交互接口,需要手机等终端设备辅助完成配置、控制等功能)。
2)数量和种类繁多(消费者面对的可是数量众多的不同厂家、不同类型的设备)。

基于这两个特点,手机等终端设备一般通过APP(或APK)对IOT设备进行控制,不同厂家的不同设备,通常需要不同的APP/APK。于是出现了这样的结果:
如果你家里有一个小米yeelight的床头灯,你需要安装一个yeelight的APP/APK;
如果你手上戴一个百度智能手环,你需要安装一个百度智能手环APP/APK;
如果你跑步时戴一个xxx运动蓝牙耳机,你需要安装一个xxx运动蓝牙耳机APP/APK;
如果你要骑摩拜单车,你需要安装一个摩拜单车APP/APK;
如果你也行骑一下优拜单车,你需要安装一个优拜单车APP/APK;
……(要列的话,我觉得永远都列不完,大家可以想象一下,这是不是一个灾难??)

既然有问题,肯定就有人试图解决,于是微信IoT、阿里小智、亚马逊IoT等等,互联网大佬们就各显神通了。最终谁能称霸天下,现在还不得而知,本文也不去讨论这些。

作为蓝牙BLE的介绍文章,本文将以微信IoT的“微信蓝牙精简协议”为例,通过“把一个蓝牙适配器模拟成微信计步器”,分别从BLE技术(怎样注册一个GATT service)和微信IoT(微信物联网平台的思路和想法)两个角度,窥一窥IoT江湖的冰山一角(权当开阔眼界了)。

阅读全文>>

标签: 蓝牙 Bluetooth BLE golang 微信 airsync iot

评论(21) 浏览(31341)

eMMC 原理 4 :总线协议

作者:codingbelief 发布于:2017-3-1 22:48 分类:基础技术

本文将详细介绍 eMMC 总线协议,包括接口的定义、不同速率模式选择、数据读写过程的交互、数据的校验,基于 Command & Response 的通信模型等内容。

阅读全文>>

标签: emmc

评论(1) 浏览(34331)

eMMC 原理 3 :分区管理

作者:codingbelief 发布于:2017-2-6 21:31 分类:基础技术

本文主要介绍 eMMC 内部的分区管理机制

阅读全文>>

标签: emmc

评论(16) 浏览(45852)

eMMC 原理 2 :eMMC 简介

作者:codingbelief 发布于:2017-1-12 20:28 分类:基础技术

eMMC 是 embedded MultiMediaCard 的简称。MultiMediaCard,即 MMC, 是一种闪存卡(Flash Memory Card)标准,它定义了 MMC 的架构以及访问 Flash Memory 的接口和协议。而 eMMC 则是对 MMC 的一个拓展,以满足更高标准的性能、成本、体积、稳定、易用等的需求。

阅读全文>>

标签: emmc

评论(3) 浏览(28905)

eMMC 原理 1 :Flash Memory 简介

作者:codingbelief 发布于:2017-1-9 19:28 分类:基础技术

eMMC 是 Flash Memory 的一类,在详细介绍 eMMC 之前,先简单介绍一下 Flash Memory。

Flash Memory 是一种非易失性的存储器。在嵌入式系统中通常用于存放系统、应用和数据等。在 PC 系统中,则主要用在固态硬盘以及主板 BIOS 中。另外,绝大部分的 U 盘、SDCard 等移动存储设备也都是使用 Flash Memory 作为存储介质。

阅读全文>>

标签: emmc

评论(2) 浏览(29301)

Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog