wrapper

xilinx zcu106 vcu demo

北城以北 提交于 2020-08-10 02:23:39
board:zcu106 tool: vivado 2019.2 vitis 2019.2 petalinux 2019.2 doc:PG252 UG1209 ref: http://www.zynqnotes.com/a-simple-vcu-design ref: https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/176783395/Zynq+UltraScale+MPSoC+VCU+TRD+2019.2 zcu106_hdmitx 想demo一个简单的例子,编解码SD卡上的数据,在PC上验证是否成功 逻辑设计: vivado 2019.2 新建工程(采用zcu106模板) 添加PS:ZYNQ UltraScale+ MPSoC (Run Block Automation),可以将zcu106默认的一些器件都自动配置好,这一步不要忘 添加VCU:ZYNQ UltraScale+ VCU (Run Block Automation) PG252 Ch12 Design Flow Steps (P149)可以大概参考一下,可是照着做好像不行。 VCU有6个AXI接口 S_AXI_LITE:APU主,VCU从,用于APU访问配置VCU寄存器 M_AXI_ENC0,M_AXI_ENC1,M_AXI_DEC0,M_AXI_DEC1

python 装饰器详解

自作多情 提交于 2020-08-09 22:27:15
装饰器 先理解一个柯里化: 柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术 即 add(a,b), add(a)(b), 这两个运行效果一样 @语法糖在什么时候干了啥事? @语法糖只做一件事那就是 仅在被加载或导入时把被装饰函数传入装饰函数中并返回新的函数,且只运行一次,这点很重要一定要理解 @的后面是一个可调用的,且参数是接收一个函数的对象,即 @x , x = f1(fn)比如函数的引用,或实现__call__函数的类 装饰器分解说明: 不管带不带参啥的。万变不离其中。 @a def b(): pass 这种的分解为: b(): b = a(b) >> b(), 此时调用的b()其实就是调用b = a(b) 然后 b(), a为装饰器函数的引用接受一个函数做参数,返回一个新函数,然后调用,如果被装饰的函数由参数直接带上就是了, 只不过a(b)返回的函数也必须是一个带参数的。如下 @a def b(x, y): 等价于b = a(b) >> b(x, y), 即a(b) 返回了一个接受两个参数的函数 pass 这种的装饰器应该是这样的: def a(fn): def wrapper(*args, **kwargs):接受被装饰函数的参数 do some thing return

C++(标准库):50---并发之(条件变量:condition_variable、condition_variable_any)

泄露秘密 提交于 2020-08-09 20:35:27
一、Condition Variable(条件变量)的意图 在前文的文章中(详情见“八”: https://blog.csdn.net/qq_41453285/article/details/105602105 ), 我们有一个演示案例,让某线程等待另一线程,其使用的办法是使用ready flag的方法 。代码如下: bool readyFlag; std::mutex readyFlagMutex; void thread1() { //做一些thread2需要的准备工作 //... std::lock_guard<std::mutex> lg(readyFlagMutex); readyFlag = true; } void thread2() { //等待readyFlag变为true { std::unique_lock<std::mutex> ul(readyFlagMutex); //如果readyFlag仍未false,说明thread1还没有锁定,那么持续等待 while (!readyFlag) { ul.unlock(); std::this_thread::yield(); std:this_thread::sleep_for(std::chrono::milliseconds(100)); ul.lock(); } }//释放lock /

快速解决 GRADLE 项目下载 gradle-*-all.zip 慢的问题

倾然丶 夕夏残阳落幕 提交于 2020-08-09 13:37:42
1、首先根据项目中 gradle\wrapper\gradle-wrapper.properties 文件的 distributionUrl 属性的值 #Tue Feb 06 12:27:20 CET 2018 distributionBase = GRADLE_USER_HOME distributionPath =wrapper/ dists zipStoreBase = GRADLE_USER_HOME zipStorePath =wrapper/ dists distributionUrl =https\: // services.gradle.org/distributions/gradle-4.8.1-bin.zip 2、根据 distributionUrl 对应的 gradle 的版本好,去下载相应的版本,可以通过 迅雷 或者其他国内网站下载,下载后先保存在本地,等待后续使用 3、运行 gradle build 命令进行构建 # Windows 下使用 gradlew.bat build # Linux mac 下使用 gradlew build 运行以后,提示下载时,终止掉 终止掉后,打开此文件夹 $GRADLE_USER_HOME/wrapper/dists/gradle-4.8.1-bin/ e8p42vx1m7a3mz9ydmjagn6wn

Element table设置固定列,没有滚动条时底部会显示一条线的解决方法

落花浮王杯 提交于 2020-08-09 11:32:46
固定列需要在el-table-column 上设置fixed属性,它接受Boolean值或者left right,表示左边固定还是右边固定 <el-table :data="tableData" border style="width: 100%"> <el-table-column fixed prop="date" label="日期" width="150"> </el-table-column> <el-table-column prop="name" label="姓名" width="120"> </el-table-column> <el-table-column prop="zip" label="邮编" width="120"> </el-table-column> <el-table-column fixed="right" label="操作" width="100"> <template slot-scope="scope"> <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button> <el-button type="text" size="small">编辑</el-button> </template> </el-table-column> <

装饰器

最后都变了- 提交于 2020-08-09 10:44:03
一、什么是装饰器? 器 就是工具 可以用函数定义 装饰 为其他事物添加功能 合到一起可以理解成是定义一个函数来装饰其他函数。给其他函数添加额外的功能。 装饰器 的使用满足开放封闭原则 即对于代码功能的拓展是开放的 对于修改源代码是封闭的 合到一起就是不能改函数的调用方式,和原函数的代码,但是要增加原函数的功能。 二、装饰器怎么定义? from functools import wraps def outter(func):   @wraps(func) # 将wrapper函数伪装成func函数的工具,除了返回值,参数以外,包括func的内置属性__name__,__file__等等都伪装成一样的。   def wrapper(*args,**kwargs): # 确保wrapper的参数,返回值,调用方式都跟func一模一样,但是可以增加一些功能     # 功能可以增加在这里     res = func(*args,**kwargs)     return res   return wrapper ==============================> 下面是函数的调用阶段啦 func = outter(func) # 返回值就是wrapper函数的内存地址,之后再加上括号就可以实现在不改变func函数的代用方式,和代码的情况下,实现对于func功能的增加

JAVA SPI机制

霸气de小男生 提交于 2020-08-08 13:31:58
SPI机制 @Author:zxw @school:吉首大学 参考资料: http://dubbo.apache.org/zh-cn/docs/source_code_guide/dubbo-spi.html 1. 前言 2. JAVA SPI ServiceLoader<Robot> loader = ServiceLoader.load(Robot.class); System.out.println("JAVA SPI"); loader.forEach(Robot::sayHello); 创建一个Iteraotor.iterator方法(),并创建一个接口 public S next() { if (knownProviders.hasNext()) return knownProviders.next().getValue(); return lookupIterator.next(); } 首先通过next()方法获取下一元素 public S next() { if (acc == null) { // 进入这 return nextService(); } else { PrivilegedAction<S> action = new PrivilegedAction<S>() { public S run() { return nextService(); } }

如何将道具传递给{this.props.children}

点点圈 提交于 2020-08-07 21:44:54
问题: I'm trying to find the proper way to define some components which could be used in a generic way: 我试图找到定义可以以一般方式使用的某些组件的正确方法: <Parent> <Child value="1"> <Child value="2"> </Parent> There is a logic going on for rendering between parent and children components of course, you can imagine <select> and <option> as an example of this logic. 当然,在父组件和子组件之间存在渲染逻辑,您可以想象 <select> 和 <option> 作为此逻辑的示例。 This is a dummy implementation for the purpose of the question: 对于这个问题,这是一个虚拟的实现: var Parent = React.createClass({ doSomething: function(value) { }, render: function() { return (<div>{this.props

ESP32 开发

会有一股神秘感。 提交于 2020-08-07 16:37:31
功能丰富的 Wi-Fi & 蓝牙 MCU适用于多样的物联网应用 esp32/sources/esp-idf $ python -m pip install --user -r requirements.txt $ make menuconfig $ xtensa-esp32-elf-gcc -v Using built-in specs. COLLECT_GCC=xtensa-esp32-elf-gcc COLLECT_LTO_WRAPPER=...... Target: xtensa-esp32-elf ...... Thread model: posix gcc version 5.2.0 (crosstool-NG crosstool-ng-......) 问题: esp32/sources/esp-idf/components/soc/include/hal/i2s_types.h:70:31: error: expected ',' or '}' before '__attribute__' I2S_COMM_FORMAT_I2S __attribute__((deprecated)) = 0x01, /*!< I2S comm ^ esp32/sources/esp-idf/components/soc/src/hal/i2s_hal.c: In function

搞机器学习,Python 和 R 哪个更合适?

耗尽温柔 提交于 2020-08-07 09:51:22
【编者按】 如果你正想构建一个机器学习项目,但却纠结于如何选择编程语言,这篇文章将是你所需要的。 这篇文章不仅帮助你理解Python和R这两种语言的区别,还有助于你了解各个语言多方面的优势。那就不再浪费时间了,我们直接进入主题吧! 作者 | Manav Jain 译者 | Joe,责编 | 夕颜 出品 | CSDN(ID:CSDNnews) 以下为译文: R和Python有着相同的编程特性,同时都是数据科学家常用的工具。在机器学习领域,大约有69%的开发者使用Python,另外24%的开发者使用R。这两种语言都是开源的,因此都是免费的。但是,Python是被设计成一种广泛适用的编程语言,但R是被用于统计分析。 人工智能和数学分析是开源工具创新的两大热门领域。Python和R都营造了很好的开源生态环境,这有利各个水平的数据科学家更有效地完成科学工作。 机器学习和数据分析之间的区别随着时间的推移都是相对变化,但是,其主要的区别是机器学习偏向模型解释,而数据分析侧重解释和事实推测。在不断增长的质疑声中,Python在机器学习领域获得了一席之地。R则作为一门用于事实推断和统计推断的语言在数据分析领域享有盛誉。 这并不意味着必须把这两个语言划分到不同的领域 ——python也足以被用来作为数据分析的工具,R也具备充分的适应性可以完成机器学习中的重要工作