spi

浅谈dubbo spi机制

本秂侑毒 提交于 2019-12-28 15:54:56
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 例如: private static final Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension(); 首先分析getExtensionLoader方法:很简单先查询EXTENSION_LOADERS是否存在不存在就new一个返回 public static <T> ExtensionLoader<T> getExtensionLoader(Class<T> type) { if (type == null) { throw new IllegalArgumentException("Extension type == null"); } if (!type.isInterface()) { throw new IllegalArgumentException("Extension type(" + type + ") is not interface!"); } if (!withExtensionAnnotation(type)) { throw new IllegalArgumentException("Extension type(" + type + ") is

Dubbo源码分析之SPI(二)

∥☆過路亽.° 提交于 2019-12-28 09:41:22
一、概述   本篇文章是 dubbo SPI源码分析的第二篇,接着第一篇继续分析dubbo SPI的内容,我们主要介绍 getDefaultExtension() 获取默认扩展点方法。 由于此方法比较简单,我们略过示例部分,直接分析源码。 二、源码分析   获取默认扩展方法getDefaultExtension()是一个public、可对外提供调用的方法。我们知道,dubbo中扩展点接口必须要有@SPI注解修饰,@SPI注解代码如下: 1 @Documented 2 @Retention(RetentionPolicy.RUNTIME) 3 @Target({ElementType.TYPE}) 4 public @ interface SPI { 5 6 /** 7 * default extension name 8 */ 9 String value() default "" ; 10 11 }   注解可以修饰类和接口,同时提供 一个默认为空的value字段。   这个value字段 就是本篇文章要介绍的默认扩展实现。   现在我们来看getDefaultExtension()方法内部: 1 public T getDefaultExtension() { 2 getExtensionClasses(); 3 // cachedDefaultName为@SPI中的value

ESP32-S拥有业内极富竞争力的封装尺寸和超低功耗技术,尺寸仅为18.0*25.8*2.8mm 深度睡眠电流仅为6.5uA

断了今生、忘了曾经 提交于 2019-12-27 17:46:12
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> ESP32-S拥有业内极富竞争力的封装尺寸和超低功耗技术,尺寸仅为18.0*25.8*2.8mm 深度睡眠电流仅为6.5uA. ESP32-S颗广泛用于各种物联网场合,适用于家庭自动化,工业无线控制,婴儿监控器,可穿戴电子产品,无线位置感知设备,无线定位系统信号及其它物联网应用,是物联网应用的理想解决方案; ESP32-S采用SMD封装,可通过标准SMT设备实现产品快速生产,为客户提供高客户可靠性的连接方式,特别适合自动化,大规模,低成本的现代化生产方式,方面应用于各种物联网硬件终端场合。 特性 --体积小的802.11b/g/n WI-FI+BT SoC模块; --采用低功耗双核32CPU,可做应用处理器; --主频高达340MHz,运算能力高达600DMIPS; --内置520KB SRAM; --支持UART/SPI/I2C/PWM/ADC/DAC等接口; --采用SMT-38封装,方便焊接与测试; --支持OpenOCD调试接口; --支持多种休眠模式,深度睡眠电流最小达到6uA; --内嵌Lwip和FreeRTOS; --支持STA/AP/STA+AP工作模式; --支持Smart Config/AirKiss 一键配网; --通用AT指令可快速上手; --支持串口本地升级和原厂固件升级(FOTA)

IN612L-MA模块支持蓝牙5.0协议及2.4G私有协议,该模块体积小,功能齐全,支持1主25从,或者多主多从模块,支持AT透传命令的应用

﹥>﹥吖頭↗ 提交于 2019-12-27 17:41:01
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> IN612L-MA模块支持蓝牙5.0协议及2.4G私有协议,该模块体积小,功能齐全,支持1主25从,或者多主多从模块,支持AT透传命令的应用 IN612L是Inplay公司的SwIFtRADIO TM SOC产品系列之一,具有多模协同2.4G无线协议栈,支持2.4G私有协议栈以及蓝牙5.0全协议栈的SOC芯片;如2mbps高数据速率模式,125kbps/500kbps编码物理速率支持,以及扩展的广告功能。用户定义的SDR协议栈(2.4G协议栈)及其内置的Bluetooth 5协议栈可以同时运行,因此可以很好地解决和优化许多复杂的网络应用。 该模块内置32bitARM Cortex-M4F CPU 支持浮点运算;内部包含256Krom,512K Flash以及64KB SRAM,SRAM可以用作复杂算法和应用的用户数据空间 该芯片内部增加数字加速引擎,加密模块,语言处理模块, 数字加速引擎最多能处理16*16矩阵运算,支持矩阵加,减,乘,除等多种运算, 加密模块可以为客户提供更好的加密算法支持AES128,AES256,SHA-1,SHA-2和ECC加密功能,以及内部有唯一ID号,语言处理模块支持1:4语言压缩跟解压,支持PDM及I2S输出 主要特点 •多模式协作协议栈 -蓝牙5-完全兼容蓝牙5规范

Dubbo中SPI的原理

為{幸葍}努か 提交于 2019-12-26 16:07:53
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> dubbo中SPI机制,主要围绕三个注解:@SPI、@Adaptive、Activate @SPI:作用域为接口。它表示该类实现了SPI。 @Adaptive:作用域为方法,类。如果在类型定义则表明该类为自适应类,不需要额外动态生成。如果用在方法上,则会单独动态生成自适应类。 @Activate:通常作用域为类。用于多个扩展的配置。 三种常用的用法 // 这一种是最简单的,直接得到扩展实例 Exchanger exchanger = ExtensionLoader.getExtensionLoader(Exchanger.class).getExtension(type); public T getExtension(String name) { if (name == null || name.length() == 0) throw new IllegalArgumentException("Extension name == null"); if ("true".equals(name)) { return getDefaultExtension(); } // 从缓存中读取 Holder<Object> holder = cachedInstances.get(name); if (holder ==

武汉新芯推出XM25QW非易失性spi nor flash芯片

徘徊边缘 提交于 2019-12-24 23:57:10
武汉新芯集成电路制造有限公司是国内紫光存储旗下一家领先的非易失性flash芯片存储供应商,武汉新芯宣布推出50nm Floating Gate工艺SPI NOR Flash宽电压产品系列XM25QWxxC。该产品系列支持低功耗宽电压工作范围,适用于物联网、可穿戴设备和其它功耗敏感应用产品设计方案。 XM25QWxxC系列产品的读速在1.65V至3.6V电压范围内可达108MHz(在所有单/双/四通道和QPI模式下均支持),提供比其他供应商更快更强的性能,在电源电压下降后,时钟速度没有任何减慢。其传输速率优胜于8位和16位并行闪存。在连续读取模式下可以实现高效的存储器访问,仅需8个时钟的指令周期即可读取24位地址,从而实现真正的XIP(execute in place)操作。 XM25QWxxC系列flash芯片支持SOP8和USON8封装,适用于便携式产品设计。 “XM25QWxxC系列产品采用业界先进的50nm Floating Gate工艺,可使便携式设备的电池寿命延长1.5倍以上。此外客户可以通过宽电压功能实现更好的库存管理。” 武汉新芯运营中心副总裁孙鹏先生表示,“ 该系列产品的发布是武汉新芯自主品牌战略的关键里程碑,未来武汉新芯也将针对持续发展的IoT市场不断开发出创新产品,不断扩展高性能存储产品组合 来源: 51CTO 作者: 英尚微电子 链接: https:/

MR25H10-1Mb密度SPI串行接口MRAM

被刻印的时光 ゝ 提交于 2019-12-24 23:34:23
everspin的MR25H10是一个1,048,576位磁阻随机存取存储器(MRAM)设备,由131,072个8位字组成。MR25H10提供串行EEPROM和串行闪存兼容的读/写时序,没有写延迟,并且读/写寿命不受限制。 与其他串行存储器不同,读取和写入都可以在内存中随机发生,而两次写入之间没有延迟。对于必须使用少量I/O引脚快速存储和检索数据和程序的应用,MR25H10是理想的存储器解决方案。 MR25H10提供5mmx6mm8引脚DFN封装或5mmx6mm8引脚DFN小标志封装。两者均与串行EEPROM,闪存和FeRAM产品兼容。该系列产品中的MR25H10CDF,MR25H10CDC可用于替换Cypress的型号FM24V10. MR25H10可在各种温度范围内提供高度可靠的数据存储。该产品提供工业(-40°至+85°C)和AEC-Q1001级(-40°C至+125°C)工作温度范围选项。 对于必须使用最少数量的引脚快速存储和检索数据和程序的应用,MR25H10是理想的mram芯片。可提供AEC-Q1001级合格选项。40MHz的读写速度,具有无限的耐力。数据非易失性,保留20年。数据保留掉电。符合RoHS的软件包。 1Mb串行SPI MRAM •无写入延迟 •无限的写续航力 •数据保留超过20年 •断电时自动数据保护 •块写保护 •快速,简单的SPI接口

Using Serial Peripheral Interface (SPI) to talk to several slaves simultaneously

回眸只為那壹抹淺笑 提交于 2019-12-24 17:16:08
问题 I have four Atmega328p in a single board and I want one of them send the same data (i.e. sensor readings) to the other three simultaneously. I'm not interested in a bidirectional communication. I read this thread (How can I broadcast data to multiple SPI slaves and how it works?) about SPI broadcasting, and someone mentioned not being possible because in SPI communication is full duplex and MISO and MOSI lines are active at the same time. However, I was wondering if I could just let the MISO

SPI机制的原理和应用

亡梦爱人 提交于 2019-12-23 19:48:20
前言 SPI ,全称为 Service Provider Interface ,是一种服务发现机制。它通过在ClassPath路径下的 META-INF/services 文件夹查找文件,自动加载文件里所定义的类。 这一机制为很多框架的扩展提供了可能,比如在 Dubbo、JDBC、SpringBoot 中都使用到了SPI机制。虽然他们之间的实现方式不同,但原理都差不多。今天我们就来看看,SPI到底是何方神圣,在众多开源框架中又扮演了什么角色。 一、JDK中的SPI 我们先从JDK开始,通过一个很简单的例子来看下它是怎么用的。 1、小栗子 首先,我们需要定义一个接口,SpiService public interface SpiService { void println ( ) ; } 然后,定义一个实现类,没别的意思,只做打印。 public class SpiServiceImpl implements SpiService { @Override public void println ( ) { System . out . println ( "------SPI DEMO-------" ) ; } } 最后呢,要在resources路径下配置添加一个文件。文件名字是接口的全限定类名,内容是实现类的全限定类名,多个实现类用换行符分隔。 文件内容就是 实现类 的全限定类名

Trouble with SPIDEV, device tree and .dtbo name with Beaglebone Black

跟風遠走 提交于 2019-12-23 19:19:20
问题 I have some weird issue with device tree. I found out that changing name of the .dtbo changed the beahvior of the kernel ! I have modified the BB-SPIDEV1-00A0.dts given in /lib/firmware with Angstrom : /* * Copyright (C) 2013 CircuitCo * * Virtual cape for SPI1 on connector pins P9.29 P9.31 P9.30 P9.28 * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ /dts