utm

jesd204b实战操作笔记

安稳与你 提交于 2020-10-07 06:53:08
原文: https://blog.csdn.net/XiaoQingCaiGeGe/article/details/105862414?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-4.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-4.nonecase 本篇的内容基于jesd204b接口的ADC和FPGA的硬件板卡,通过调用jesd204b ip核来一步步在FPGA内部实现高速ADC数据采集,jesd204b协议和xilinx 的jesd204 IP核相关基本知识已在前面多篇文章中详细介绍,这里不再叙述~ 在该篇中,小青菜哥哥试图从一个初学者的视角来记录整个开发流程,力求做到每一个读者阅读完该笔记后都能快速开发基于jesd204b接口的FPGA-ADC数据采集,同时也确保几个月甚至几年后的本人已经遗忘了jesd204b开发细节后,通过阅读该笔记能够快速重新上手。 老话说得好:好记性不如烂笔头,想法不长久,文字永留存! 硬件工作环境 ADC:ADS52J90。FPGA:kintex7。供电:12V/4A 直流电源。该板卡最多外接32通道2Vpp模拟信号以及20路外部触发信号

database相关的优化

三世轮回 提交于 2020-10-06 18:46:55
一:从JDBC编程的角度讲,用preparedStatement一般来说比Statement性能高,因为在使用时,PreparedStatement会将SQL语句进行预编译,每次执行的时候只需要将参数设置给相应的占位符就可以运行。而使用Statement时,SQL语句时每次都要进行编译,所以PreparedStatement的效率相对较高 二:有外键约束时会影响到插入和删除性能,如果程序能够保证数据的完整性,那么我们在设计数据库时可以去掉外键(就比如免检产品,就是为了提高效率,选择充分相信产品的制造商) 三:表中允许适当的冗余,譬如,将姓名和密码单独从用户表中独立出来,在分析了业务的特点后,对数据库中表做了优化后的解决方案,也就是说在有些情况下,我们设计数据库时,可以适当的违反三个范式的设计原则(三个范式的简单理解: https://blog.csdn.net/zymx14/article/details/69789326?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1

STM32下mavlink的使用个人总结

青春壹個敷衍的年華 提交于 2020-10-06 13:02:33
我一开始想既然mavlink在STM32的使用只需要调用函数就可以了,但是mavlink在STM32的代码似乎比较多,我就想起直接看它的头文件有哪些函数,结果查看头文件有巨大发现 对应每种消息都有专门一个头文件,我甚至找到了vision_positon_estimate的头文件,是不是要读取某类消息只需要调用这个对应消息头文件里面的函数就可以了。 是不是在驱动文件include这个头文件就可以了,然后直接调用就可以了。好像main文件要Include mavros.h https://blog.csdn.net/sinat_16643223/article/details/108916785 在这个头文件里面我找到了似乎是对应读取某个参数的,这么来看用mavlink其实挺方便的。 那我再写驱动或者ACfly的传感器二次开发很方便了,都不需要自己写协议解析,就调用一个函数得到数据之后直接传给更新函数就行了。 static inline uint64_t mavlink_msg_vision_position_estimate_get_usec(const mavlink_message_t* msg) { return _MAV_RETURN_uint64_t(msg, 0); } /** * @brief Get field x from vision_position

学习go语言的第一天

偶尔善良 提交于 2020-10-05 06:49:08
Go语言的特点 1.无继承和多态 2.强一致性 3.接口不需要显式声明(Duck Typing) 4.无异常处理 5.基于首字母的可访问特性 6.不用的Import或变量会引起编译错误 7.完整且卓越的标准库包 Go语言的优势 1.易上手 2.效率高 3.出身名门(Google公司) 4.自由高效,支持并发编程,包括过程,面向对象,面向接口,函数式编程。 5.强大的标准库:互联网应用,系统编程和网络编程 6.部署方便:二进制文件,Copy部署 7.简单的并发:goroutines和通道(创新之处) 8.稳定性:提供了软件生命周期的各个环节的工具:如 go tool,go fmt,go test 核心特性 1.静态语言 2.天生并发 3.内置GC 4.安全 5.语法简单 6.编译快速 3.环境搭建: 下载地址: https://golang.google.cn/dl/ 安装步骤很简单 Next完事 4.安装开发工具 Goland以及配置 下载地址:https://download.jetbrains.com/go/goland-2019.2.3.exe 安装步骤也是一直Next 运行时遇到的问题: CreateProcess error=216, 该版本的 %1 与你运行的 Windows 版本不兼容。请查看计算机的系统信息,然后联系软件发布者。 解决方式:

Spark如何与深度学习框架协作,处理非结构化数据

喜夏-厌秋 提交于 2020-10-03 17:26:00
随着大数据和AI业务的不断融合,大数据分析和处理过程中,通过深度学习技术对非结构化数据(如图片、音频、文本)进行大数据处理的业务场景越来越多。本文会介绍Spark如何与深度学习框架进行协同工作,在大数据的处理过程利用深度学习框架对非结构化数据进行处理。 Spark介绍 Spark是大规模数据处理的事实标准,包括机器学习的操作,希望把大数据处理和机器学习管道整合。 Spark使用函数式编程范式扩展了MapReduce模型以支持更多计算类型,可以涵盖广泛的工作流。Spark使用内存缓存来提升性能,因此进行交互式分析也足够快速(如同使用Python解释器,与集群进行交互一样)。 缓存同时提升了迭代算法的性能,这使得Spark非常适合机器学习。 由于Spark库提供了Python、Scale、Java编写的API,以及内建的机器学习、流数据、图算法、类SQL查询等模块;Spark迅速成为当今最重要的分布式计算框架之一。与YARN结合,Spark提供了增量,而不是替代已存在的Hadoop集群。在最近的Spark版本中,Spark加入了对于K8s的支持,为Spark与AI能力的融合提供了更好的支持。 深度学习框架介绍 TensorFlow TensorFlow最初是由Google机器智能研究部门的Google Brain团队开发,基于Google

从软件开发到 AI 领域工程师:模型训练篇

孤街浪徒 提交于 2020-10-03 04:57:39
前言 4 月热播的韩剧《王国》,不知道大家有没有看?我一集不落地看完了。王子元子出生时,正逢宫内僵尸作乱,元子也被咬了一口,但是由于大脑神经元尚未形成,寄生虫无法控制神经元,所以医女在做了简单处理后,判断不会影响大脑。这里提到了人脑神经元,它也是 AI 神经网络的研究起源,具体展开讲讲。 人脑中总共有 860 亿个神经元,其中大脑皮层有 160 亿个神经元。大脑皮层的神经元数量决定了动物的智力水平,人的大脑皮层中神经元数量远高于其他物种,所以人类比其他物种更聪明。大象的脑子总共有 2570 亿个神经元,但是其中 98% 的神经元都存在于大象的小脑中,而大象的大脑皮层只有 56 亿个神经元,无法与人类相比。大脑皮层中的神经元数量越大,能耗也越大。人脑每天消耗的能量占人体全部耗能的 25%,这也就是为什么我们每天都要吃多餐,很容易饿的原因。人之所以能够很快超越其他物种,主要是因为人类掌握了烹饪技术,能够在短时间内摄入大量卡路里以支持大脑运转,其他物种则将摄入的卡路里用于维护身体运转,不得不牺牲大脑皮层的神经元数量。 之所以先谈大脑神经元原理,也是为了引出本文的重点–现代 AI 技术。 在正式进入 AI 技术前,我先讲讲软件工程师这份工作,因为现在有很多软件工程师准备转入 AI 行业。 软件工程师 我是软件工程师出身,2004 年刚毕业时我写的是 JSP 代码(一种将 Java

拿什么拯救你?我的博士延毕

为君一笑 提交于 2020-10-02 02:24:06
     作者 | 青暮、蒋宝尚   编辑 | 青暮   AI科技评论昨天推送了一篇文章《 》,讲述了国内青年科学家遭遇的种种困境,某种程度上算是一篇劝退文。   不知同学们看过那篇文章后,是否还保留着“成为科学家”的赤子之心。如果是的话,点个赞。只是读博中难免遇到令人心焦头疼的问题,那就是延毕,上面这篇文章也提到,这是个大概率事件。怎么才能顺利毕业呢?   放心,只要完成了博士该完成的科研训练,毕业就不是难题。 在这篇文章中,我们将为同学们读博指路。   很多打算读博、即将读博或正在读博的同学们可能对此都还很困惑,也许在徘徊着不知如何前进,也许在后悔走错了路,甚至怀疑自己读了个假博。   每个博士研究生都希望付出后能获得飞跃式的成长,并不留遗憾。毕竟读博是一项沉没成本很高的人生投资,也就是说,过程中的每一个选择都需要你付出巨大的努力,但不一定能带来收获。   而在这个知乎问题下,不少过来人分享了自己的经历和观点。   AI科技评论选取了一些高赞回答,并整理如下,希望能对同学们有所启发,少走弯路。   1    数学很重要   读博之前,首先确保自己有足够好的基础,包括数理基础和编程基础,英语能力自然不用多说。同时,博士期间要兼顾课程和科研,对两者的平衡也是很重要的。    良好的数理基础   无数次的实践证明,没有良好的数理基础,很多时候研究都走不深。如果数理基础薄弱

Java多线程 开发中避免死锁的八种方法

跟風遠走 提交于 2020-10-01 09:00:18
原文链接: https://blog.csdn.net/qq_33229669/article/details/108552331?utm_medium=distribute.pc_feed.none-task-blog-personrec_tag-6.nonecase&depth_1-utm_source=distribute.pc_feed.none-task-blog-personrec_tag-6.nonecase&request_id=5f6435ebdfc5717f9a1d8903 1. 设置超时时间 使用JUC包中的Lock接口提供的tryLock方法. 该方法在获取锁的时候, 可以设置超时时间, 如果超过了这个时间还没拿到这把锁, 那么就可以做其他的事情, 而不是像 synchronized 如果没有拿到锁会一直等待下去. boolean tryLock(long time, TimeUnit unit) throws InterruptedException; 造成超时的原因有很多种:发生了死锁, 线程进入了死循环, 线程逻辑复杂执行慢. 到了超时时间, 那么就获取锁失败, 就可以做一些记录操作, 例如 打印错误日志, 发送报警邮件,提示运维人员重启服务等等. 如下的代码演示了 使用tryLock 来避免死锁的案例. 线程1 如果拿到了锁1 ,

Visual Studio 2019修改为编码UTF-8的两种方式

百般思念 提交于 2020-09-30 15:34:07
文章链接: https://blog.csdn.net/qq_42956179/article/details/106075025?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param 来源: oschina 链接: https://my.oschina.net/u/4363296/blog/4517765