Sequence

痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(6)- Bootable image格式与加载(elftosb/.bd)

点点圈 提交于 2020-04-27 15:19:14
  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是 恩智浦i.MX RT1xxx系列MCU的Bootable image格式与加载过程 。   在i.MXRT1xxx启动系列第三篇文章 Serial Downloader模式(sdphost, mfgtool) 里痞子衡在介绍使用sdphost引导启动Flashloader时使用过一个名叫ivt_flashloader.bin的image文件,其实这个image文件就是Bootable image的一种,虽然痞子衡简单分析过ivt_flashloader的组成,但介绍得并不详尽,今天痞子衡会为大家系统地讲解i.MXRT Bootable image。 一、什么是Bootable image?   如果你是一个有经验的嵌入式开发者,肯定对image格式有所了解,我们通常开发的Application都是针对含内部FLASH的MCU而言的,比如Kinetis、LPC、STM32等MCU,其内部集成了一块Parallel NOR FLASH,且FLASH地址是映射在ARM 4GB system address内的(一般从0x0地址开始),FLASH里存储的直接就是我们编译链接后生成的原始Application binary(.bin),没有任何多余的数据组成。或许你会说还有.hex, .srec等其他image格式,是的

来,带你鸟瞰 Java 中的并发框架!

[亡魂溺海] 提交于 2020-04-27 15:09:55
作者:唐尤华 https://dzone.com/articles/a-birds-eye-view-on-java-concurrency-frameworks-1 1. 为什么要写这篇文章 几年前 NoSQL 开始流行的时候,像其他团队一样,我们的团队也热衷于令人兴奋的新东西,并且计划替换一个应用程序的数据库。 但是,当深入实现细节时,我们想起了一位智者曾经说过的话:“细节决定成败”。最终我们意识到 NoSQL 不是解决所有问题的银弹,而 NoSQL vs RDMS 的答案是:“视情况而定”。 类似地,去年RxJava 和 Spring Reactor 这样的并发库加入了让人充满激情的语句,如异步非阻塞方法等。为了避免再犯同样的错误,我们尝试评估诸如 ExecutorService、 RxJava、Disruptor 和 Akka 这些并发框架彼此之间的差异,以及如何确定各自框架的正确用法。 本文中用到的术语在这里有更详细的描述。 2. 分析并发框架的示例用例 3. 快速更新线程配置 在开始比较并发框架的之前,让我们快速复习一下如何配置最佳线程数以提高并行任务的性能。 这个理论适用于所有框架,并且在所有框架中使用相同的线程配置来度量性能。 对于内存任务,线程的数量大约等于具有最佳性能的内核的数量,尽管它可以根据各自处理器中的超线程特性进行一些更改。 例如,在8核机器中

Oracle Ogg 11 12 18 版本配置测试

五迷三道 提交于 2020-04-27 14:33:04
-- Ogg 18 11 12 18 版本配置测试 -- 准备工作 create tablespace ogg logging datafile '/u01/app/oracle/oradata/orcl/ogg.dbf' size 20m autoextend on uniform size 2m; create tablespace ogg logging datafile '+DATA' size 20m autoextend on uniform size 2m; create user ogg identified by ogg default tablespace ogg temporary tablespace temp quota unlimited on ogg; grant unlimited tablespace to ogg; grant connect, resource, dba to ogg; grant create session, alter session to ogg; grant alter system to ogg; grant select any dictionary to ogg; grant flashback any table to ogg; grant select any table, insert any table,

miRNA结合位点预测软件RNAhybrid的使用教程

痞子三分冷 提交于 2020-04-27 11:58:52
RNAhybrid的介绍 RNAhybrid是Behmsmeier M等基于miRNA和靶基因二聚体二级结构开发的miRNA靶基因预测软件。RNAhybrid预测算法禁止分子内、miRNA分子间及靶基因间形成二聚体,根据miRNA和靶基因间结合能探测最佳的靶位点。尽管随着靶基因序列长度增加,运算复杂度也相应增加,但RNAhybrid和其它RNA二级结构预测软件诸如mfold, RNAfold, RNAcofold和pairfold相比,仍具有明显的速度优势。此外,RNAhybrid允许用户自定义自由能阈值及p值,也允许用户设置杂交位点的偏向,如杂交位点必须包含miRNA 5’端2-7nt等。 1.RNAhybrid的下载与安装 1 wget https: // bibiserv.cebitec.uni-bielefeld.de/applications/rnahybrid/resources/downloads/RNAhybrid-2.1.2.tar.gz 2 tar -xzvf RNAhybrid- 2.1 . 2 . tar .gz 3 cd /path/to/ RNAhybrid- 2.1 . 2 4 ./ configure 5 sudo make #这里尽量使用管理员模式,不然容易出错 6 sudo make install 验证是否安装成功,可以输入which

MySQL 5.7 Replication 相关新功能说明 (转)

六眼飞鱼酱① 提交于 2020-04-27 06:40:11
背景: MySQL5.7在主从复制上面相对之前版本多了一些新特性,包括多源复制、基于组提交的并行复制、在线修改Replication Filter、GTID增强、半同步复制增强等。因为都是和复制相关,所以本文将针对这些新特性放一起进行说明,篇幅可能稍长,本文使用的MySQL版本是5.7.13。 1, 多源复制 (多主一从) MySQL在5.7之后才支持多源复制,之前介绍过 MariaDB 多主一从 搭建测试 说明,现在介绍如何在MySQL上做多主一从,具体的方法说明可以查看 官方文档 。 原理: 多源复制 加入了一个叫做 Channel 的概念, 每一个Channel都是一个独立的Slave,都有一个IO_THREAD和SQL_THREAD。原理和普通复制一样。我们只需要对每一个Master执行Change Master 语句,只需要在每个语句最后使用For Channel来进行区分。由于复制的原理没有改变,在没有开启GTID的时候Master的版本可以是MySQL5.5、5.6、5.7。并且从库需要 master-info-repository 、 relay-log-info-repository 设置为table,否则会报错: ERROR 3077 (HY000): To have multiple channels, repository cannot be of type

Linux中的各种锁

跟風遠走 提交于 2020-04-27 03:43:58
在 linux 内核中,有很多同步机制。比较经典的有原子操作、 spin_lock (忙等待的锁)、 mutex (互斥锁)、 semaphore (信号量)等。并且它们几乎都有对应的 rw_XXX (读写锁),以便在能够区分读与写的情况下,让读操作相互不互斥(读写、写写依然互斥)。而 seqlock 和 rcu 应该可以不算在经典之列,它们是两种比较有意思的同步机制。 atomic (原子操作): 所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位,因此这里的原子实际是使用了物理学里的物质微粒的概念。 原子操作需要硬件的支持,因此是架构相关的,其 API 和原子类型的定义都定义在内核源码树的 include/asm/atomic.h 文件中,它们都使用汇编语言实现,因为 C 语言并不能实现这样的操作。 原子操作主要用于实现资源计数,很多引用计数 (refcnt) 就是通过原子操作实现的。 mutex( 互斥锁 ) 互斥锁主要用于实现内核中的互斥访问功能。内核互斥锁是在原子 API 之上实现的,但这对于内核用户是不可见的。对它的访问必须遵循一些规则:同一时间只能有一个任务持有互斥锁,而且只有这个任务可以对互斥锁进行解锁。互斥锁不能进行递归锁定或解锁。一个互斥锁对象必须通过其 API 初始化,而不能使用

TCP UDP socket http webSocket 之间的关系

我的梦境 提交于 2020-04-27 02:59:42
---恢复内容开始--- OSI&TCP/IP模型 要弄清 tcp udp socket http websocket 之间的关系,首先要知道经典的 OSI 七层模型,与之对应的是 TCP/IP 的四层模型。 OSI 模型包括了七层,而 TCP/IP 模型只有四层。虽然它们具有功能相当的网络层、传输层和应用层,但其它层并不相同。   我们一般使用的网络数据传输由下而上共有七层,分别为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,也被依次称为 OSI 第一层、第二层、⋯⋯、 第七层。   TCP/IP 模型中没有专门的表示层和会话层,它将与这两层相关的表达、编码和会话控制等功能包含到了应用层中去完成。另外,TCP/IP 模型还将 OSI 的数据链路层和物理层包括到了一个网络访问层中。   OSI 模型在网络层支持无连接和面向连接的两种服务,而在传输层仅支持面向连接的服 务。TCP/IP 模型在互联网层则只支持无连接的一种服务,但在传输层支持面向连接和无连 接两种服务。   TCP/IP 由于有较少的层次,因而显得更简单,并且作为从因特网(INTERNET)上发展起来的协议,已经成了网络互连的事实标准。但是,目前还没有实际网络是建立在 OSI 七层模型基础上的,OSI 仅仅作为理论的参考模型被广泛使用。 从图中可以看出, tcp udp 工作在传输层, http

Python的6种内建序列之通用操作

对着背影说爱祢 提交于 2020-04-27 02:22:27
数据结构式通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构。在Python中,最基本的数据结构是序列(sequence)。序列中的每个元素被分配一个序号--即元素的位置,也称为索引。第一个元素索引是0,第二个则是1,一次类推。 Python包含6中内建的序列,即列表、元组、字符串、Unicode字符串、buffer对象和xrange对象。 通用序列操作:索引、分片、序列相加、乘法、成员资格、长度、最小值和最大值 1. 索引 序列中所有的元素都是有编号的--从0开始递增。可以通过编号分别对序列的元素进行访问。Python的序列也可以从右边开始索引,最右边的一个元素的索引为-1,想左开始递减。 >>> greeting='Hello' >>> greeting[2] 'l' >>> greeting[-1] 'o' >>> 'stringtesting'[3] #可以对任何一个字符串进行索引,该字符串的第三个索引为'i'字符 'i' >>> fourth=raw_input('Year: ')[3] #可以对输入的字符串进行索引,这样对输入的字符串索引为3的感兴趣 Year: 2014 >>> fourth '4' 2. 分片 索引用来对单个元素进行访问,用分片可以对一定范围内的元素进行访问

Python运算符-局部英文翻译版

ⅰ亾dé卋堺 提交于 2020-04-27 02:21:45
Operators (运算符) are the constructs which can manipulate the value of operands. Consider the expression 4 + 5 = 9. Here, 4 and 5 are called operands and + is called operator. Types of Operator Python language supports the following types of operators. Arithmetic Operators(算术运算符) Comparison (Relational) Operators(比较运算符) Assignment Operators(赋值运算符) Logical Operators(逻辑运算符) Bitwise Operators(按位逻辑运算符) Membership Operators(成员运算符) Identity Operators(身份运算符) Let us have a look on all operators one by one. Python Arithmetic Operators Assume variable a holds 10 and variable b holds 20, then − 变量a是10

《Sequence to Sequence Learning with Neural Networks》论文笔记

早过忘川 提交于 2020-04-26 23:42:53
机器翻译论文笔记 (Sequence to Sequence Learning with Neural Networks) 一.摘要 此论文中,实现机器翻译的核心模型是长短期记忆神经网络(Long Short-Term Memory, LSTM),首先通过一个多层的LSTM将输入的语言序列(下文简称源序列)转化为一个特定维度的向量,然后另一个深层LSTM根据此向量编译出相应的另一语言序列(下文简称目标序列)。与基于短语的 统计机器翻译(Static Machine Translation, SMT) 相比,在 BLUE(Bilingual Evaluation Understudy) 算法的评估下有着更好的性能表现。同时,作者发现逆转输入序列的顺序能显著提升LSTM的性能表现,因为这样解释了许多的源序列与目标序列的短期相关性,使最优化更简单。 二.介绍 1.深度神经网络(Deep Neural Networks)的介绍以及其局限性 深度神经网络(Deep Neural Networks)是一种性能强大的模型,在处理各种难题,如语音识别、物体认知上有着近乎完美的表现。这种模型之所以这么强大,是因为它能在有限的步骤内实现任意平行的计算。只要有足够的标签训练数据集,他就能识别出神经网络的参数,从而DNN能够实现很好的运行结果,做到解决问题。 虽然DNN有着很强的适应性和能力