Entry

痞子衡嵌入式:其实i.MXRT1050,1020,1015系列ROM也提供了FlexSPI driver API

筅森魡賤 提交于 2020-07-26 19:41:02
  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是 i.MXRT1050/1020/1015系列ROM中的FlexSPI驱动API使用 。   今天痞子衡去4S店给爱车做保养了,保养一次要等两小时,闲来无聊就写了这篇文章打发时间,正好痞子衡技术交流群里有朋友也在问这个主题,急人所急是痞子衡的一大特质(此处请允许我装一下)。   本篇是 《利用i.MXRT1xxx系列ROM提供的FlexSPI driver API可轻松IAP》 的续集,上篇文章基本上把ROM API原理及使用讲得很透彻了,但文中卖了一个关子,即i.MXRT1xxx系列一共出了7款型号,但并不是每个型号都开放了ROM API,最早诞生的三款型号(105x、1021、1015)就并没有开放API(不是没有API,而是没有严格测试),随着ROM API的优点逐渐被大家意识到,客户要求API开放的呼声也越来越高,因此恩智浦研发团队对未开放的API做了测试,明确功能一切正常后,终于官宣了。所以今天痞子衡着重讲这三款未开放API的RT型号在API使用上跟主流RT型号(如i.MXRT1060)有什么区别。 RT芯片型号 是否支持ROM API 是否全功能API i.MXRT117x 支持 是 i.MXRT1064 支持 是 i.MXRT106x 支持 是 i.MXRT105x 未开放 -> 官宣开放 N/A -

【华为云技术分享】基于小熊派STM32芯片的通过MQTT上报JSON数据到华为物联网平台的自动售货机Demo解析

余生颓废 提交于 2020-07-26 14:31:46
【摘要】 STM32的工程在文章末尾,可自行下载。 一、工程配置 1、MCU类型选择STM32L431RC 2、烧录器选择OpenOCD,参数 -f interface/stlink-v2-1.cfg -f target/stm32l4x.cfg 3、输出目录选择 LiteOS_Lab_STM32\targets\STM32L431_BearPi\GCC\appbuild 4、编译器Makefile选择 targets\STM32L431_BearPi\GCC\Makefile 5、平台参数配置:LiteOS_Lab_STM32\demos\oc_mqtt_demo\oc_mqtt_demo_static\oc_mqtt_static.c 6、WIFI用户名密码配置: LiteOS_Lab_STM32\iot_link\network\tcpip\esp8266_socket\esp8266_socket_imp.h 7、在物联网平台上创建产品,选择MQTT方式 二、部分代码解析 编译烧录程序之前我们需要修改两处代码 第一处打开oc_mqtt_static.c文件,我们需要配置设备连接华为云,物联网平台所需要的参数, 修改第51行CN_MQTT_EP_NOTE_ID 为在华为云,设备接入服务,注册设备时使用的设备识别码,可以在平台中查看, 修改CN_MQTT_EP_DEVICE

我的jdk源码(十六):LinkedHashMap类

本秂侑毒 提交于 2020-07-26 13:41:14
一、概述 LinkedHashMap类是继承自HashMap类,但是在HashMap的数据结构基础上,使得每个桶的元素又通过新Entry特殊的结构,组成一条双向链表。有了双向链表的结构,就能保证LinkedHashMap的实例在默认情况下能够保持元素的插入顺序。 二、源码剖析 (1) 类的声明 public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V> LinkedHashMap的继承实现结构比较简单,就是继承了HashMap类,然后实现了Map类,让LinkedHashMap拥有Map的特性。 (2) 元素结构 static class Entry<K,V> extends HashMap.Node<K,V> { Entry<K,V> before, after; Entry(int hash, K key, V value, Node<K,V> next) { super(hash, key, value, next); } } LinkedHashMap类的结点Entry类实际是继承了HashMap类的结点Node类,并且在此基础上添加了before和after两个引用,用来记录双向链表的前后结点。 (3) 成员变量 //序列化标识ID private static final long

[前端进阶课] 构建自己的 webpack 知识体系

半世苍凉 提交于 2020-07-26 12:13:44
webpack webpack 最出色的功能之一就是,除了 JavaScript ,还可以通过 loader 引入 任何其他类型的文件 。 Webpack 核心概念: Entry (入口):Webpack 执行构建的第一步将从 Entry 开始,可抽象成输入。 Output (出口):指示 webpack 如何去输出、以及在哪里输出 Module (模块):在 Webpack 里一切皆模块,一个模块对应着一个文件。Webpack 会从配置的 Entry 开始递归找出所有依赖的模块。 Chunk (代码块):一个 Chunk 由多个模块组合而成 ,用于代码合并与分割。 Loader (模块转换器):用于把模块原内容按照需求转换成新内容。 Plugin (扩展插件):在 Webpack 构建流程中的特定时机会广播出对应的事件,插件可以监听这些事件,并改变输出结果 配置项 入口 Entry entry: { a: "./app/entry-a", b: ["./app/entry-b1", "./app/entry-b2"] }, 多入口可以通过 HtmlWebpackPlugin 分开注入 plugins: [ new HtmlWebpackPlugin({ chunks: ['a'], filename: 'test.html', template: 'src/assets/test

我的jdk源码(七):ThreadLocal类

只谈情不闲聊 提交于 2020-07-26 01:07:27
一、概述 ThreadLocal类 是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。 简单说ThreadLocal就是一种以" 空间换时间 " 的做法,在每个Thread里面维护了一个以开地址法实现的ThreadLocal.ThreadLocalMap,把数据进行隔离,数据不共享,从而保证线程安全。 下面就来深入分析一下ThreadLocal类的源码。 二、源码解析 (1) 成员变量,源码如下: //ThreadLocal对象的hashcode private final int threadLocalHashCode = nextHashCode(); //即将分配的下一个ThreadLocal实例的threadLocalHashCode的值 private static AtomicInteger nextHashCode = new AtomicInteger(); //连续生成的哈希码之间的差异——将隐式顺序线程本地id转换为接近最优扩散的乘法哈希值,用于大小为2的幂的表。 private static final int HASH_INCREMENT = 0x61c88647; HASH

[grub2] grub2修改启动顺序

醉酒当歌 提交于 2020-07-25 21:22:27
https://wiki.centos.org/HowTos/Grub2#head-535f476a61e62f24bc150c73f7e0816f85345f46 1, 查看所有的entry [root@dpdk grub2]# awk -F \ ' ' $ 1 == " menuentry " {print i++ " : " $ 2 } ' /etc/grub2.cfg 0 : CentOS Linux ( 3.10 . 0 - 693.11 . 1 .el7.x86_64) 7 (Core) 1 : CentOS Linux ( 3.10 . 0 - 693.5 . 2 .el7.x86_64) 7 (Core) 2 : CentOS Linux ( 3.10 . 0 - 693.2 . 2 .el7.x86_64) 7 (Core) 3 : CentOS Linux ( 0 -rescue-37138ca794604b28bca5b6394f5cd3c2) 7 (Core) 2. 查看当前default的entry [root@dpdk grub2]# grub2- editenv list saved_entry =CentOS Linux ( 3.10 . 0 - 693.11 . 1 .el7.x86_64) 7 (Core) [root@dpdk grub2]#

分享一个新出炉的JVM里不痛不痒的BUG(Attach机制相关)

扶醉桌前 提交于 2020-07-25 15:48:24
本文来自: PerfMa技术社区 PerfMa(笨马网络)官网 概述 老早之前写过一篇文章,关于attach机制的,可以看下这篇老文章了解一下 JVM源码分析之Attach机制实现完全解读 ,比如大家常用的jstack,jmap等工具的主要原理都和attach机制有关,在JVM里处理这些命令的线程主要是 Attach Listener 这个线程,这个线程在JVM里是唯一的,我之前也一直以为是唯一的,但是我们同事最近在做一个线程分析产品的时候,发现我们抓到了多个 Attach Listener 线程,这让我也很疑惑,我第一感觉是不可能,肯定是数据抓错了,直到亲眼看到了两个同名的 Attach Listener 线程我才不得不相信原来还真有这种情况。 问题分析 不过从 Attach Listener 的实现来看,它设计的初衷不应该是一个多线程的设计,于是我昨晚上又翻了一遍代码,发现还真可能存在这种情况。举个栗子,当我们很多人同时执行jstack的时候,就可能会发生,当然有个前提是之前都没有做过任何和attach相关的操作。 Attach Listener 线程默认情况下不会在JVM启动的时候就创建,当然也有一个JVM参数可以指定在JVM启动的时候就启动这个线程,这个就不会存在我们今天讨论的这个问题了,这个JVM参数是- XX:+StartAttachListener 。

服务条目(Service Entries)

核能气质少年 提交于 2020-07-24 21:03:10
索引总目录: istio从入门到放弃系列 1、介绍 使用服务条目资源(Service Entries)可以将条目添加到 Istio 内部维护的服务注册表中。添加服务条目后,Envoy 代理可以将流量发送到该服务,就好像该服务条目是网格中的服务一样。通过配置服务条目,可以管理在网格外部运行的服务的流量。 此外,可以配置虚拟服务和目标规则,以更精细的方式控制到服务条目的流量,就像为网格中的其他任何服务配置流量一样。 2、创建资源 2.1 创建服务条目资源 apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: test-entry spec: hosts: - "www.baidu.com" ports: - number: 80 name: http protocol: HTTP location: MESH_EXTERNAL resolution: DNS 该服务条目资源定义了一个外部网站 baidu,并将它纳入到 Istio 内部维护的服务注册表中 kubectl apply -f test-entry.yaml kubectl get serviceentry.networking.istio.io 2.2 创建客户端资源 apiVersion: apps/v1 kind:

Synchronized的实现

余生颓废 提交于 2020-07-24 10:12:10
Synchronized 的核心组件 Wait Set:哪些调用 wait 方法被阻塞的线程被放置在这里; Contention List:竞争队列,所有请求锁的线程首先被放在这个竞争队列中; Entry List:Contention List 中那些有资格成为候选资源的线程被移动到 Entry List 中; OnDeck:任意时刻,最多只有一个线程正在竞争锁资源,该线程被成为 OnDeck; Owner:当前已经获取到所资源的线程被称为 Owner; !Owner:当前释放锁的线程。 JVM 每次从队列的尾部取出一个数据用于锁竞争候选者(OnDeck),但是并发情况下,ContentionList 会被大量的并发线程进行 CAS 访问,为了降低对尾部元素的竞争,JVM 会将一部分线程移动到 EntryList 中作为候选竞争线程。 Owner 线程会在 unlock 时,将 ContentionList 中的部分线程迁移到 EntryList 中,并指定EntryList 中的某个线程为 OnDeck 线程(一般是最先进去的那个线程)。 Owner 线程并不直接把锁传递给 OnDeck 线程,而是把锁竞争的权利交给 OnDeck, OnDeck 需要重新竞争锁。这样虽然牺牲了一些公平性,但是能极大的提升系统的吞吐量,在JVM 中,也把这种选择行为称之为“竞争切换”。

JVM故障分析系列之四:jstack生成的Thread Dump日志线程状态

℡╲_俬逩灬. 提交于 2020-05-09 22:22:33
JVM故障分析系列之四:jstack生成的Thread Dump日志线程状态 2017年10月25日 Jet Ma JavaPlatform JVM故障分析系列系列文章 JVM故障分析系列之一:使用jstack定位线程堆栈信息 JVM故障分析系列之二:jstack生成的Thread Dump日志结构解析 JVM故障分析系列之三:jstat命令的使用及VM Thread分析 JVM故障分析系列之四:jstack生成的Thread Dump日志线程状态 JVM故障分析系列之五:常见的Thread Dump日志案例分析 JVM故障分析系列之六:JVM Heap Dump(堆转储文件)的生成和MAT的使用 JVM故障分析系列之七:使用MAT的Histogram和Dominator Tree定位溢出源 前面文章中只分析了Thread Dump日志文件的结构 ,今天针对日志文件中 Java EE middleware, third party & custom application Threads 部分线程的状态进行详细的分析。 目录 [ 隐藏 ] 1 Thread Dump日志的线程信息 2 系统线程状态 (Native Thread Status) 2.1 deadlock 2.2 runnable 2.3 blocked 2.4 waiting on condition 2.5