spi

RT-Thread Studio移植EasyFlash和ulog_easyflash注意事项

浪尽此生 提交于 2020-08-17 17:49:45
Github官方源码及文档看这里: https://github.com/armink/EasyFlash https://github.com/armink-rtt-pkgs/ulog_easyflash 移植过程参考官方文档即可,这里简单说一下我自己在移植过程中踩过的坑以及一些注意事项: 尽量在RT-Thread里面使用一种日志,ulog和easylogger尽可能选择其中一个即可,否则会造成一些不必要的麻烦。我原先在开启ulog的基础上配置easylogger的时候,INFO初始化时遇到了问题,后来发现ulog的配置和EasyLogger的有一部分串了,修改起来也比较麻烦。ulog_easyflash其实就是ulog的一种后端,已经能够完美对接easyflash了,因此如果使用ulog就能完成,尽可能还是选择官方推荐的ulog吧。 EasyFlash目前支持的硬件平台仅3种(截止我写博客时间2020/8/15):stm32f10x和stm32f40x的片内Flash,还有基于SPI(QSPI)的片外FLASH,因此如果不是f1或f4的芯片还是用片外FLASH比较好。其中片外Flash的移植方式又分为两种:基于fal库和基于SFUD库的,因此在如果是使用片外Flash的话记得先配置以上这两种库。官方手册给出的配置方式如下,本次博主使用的是F7系列芯片

BCM5396的SPI理解

左心房为你撑大大i 提交于 2020-08-17 16:30:33
参考文档链接:https://pan.baidu.com/s/1kuXJmULwtjOW1TeOuTRPQQ *时钟极性和相位 BCM538X / BCM5396用于根据以下标准发送/接收SPI数据: •时钟极性(CPOL)= 0或1 ; •时钟相位(CPHA)= 1 ; CPOL由 SS在空闲状态下 从高电平变为低电平时SCK的值确定。 这些参数在BCM538X / BCM5396上不可编程。 外部SPI器件需要与BCM538X / BCM5396的参数保持一致才能正常通信。 时钟极性 (CPOL)- 如果此参数为1,则SCK相对于 主设备的 内部移位时钟 反转。 如果此参数为0,则SCK空闲状态为低。 如果CPOL = 1,则SCK空闲状态为高。 时钟相位 (CPHA)- 如果此参数为1,则SCK相对于主机的内部移位时钟相移180°。 假设CPOL = 0 ,则如果此参数为0,则数据在SCK上升沿锁定。 如果此参数为1,则数据在SCK下降沿锁定。 如果CPOL = 1 ,则与CPOL=0相反。 有关CPOL和CPHA的信息,请参阅Motorola™SPI接口规范。 *BCM5396采样边沿 SS由0到1时,SCLK=1,故CPOL=1;同时BCM的CPHA固定为1;因而,是SCLK的上升沿进行采样; *BCM5396操作时序: 来源: oschina 链接: https:/

Spring Cloud Alibaba系列(五)sentinel实现服务限流降级

孤街醉人 提交于 2020-08-17 07:35:46
一、sentinel是什么 sentinel的官方名称叫分布式系统的流量防卫兵。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。在Spring Cloud项目中最开始我们使用的是Hystrix,目前已停止更新了。现在Spring Cloud官方推荐的是rensilience4j。当然还有我们今天学习的sentinel。 Sentinel 具有以下特征: 丰富的应用场景 :Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。 完备的实时监控 :Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运 行情况。 广泛的开源生态 :Sentinel 提供开箱即用的与其它开源框架/库的整合模块,例如与 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相应的依赖并进行简单的配置即可快速地接入 Sentinel。 完善的 SPI 扩展点 :Sentinel 提供简单易用、完善的 SPI 扩展接口。您可以通过实现扩展接口来快速地定制逻辑。例如定制规则管理、适配动态数据源等。 二、sentinel实现限流 2.1

背着相机的甲虫登上Science子刊,它拍下了昆虫界第一部Vlog

三世轮回 提交于 2020-08-17 02:37:30
  机器之心报道    编辑:蛋酱、小舟    你知道昆虫的视界是什么样的吗?      如果昆虫也成为了一名 Vlogger,作品会是什么样的?   近日,一项在甲虫背部安装相机的研究登上《Science Robotics》,为我们揭晓了这一谜题。通过了解自然界中昆虫的视觉系统并做出取舍,研究者以平衡能量、计算量和质量的方式,为昆虫规模的机器人设计出更好的视觉系统。   让身长不足三厘米的甲虫背上相机,这件事并不简单。在人类看来最微小的摄像机,也足以压垮昆虫。因而,研究者首先思考的问题是:如何打造出一款适用于昆虫搭载的可操纵摄像机?   在该研究中,研究者设计出一种完全无线、动力自动化、机械可操纵的视觉系统。该系统用足够小的形状因子模仿昆虫的头部运动,可以安装在活的甲虫或类似大小的陆地机器人背部。   对于昆虫大小的机器人来说,无线视觉提供了丰富的环境形状和纹理信息。这在大型机器人中很常见,但在资源有限的小型平台上却是一个挑战。      安装在甲虫或类似大小的机器人背上的相机基本构造。   电子设备的执行器重 248 毫克,并且可以根据智能手机的命令将相机转向 60 度。制作好的相机约为硬币大小,以每秒 1 到 5 帧(fps)将 “第一人称主视角” 以 160*120 像素的单色视频传到距离 120 米远的蓝牙无线电中。     

Dubbo 负载均衡策略和集群容错策略?

前提是你 提交于 2020-08-16 22:29:02
面试题 dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢? 面试官心理分析 继续深问吧,这些都是用 dubbo 必须知道的一些东西,你得知道基本原理,知道序列化是什么协议,还得知道具体用 dubbo 的时候,如何负载均衡,如何高可用,如何动态代理。 说白了,就是看你对 dubbo 熟悉不熟悉: dubbo 工作原理:服务注册、注册中心、消费者、代理通信、负载均衡; 网络通信、序列化:dubbo 协议、长连接、NIO、hessian 序列化协议; 负载均衡策略、集群容错策略、动态代理策略:dubbo 跑起来的时候一些功能是如何运转的?怎么做负载均衡?怎么做集群容错?怎么生成动态代理? dubbo SPI 机制:你了解不了解 dubbo 的 SPI 机制?如何基于 SPI 机制对 dubbo 进行扩展? 面试题剖析 dubbo 负载均衡策略 random loadbalance 默认情况下,dubbo 是 random load balance ,即 随机 调用实现负载均衡,可以对 provider 不同实例 设置不同的权重 ,会按照权重来负载均衡,权重越大分配流量越高,一般就用这个默认的就可以了。 roundrobin loadbalance 这个的话默认就是均匀地将流量打到各个机器上去,但是如果各个机器的性能不一样,容易导致性能差的机器负载过高。所以此时需要调整权重

分享一款巨微MS1586低功耗蓝牙芯片

ぃ、小莉子 提交于 2020-08-16 16:41:26
MS1586包含8位单片机和低功耗、低成本的BLE收发器,内部集成了发射机、接收机、GFSK调制解调器和BLE基带处理。遵循BLE广播通道通信,具有成本低、体积小、控制方便等优点。 特点 •4KWOTPROM •256byteSRAM •1个16位硬件定时器 •两个8位定时器(可作为PWM生成器) •三个11位硬件PWM生成器 •一个硬件比较器 •9个IO引脚 •6通道12位ADC •ADC参考电压 •一组1T8X8硬件乘法器 •时钟模式:内部高频振荡器,内部低频振荡器,外部晶体振荡器 •唤醒的IO:支持两种唤醒速度:正常和快速 •大部分单周期指令 •可设定堆栈指针和堆栈深度 •工作温度:-20°C~+70°C •工作电压:2.2V~3.6V •封装SOP16(150mil) •BLE射频发射功率:最高3dBm •BLE接收灵敏度:-85dBm 管脚描述 MS1586采用SOP16封装。 BLE寄存器信息 BLE寄存器可以通过模拟spi接口进行读写访问。MS1586内部的接口信号图如下: 典型应用原理图 封装 来源: oschina 链接: https://my.oschina.net/u/4307541/blog/4497716

Netapp日志收集方法

寵の児 提交于 2020-08-16 08:29:19
适用范围 适用于Cluster Mode的Netapp存储 假设存储的2个控制器名称分别为: Node1和Node2 注意:实际操作时需要将Node1和Node2更换为你的控制器节点名称 Autosupport日志 ssh连接群集管理IP地址/DNS名称,输入以下命令: system node autosupport invoke -node node1 -type all –uri file://localhost/mroot/etc/log/node-01.7z system node autosupport invoke -node node2 -type all –uri file://localhost/mroot/etc/log/node-02.7z 这样2个节点将分别生成autosupoort日志,可以用命令 system node autosupport history show 检查日志的生成情况 日志生成之后,通过web浏览器访问存储可以下载日志文件。 https://<cluster-mgmt-ip>/spi/node-01/etc/log/node-01.7z https://<cluster-mgmt-ip>/spi/node-02/etc/log/node-02.7z 系统事件 通过 event log show 收集系统事件 EMS日志 https:/

ORAN专题系列-9:5G O-RAN 分体式小基站Option7-8硬件白盒化的参考架构

烈酒焚心 提交于 2020-08-16 02:57:10
概述: Option7-8的分离式部署, O-DU7-8的硬件白盒化, O-RU7-8的硬件白盒化 在一体式小基站的白盒化硬件的参考架构中,探讨了一体式和分体式的分类方法,以及5G一体式小基站硬件白盒化的参考架构。这里进一步探讨分体式小基站硬件白盒化的参考架构。 一、分体式/分离式架构的进一步分类 1. O-RAN 分离式架构 ​ ​ 所谓分体/分离架构:是指O-RU和O-DU在物理上彼此分离,不在同一个物理实体中。 O-DU和O-RU之间的接口称为Front Haul接口。 2. High-PHY 和Low-PHY不同的部署选项 O-DU和O-RU在物理上的分离,就带来一个问题: 原先需要由 专用 的DSP数字信号处理器处理的PHY层协议,如何处置和安排? 先再看一下协议分层: ​ ​ 硬件白盒化的终极目标是协议功能都迁移到通用的计算机上。 L2 MAC层及之上:迁移到通用平台上,已经不是大问题。除了1ms/10ms定时外,从计算机处理和计算能力、实时处理角度来看,迁移到通用平台上没有太大的难点。 RF+天线:在较长的一段时间内,还将只能运行在嵌入式专用的硬件平台,这也没有太大的争议。 这里的关键是,原先需要专用的DSP数字信号处理的L1 PHY层,如何处理? 这是通用硬件和专用硬件的边界 , 边界是最容易有纠结和有纠纷的地方。 为此,在5G系统中,把L1

LoRa节点方案的转变

核能气质少年 提交于 2020-08-15 23:15:59
一、什么是LoRa?   LoRa是semtech公司创建的低功耗局域网无线标准,我们知道,低功耗一般很难覆盖远距离,而远距离一般功耗高,LoRa的名字翻译就是远距离无线电(Long Range Radio),它最大特点就是在同样的功耗条件下比其他无线方式传播的距离更远,实现了低功耗和远距离的统一,它在同样的功耗下比传统的无线射频通信距离扩大3-5倍。 二、传统的LoRa节点方案 传感器:代指 数据产生的硬件,也可以是其他MCU、水表、电表等能产生数据的硬件; MCU:例如STM8 、C51等单片机 LoRa芯片:例如 SX1276、SX1277、SX1278、SX1268、SX1262等   上述节点方案中, MCU通过SPI接口来操作LoRa芯片的寄存器从而对其进行配置和传输无线数据 ,应用起来太过繁琐。   虽然LoRa经常被误用来描述整个LPWAN通信系统,但严格来说,LoRa是Semtech拥有的专有调制格式。 SX1272和SX1276 LoRa芯片使用称为chirp扩频(CSS)的调制技术来组成技术栈的 物理层(PHY) 。 三、LoRaWan标准   LoRaWAN是一个开放标准,它定义了基于LoRa芯片的LPWAN技术的通信协议。 LoRaWAN在数据链路层定义媒体访问控制(MAC) ,由LoRa联盟维护。 LoRa和LoRaWAN之间的这种区别很重要

字符串数据脱敏以及与日志框架logback的集成(日志脱敏)

…衆ロ難τιáo~ 提交于 2020-08-15 16:51:44
字符串数据脱敏框架 可选择唯品会的工具: https://github.com/vipshop/vjtools/blob/master/vjkit/docs/data_masking.md 也可以自定义,用正则或者其他方式(如:commons-lang3#StringUtils) 与logback集成 分析: 由于logback的api和语法多种多样( http://logback.qos.ch/manual/architecture.html , 如下),导致在logback级别处理数据脱敏不太方便,为了保持日志框架原本自由的使用方式,所以在调用前处理日志脱敏,且注意加上必要的日志打印判断提高性能。 logback基本语法: String message = "This is a message."; logger.info(message); logger.info("This is a message"); String param = "some variable"; logger.info("This is a message. {}", param); String param1 = "some variable1"; String param2 = "some variable2"; logger.info("This is a message. {} {}",