自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (1)
  • 收藏
  • 关注

原创 Sick编码器CanOpen通信

Can总线需要在CAN_H和CAN_L之间接入120欧母的电阻Canopen通信PLC与编码器之间所有通讯模式,基于COB ID+Node ID。Node ID可以通过LSS或SDO进行设置其中Node ID最大为128个。对应的COB ID如下:Canopen通信 (Network Management Service):用来切换编码器的各种工作模式:Pre-operational,Operational,Stop,以进行相对应的通讯和控制。NMT设置进入各种模式的指令:S

2021-04-26 19:42:48 1491

原创 powerlink源码解析与使用

powerlink是底层基于标准以太网,协议栈基于canopen协议的工业互联网协议。主要可分为三个模块,用于节点通信的PDO和SDO、协议栈和对象字典、对上用户接口。1、协议栈和对象字典对象字典保存了所有协议相关的数据,包括数值信息和点信息。通过初始化协议栈,重启协议栈即可运行协议栈。协议栈主要负责维护对象字典,PDO和SDO通信,调用同步回调函数和事件处理函数 通过objdict.h导入对象字典 动态添加对象字典2、PDO和SDOPDO和SDO主要用于,根据对象节点,.

2020-12-21 15:47:05 1018

原创 linux shell自启动脚本

#! /bin/bash#判断进行是否存在,并重新启动function check(){count=ps -ef |grep $1 |grep -v "grep" |wc -lif [ 0 == $count ];thencd /appl/edps/bin./edpsmaini386 &fi}while truedocheck edpsmaini386sleep 20done~

2020-08-27 13:46:50 292

原创 AlphaGo原理的认识

1、AlphaGo赢得了世界围棋冠军Google AlphaGo在无人围棋比赛中4:1战胜李世石,具有一定的里程碑意义,相比于20年前,IBM深蓝(Deep Blue)计算机战胜国际象棋冠军卡斯帕罗夫,带给我更多震撼和启发。但从其本质上来说,AlphaGo是深度学习网络(CNN)与蒙特卡洛搜索树(MCTS)结合的胜利,是人类智慧的进步,但从其本质上说,AlphaGo仍然属于弱人工智能。2、人工...

2020-03-08 18:26:48 1458

转载 C语言不定长参数实现方式

函数如何实现不定参数:由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦,即使采用C++,如果参数个数不能确定,也很难采用函数重载。对这种情况,提出了指针参数来解决问题。(1)va_list定义了一个指针arg_ptr, 用于指示可选的参数.(2)va_start(arg_ptr, argN)使参数列表指针arg_ptr指向函数参数列表中的第一个可选参数,argN是位于第一个...

2019-04-24 16:02:49 8451 1

原创 驾考科目一必背干货

1:吊二撤三醉五逃终身;2:转弯过桥上窄道泥路30km/h;3:左右观察左超车;4:交叉转弯窄路隧道桥梁坡道铁路口50米不内不停车;医院,消防队等30米内不能停车。5:驾驶证到期90天,变更30天内换。6:转弯的机动车让直行的车辆先行,右方道路来车先行(右转让左转),右转弯车让左转弯车先行:7:驾驶证的有效期为6年,没有扣分记录的第二次换证的为10年。8:机动车没有违规行为,只有违法...

2019-02-26 17:36:13 1429 2

转载 Linux模块导出符号及其引用

Linux模块间通讯方法非常的多,最便捷的方法莫过于函数符号导出,然后直接调用。然而在linux2.6.26以后的 内核中模块的符号导出经常会出现问题,一个模块中的导出符号不能被另外一个模块进行调用。这个使得处理有依赖关系的模块非常的头疼。模块符号导出 EXPORT_SYMBOL() : EXPORT_SYMBOL标签内定义的函数对全部内核代码公开,不用修改内核代码就可以 在您的内核...

2019-02-22 15:06:40 1996

转载 U-Boot编译——System.map与u-boot.map

U-Boot编译之后会在其顶级目录中生成System.map和u-boot.map两个文件:1、System.map该文件按链接地址由小到大的顺序列出所有符号:由上面信息可知,_start符号被链接在最前面的地址0x33f80000,它是U-Boot的入口。SDRAM初始化完成后,需要将U-Boot加载到上述地址(SDRAM初始化前,U-Boot在Nor Flash或者芯片内部RAM中运行...

2019-01-30 11:46:02 772

转载 C++命名规范(参考google C++规范)

一、简述Google 的C++规范号称世界上最优秀的编码规范,于是拿来研究下,已改善自己以后的工作,今天只先学习下它的命名规范。二、命名规则1.文件命名规则文件名全部小写,可以含下划线或连字符,按项目约定命名,且尽量保证文件名明确。比如:cmd_save_player_info_class.cc my_use_full_class.cc定义类的文件名一般是成对出现,如:foo_bar....

2018-10-25 10:21:32 459

原创 FPGA设计思想

FPGA与CPU编程有很大不同,但在编程思想上基本上可以借鉴C语言编程。对于FPGA的不同功能块,相互之间时并行执行的,互不干扰;但现实中,实现一个较小的完整的功能块,必然是顺序操作的。 先介绍下主流设计方式。FPGA主要包含三种设计方式:面向状态的设计,面向活动的设计和面向结构的设计。 1)面向状态的设计是以状态机为代表的设计方式,即通过控制信号和时序信号触发状态机进行状态的迁移。状态机的设...

2018-08-17 15:21:23 1586

原创 FPGA图像处理之路

下面论述FPGA在图像处理领域中的地位: 图像处理,它是一个非常广义的概念,它包含图像增强,图像复原,图像重建,图像分析,模式识别,计算机视觉等N多个应用方向。这些应用技术有许多在本质上是相通的,但是不同应用领域的关注点往往是不同的。 从网络上的开源情况来看,FPGA在图像处理方面的主要应用一直处于图像的预处理阶段。 什么叫图像的预处理?例如图像的畸变校正,滤波器处理,边缘检测、颜色检测和阈...

2018-08-08 09:56:56 3865

原创 verilog基本类型

先介绍四个基本的数据类型:reg型,wire型,integer型,parameter型。 常量:二进制:b 十进制:d16进制 h 8进制:o不定:x高阻:z 正数:4b’10x0 表示4位二进制数,分别是10x0,其中第三位是不定 复数: -8d’5 这个数代表5的补数 parameter型:parameter mst=7; 变量 reg类型:寄存器数是数据存储单元...

2018-08-07 19:25:00 3063

原创 xilinx vivado HLS 小记

目前FPGA主要用于接口、通信等,HLS的出现使得opencv中的C代码通过综合直接部署到硬件。 HLS主要应用场景在与算法更密切的应用如DSP图像处理。 RTL:寄存器传输级 register transfer levelverilog中分级是:系统级,算法级,RTL级,门级,开关级(分为行为级、结构级) verilog建模方式分为:行为级和结构级。 xilinx的高层次综合(Hig...

2018-08-07 19:10:18 4704

转载 ISE14.7使用教程(一个完整工程的建立)

FPGA公司主要是两个Xilinx和Altera(现intel PSG),我们目前用的ISE是Xilinx的开发套件,现在ISE更新到14.7已经不更新了,换成了另一款开发套件Vivado,也是Xilinx的产品,intel的开发套件是Quartus II系列,我们实验室这两款公司的开发板都有,不过对于入门来说,选择ISE有两个原因,一是它比Vivado快多了,二是它和Quartus II相比不用...

2018-08-06 10:10:04 82591 9

转载 黑金xlinix FPGA学习笔记(一)verilogHDL扫盲文-(2)

0.10 单文件主义 单文件主义对于新手来说, 某个程度上它是一个“伟大的主义” 但是又有很多人会受限这个“伟大的主义”。单文件主义就是,所有内容的设计都是在一个模块之内完成,这一点,有点像 C 语言中 main 那样,所有动作都在 main()函数中完成。单文件主义是新手都要经过的, 当游走一段时间以后, 慢慢的我们会发现这个主义的局限性。 我们想要越过“它”,但是又不知道要如何往哪个方向 …...

2018-08-02 17:15:28 1241

转载 黑金Xilinx FPGA学习笔记(一)verilogHDL扫盲文-(1)

verilog简介 HDL 顾名思义Hardware Description Languag verilog HDL 语言的语法和格式都比较随便,它没有 VDL HDL 语言那么严谨,因此受到了广泛的应用。 0.3RTL级和组合逻辑级 笔者的眼中 Verilog HDL 语言建立的硬件模块可以 分为有时钟源和无时钟源。有时钟源的意思是需要时钟信号作为操作最基本消耗单位, 硬件模块才能执行...

2018-08-02 16:19:47 8250

转载 C++ STL 教程

C++ STL 教程 在前面的章节中,我们已经学习了 C++ 模板的概念。C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。C++ 标准模板库的核心包括以下三个组件: 容器(Containers):容器是用来管理某一类对象的集合。C++ 提供了各种不同类型的容器,比如 de...

2018-08-02 11:37:24 648

转载 JPEG标准与原理解析

转载地址: https://wenku.baidu.com/view/57716db7551810a6f52486d9.html 1.JPEG压缩算法是一种有损压缩算法,他根据人眼视觉特性剔除图像信息中视觉不敏感得成分,从而实现图像信息的高度压缩。所根据的视觉特性主要为:高频不敏感性和色彩不敏感性。 jpeg编码需要以下3个步骤: 1)信息空间压缩 2)信息数据压缩 3)数据编码压缩。...

2018-07-24 15:43:48 7418

转载 QT-Qpixmap实现图片鼠标缩放,鼠标拖动示例(详解)

通过 QPainter 绘画实现,以本地图片985*740为例 转载地址:https://www.cnblogs.com/lifexy/p/9057046.html 如下图所示: 效果如下所示: 实现原理主要通过以下函数实现:void QPainter::drawTiledPixmap ( int x, int y, int w int h const QPixmap &a...

2018-07-19 14:58:04 9949 8

转载 inux C程序中获取shell脚本输出(如获取system命令输出

转载自 http://blog.csdn.net/hjxhjh/article/details/7909518 1. 前言 Unix 界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作。比如实现一个 ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通...

2018-07-17 15:50:04 1021

转载 JPEG数据格式分析

分析对象是一幅8x8的jpg图片。如下,图片已被放大并被虚线切分 用windows照片查看器查看图片详细信息:信息 参数 大小 667字节 尺寸 8x8 宽度 8像素 高度 8像素 水平分辨率 96dpi 垂直分辨率 96dpi 位深度 24 用UltraEdit打开图片,截图如下: 将该数据切分为10个部分,图中已做标记。预备知识 数据...

2018-07-06 12:03:23 11643

转载 UVC设备

1. 前言本文对USB的功能类协议USB Video Class(UVC)的具体设计进行介绍,但不会介绍USB基础协议,所以需要对USB基础协议有一定的了解,包括USB四大描述符以及四种传输方式。分析usb协议的重点在于描述符,这里将以实际设备的描述符为线索,贯穿、分析uvc协议。2. UVC功能概述UVC设备都是多Interface设备,这点同普通的u盘不同。UVC设备最起码有两个I...

2018-05-31 18:11:23 2577

原创 开关电源芯片布线总结

针对开关电源,需要格外注意电容,电感位置,否则输出电压会严重震荡,甚至无法正常工作。 1、电源模块输入一般用10uf电解电容,0.1uf贴片电容对输入电压滤波处理,布线时候注意电容贴近输入模块电源的输入。 2、芯片的电源输入一般会接电容电感和二极管,电感和二极管要靠近芯片,越短越好,由于二极管的开关作用,电感内部电流,电压是震荡的,布线时需要在电感前端或后端紧接一个电容,用于减小震荡。 3、...

2018-05-09 09:19:13 3274

转载 第18章ARM LInux设备树

本章导读 本章将介绍Linux设备树(Device Tree)的起源、结构和因为设备树而引起的驱动和BSP变更。 18.1节阐明了ARM Linux为什么要采用设备树 18.2节详细剖析了设备树的结构、节点和属性,设备树的编译方法以及如何用设备树来描述板上的设备、设备的地址、设备的中断号、时钟等信息。 18.3节讲解了采用设备树后,BSP和驱动的代码需要怎么改,哪些地方变了。 18.4节...

2018-03-30 22:00:06 252

原创 进击的程序员-前言

此系列为罗升阳的著作Android系统源代码分析读书笔记。链接为http://0xcc0xcd.com/p/books/978-7-121-18108-5/preface.php,在此感谢罗升阳罗老师的专业指导。本书内容全书分为初识Android系统篇、Android专用驱动系统篇和Android应用程序框架篇三个部分。 初识Android系统篇包含三个章节的内容,主要介绍Android...

2018-03-28 11:02:35 1015 3

转载 Linux基本设备驱动阐述

一、开场白: 大家好,今天我会以RK3026芯片为平台,LINUX kernel版本为3.0.36,Android版本为4.2.2来和大家分享我的Linux驱动学习经验,如有错误的地方请大家指出。 二、驱动背景: 今天我们介绍主题的Linux PMU驱动的编写,本次PMU型号为TPS65185。熟悉Eink屏驱动同学该知道,此PMU是专门为Eink屏供电设计的。其输出电压值相...

2018-03-07 13:43:31 229

原创 v4l2设备读写流程(CSI驱动调用流程)

1、open 初始化传感器模块和CIS,使能CSI的时钟 Initial Sensor Module and CSI I/F ,enable the csi clock 2、VIDIOC_QUERYCAP 得到设备的容量 See the drivers capability 3、VIDIOC_S_FMT 获取和设置CSI I/F的格式和传感器模式 Try and Set for...

2018-02-28 10:25:04 3802 2

转载 lib和dll文件的区别和联系

什么是lib文件呢,lib和dll的关系如何 1、lib是编译时需要的,dll是运行时需要的。 如果要完成动态连接的程序运行起来,有dll就够了。 在开发和调试阶段,当然最好都有。 2、一般的动态库程序有lib文件和dll文件。lib文件是必须在编译器就连接到应用程序中的,而dll文件是运行期间才会被调用的。如果有dll文件,那么对应的lib文件一般是一些索引信息,具体的实现在dll文件中...

2018-02-28 09:57:05 411

转载 作为uboot到kernel中DTS DTSI DTB等关系

1、设备树(Device Tree)基本概念及作用在内核源码中,存在大量对板级细节信息描述的代码。这些代码充斥在/arch/arm/plat->xxx和/arch/arm/mach-xxx目录,对内核而言,这些platform设备、resource、I2C_board_info、spi_board_info以及各种硬件的platform_data绝大多数纯属垃圾冗余代码。为了解决这一问题,AR

2018-02-07 19:07:03 11749

原创 阶段嵌入式硬件学习计划

嵌入式底层学习包括,应用程序级,底层驱动级,硬件芯片级,最后是Linux系统级。 其中应用程序级学习主要是调用USB、网口、音频、串口、LCD、GPIO、I2C、SPI、PCI-e等; 底层驱动级主要涉及通过驱动注册硬件到内核,解析应用程序调用过程,整理驱动编写流程; 硬件芯片级需要画板子之后,根据PCB积累。 应用程序:USB:USB协议集USB中断USB storag

2018-02-02 13:46:23 339

原创 cadence 六层板布局走线技巧

1、布局 对于重要,多引脚元器件要精准定位;如DDR,FPGA,FPC排线等,对于外部接口要精准定位;对于较高元器件要精准定位;制作合适的定位孔,预留为定位孔预留足够的余量Package Keepin 预留2mm,Route Keepin预留0.5mm,线宽均为0mm空 2、层级排布 计划层级排布: —–TOP—–GND—–Sig1,Power—–Power—–GND—

2018-02-01 14:21:55 7676

原创 对于Linux alsa设备写操作

set_pcm_play函数用于播放长度为datalen的buffer中的字符串,其中buffer中字符串为除去WAV文件头得到的二进制歌曲文件。int demo_sound::set_pcm_play(char *buffer,int datalen){ int rc; int ret=0; int size;

2018-01-18 17:54:34 415

原创 重载、覆盖和隐藏的区别以及基类、父类指针关系

函数重载:在一个类中,函数名相同,函数参数类型,或者函数参数个数不同,或者都不同,成为函数重载。 函数的重载发生在程序编译阶段,由编译器进行优化和区分。 《高质量C++/C编程指南》已经清晰的列出了重载函数的特性:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。如:class A{public: A(

2018-01-17 16:07:06 284

转载 C++中的对象指针总结

指向对象的指针 在建立对象的时候,编译系统会给每一个对象分配一定的存储空间,以存放其成员。对象空间的起始地址就是对象的指针。可以定义一个指针变量,用来存放对象的指针。 一个简单的示例:代码如下:#include using namespace std;class Student{public: int num; int score; Student(int

2018-01-16 15:56:02 487

转载 libusb数据结构说明

设备描述符结构struct libusb_device_descriptor{u_int8_t blength;u_int8_t bDescriptorType;u_int16_t bcdUSB;u_int8_t bDeviceClass;u_int8_t bDeviceSubClass;u_int8_t bDeviceProtocol;u_int8_t bMaxP

2018-01-16 11:43:27 810

转载 libusb数据结构说明

设备描述符结构struct libusb_device_descriptor{u_int8_t blength;u_int8_t bDescriptorType;u_int16_t bcdUSB;u_int8_t bDeviceClass;u_int8_t bDeviceSubClass;u_int8_t bDeviceProtocol;u_int8_t bMaxP

2018-01-10 10:11:19 574

转载 linux下usb驱动接口中端点介绍

端点 USB 通讯的最基本形式是通过一个称为端点的东西。一个USB端点只能向一个方向传输数据(从主机到设备(称为输出端点)或者从设备到主机(称为输入端点))。端点可被看作一个单向的管道。 一个 USB 端点有 4 种不同类型, 分别具有不同的数据传送方式: 控制CONTROL 控制端点被用来控制对 USB 设备的不同部分访问. 通常用作配置设备、获取设备信息、发送命令到设备或获取

2018-01-09 19:33:04 1015

转载 Linux系统ALSA音频编程

今天要在linux下搞音频编程,一般使用ALSA音频编程。ALSA是Advanced Linux Sound Architecture的缩写,高级Linux声音架构的简称,它在Linux操作系统上提供了音频和MIDI(Musical Instrument Digital Interface,音乐设备数字化接口)的支持。 首先介绍一下一些关于ALSA编程的知识:1、GNU/Linux 系统下三

2018-01-06 19:24:40 1803

转载 嵌入式Linux下基于libusb的USB驱动开发

由于usb设备的普遍性及其多样性,大量的usb设备的驱动开发也就成为开发者做的最多的事情。Linux平台上,内核驱动的开发由于内核的复杂和版本问题,初学者难以入手,驱动程序也不易升级和维护。本文主要介绍Linux平台下使用libusb库基于usb文件系统的驱动开发,并将其应用到嵌入式系统中,可显著降低开发难度,提高工作效率 1.前言 Linux内核经过开发人员的不断努力,已经变得十分地

2018-01-06 16:39:53 9361 1

转载 Linux下C获取所有可用网卡信息

在Linux下开发网络程序时,经常会遇到需要取本地网络接口名、IP、广播地址、子网掩码或者MAC地址等信息的需求,最常见的办法是配合宏SIOCGIFHWADDR、SIOCGIFADDR、SIOCGIFBRDADDR与SIOCGIFNETMASK作为参数调用函数ioctl分别获得MAC地址、IP地址、广播地址与子网掩码来实现。一次性获取此类信息的C语言代码实现如下。 #include <stdio.h

2018-01-06 11:30:49 4568 1

大数据大作业.pdf

在推荐算法中,样本空间构成的数据矩阵一般为稀松矩阵,且维数一般较多,可通过求取特征值或者奇异值的方式获得样本矩阵的特征矩阵,从而降低维数。主成分分析法在矩阵降维中有很好的应用。 本文通过特征值分解、奇异值分解、PCA等操作可以获得降维后的矩阵,通过使用不同的相似度判别法获得最好的相似度,可以使得推荐算法具有很好的效果。

2020-01-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除