- 博客(101)
- 资源 (1)
- 收藏
- 关注
原创 stm32 spi接口传输asm330l速率优化(及cpu和dma方式对比)
最近一段时间做了一个mems的项目,项目的方案是stm32g071做主控,读写3颗asm330l的硬件形态。最初是想放置4颗imu芯片,因为pcb空间布局的问题,改放了3颗。但对于软件方案来说无所谓,关键是如何优化spi的传输速率,满足系统采样率1.667khz的帧率要求。因为如此高的采样率,意味着大量的数据传输处理,那么传输速率也需要很快才行。
2024-12-03 11:50:54
1415
原创 海思Hi3559av100 sdk开发环境搭建
编译完成后从osdrv/tools/pc/uboot_tools目录拷贝reg_info.bin到boot源代码目录,重命名为.reg:cp ../../../tools/pc/uboot_tools/reg_info.bin .reg。编译完成后,终端出现提示信息:“u-boot-hi3559av100.bin is Ready.”说明已经编译完成,在目录下会生成u-boot-hi3559av100.bin。解压文件:tar -xzf u-boot-2016.11.tgz。
2024-09-17 16:13:17
1297
原创 美信加串解串芯片开发
调试的平台包括、瑞芯微的rv1126,高通的sa8295p,英伟达的orin-x。最近项目需求,密集的开发了一波加串解串芯片。有相同的需求的博友欢迎沟通,我们一起把美信的限制门槛做低。
2024-08-08 08:50:46
667
原创 图像处理:时域、空域、频率的滤波介绍
首先要搞清楚为什么会呈现出不同域的维度,来理解和处理图像,原因是图像的构成有多个维度的信息特点。比如一段视频从时间顺序来看,相邻的2个图像帧绝大部分信息是相同的,这就构成了前向预测的理论基础;比如一帧图像从空间分布来看,矩阵内的像素有着很大的关联性,这就构成了帧内预测的理论基础。简单来说,包括视频处理也好,图像处理也好,感光器件及其光电转换设计也好,都认为视频或者图像在时间和空间上有连续性,也有变动性。当然,如果你想把这个概念拓展到数字信号处理的话,范围就更广泛了。
2024-04-30 11:34:28
1228
1
原创 数据结构:内核kfifo的实践
实践了内核的数据结构kfifo记录下,其特点分析看了下这篇博客写的很详细。fifo.c 实现kfifo的主干函数接口,但是很多有用的接口没有扩展,需要的时候再扩展。
2024-04-07 11:46:48
343
转载 转:PCIe扫盲——PCIe总线基本概念
在PCIe的Spec中,并没有特别详细的关于Root Complex的定义,从实际的角度来讲,可以把Root Complex理解为CPU与PCIe总线系统通信的媒介。Endpoint处于PCIe总线系统拓扑结构中的最末端,一般作为总线操作的发起者(initiator,类似于PCI总线中的主机)或者终结者(Completers,类似于PCI总线中的从机)。PCIe相对于PCI总线的另一个大的优势是其的Scalable Performance,即可以根据应用的需要来调整PCIe设备的带宽。
2023-12-12 19:25:52
211
转载 转:PCIe扫盲-PCIe总线事务层入门(三)
而报告的方式是,接收方向发送方发送Flow Control的DLLP(数据链路层包),且这种DLLP的收发是由硬件层面上自动完成的,并不需要人为的干预。在PCI总线中,发送方在发送前并不知道接收法是否有足够的Buffer来接收数据(即接收方是否就绪),因此经常需要一些Disconnects和Retries的操作,这将会严重地影响到总线的传输效率(性能)。当然也有那些只有一个VC Buffer的,此时不管包的TC值如何,都只能缓存在同一个VC Buffer中,自然也就没有办法保证按优先级传输了。
2023-12-12 17:09:08
173
转载 转:PCIe扫盲-PCIe总线事务层入门(二)
Root对读请求的包进行解码后,并从中识别出操作的地址,然后锁存数据,并将数据发送至Endpoint,即包含数据的Completion包,ClpD。需要注意的是,PCIe允许每个包的最大数据量(Max Data Payload)为4KB,但实际上设计者往往会采用较小的Max Payload Size(比如128,256,512,1024和2048)。Locked请求实际上是PCIe为了兼容早期的PCI总线而设置的一种方式,对于非PCI兼容的设计中,是不允许使用Locked操作的。
2023-12-12 16:59:08
156
原创 fscanf/fscanf_s和fgets使用差异
5、fscanf_s和fgets,读取CSV一行数据时,当读取过程中的长度大于一行字节数时,文本一行末尾原有的’\r\n’,会被保留且追加字符串结尾的’\0’,做字符轮询判断的时候,要5、特别注意判定条件的改变。对文本按照格式"%c"、"%d"、"0x%x"、"%f"读取,都可以省略长度值传参,但是,实际上上述使用,第二个实参format约束了固定字节长度。4、fscanf_s的字符串读入使用,效果和fgets相同,fgets默认按照char* 类型做读操作,4、接口的入参明确,更加适合字符串读。
2023-10-10 17:18:18
708
原创 转:有效管理微处理器超长启动周期中的看门狗
原理分析:无论何种原因触发复位信号,上电/掉电、按键接地或看门狗溢出,RESET输出0电平,即555电路TRIG引脚的输入信号vi为0电平,由于vi连接至555定时器内部比较器的同相端,该比较器的反相端通过内部分压电路连接到1/3VCC,此时vi<1/3VCC,该比较器输出为0,即内部RS触发器的置1端为0,则RS触发器输出1,OUT引脚输出1,vo为1,模拟开关COM选通到悬空通道NO,看门狗禁止。另外,为保证在程序跑飞时系统可自恢复,在许多对可靠性要求较高的应用中,外置看门狗定时器也是不可或缺的。
2023-04-28 10:13:57
585
转载 形象易懂讲解算法——小波变换
知乎转载,是我看到把小波变换解释的很清楚的文章,特定转载一下。从傅里叶变换到小波变换,并不是一个完全抽象的东西,可以讲得很形象。小波变换有着明确的物理意义,如果我们从它的提出时所面对的问题看起,可以整理出非常清晰的思路。下面我就按照傅里叶-->短时傅里叶变换-->小波变换的顺序,讲一下为什么会出现小波这个东西、小波究竟是怎样的思路。(反正题主要求的是通俗形象,没说简短,希望不会太长不看。。)一、傅里叶变换关于傅里叶变换的基本概念在此我就不再赘述了,默认大家现在正处在理解了傅里叶但还
2020-07-12 21:58:20
4857
转载 OpenCV--HSV颜色模型及颜色分量范围
转载HSV颜色模型HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。这个模型中颜色的参数分别是:色调(H),饱和度(S),亮度(V)。HSV颜色空间模型[1]色调H:用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°;饱和度S:取.
2020-07-08 19:51:33
1363
原创 深度学习,CPU、GPU、DSP、FPGA运算能力对比
一:CPU一般来讲最弱的是cpu。虽然cpu主频最高,但是单颗也就8核,16核的样子,一个核3.5g,16核也就56g,再考虑指令周期,每秒最多也就30g次乘法。还是定点的。二:DSPdsp虽然主频不如cpu,但是胜在乘法器多,随随便便带16个乘法器,还是浮点的。再来个4核,8核,还有特定的算法硬件加速,所以虽然主频只有1,2g但是运算能力还是比cpu强。当然现在出现了带专用乘法器...
2020-02-22 17:13:02
4142
转载 OpenCL:图像处理基础note(转)
使用图像对象的理由虽然对于图像也可以把它的像素数据当做一般的缓存数据来处理,但是如果把它当做图像来处理有如下好处:在GPU中,图像数据是保存在特殊的全局内存中,即纹理内存,它和一般的全局内存不相同,它是被缓存的,用于高速访问处理。GPU中有专门支持图像读写的硬件,使用内置读写函数可以充分发挥这个优势。 只要OpenCL支持该图像格式,那么就可以不用考虑图像格式的前提下使用读写图像数据的函...
2020-02-16 20:35:17
1320
1
转载 GLSL入门一
OpenGL Shading Language GLSL作为一种着色语言是纯粹的和GPU打交道的计算机语言。因为GPU是多线程并行处理器,所以GLSL直接面向SIMD模型的多线程计算。GLSL编写的着色器函数是对每个数据同时执行的。每个顶点都会由顶点着色器中的算法处理,每个像素也都会由片段着色器中的算法处理。因此,初学者在编写自己的着色器时,需要考虑到SIMD的并发特定,并用并行计算的思路来思考问...
2019-09-01 21:34:33
727
原创 FFMPEG中分配图像内存以及初始化的函数用法
前面分析了ffmpeg中结构体AVFrame的使用方法,在网上看到一些相关的其他内容,整理以下。一、ffmpeg中av_image_alloc()是这样定义的。此函数的功能是按照指定的宽、高、像素格式来分析图像内存。参数说明: pointers[4]:保存图像通道的地址。如果是RGB,则前三个指针分别指向R,G,B的内存地址。第四个指针保留不用 linesizes[4]:保...
2019-06-20 14:27:42
1740
1
转载 ffmpeg sws_scale详细分析
FFmpeg里面的sws_scale库可以在一个函数里面同时实现:1.图像色彩空间转换;2.分辨率缩放;3.前后图像滤波处理。其核心函数主要有三个:// 初始化sws_scalestruct SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat,...
2019-06-20 13:59:29
2585
原创 FFMPEG结构体详细记录:AVFrame
AVFrame用来存储解码后的(或原图)音频或视频数据,位于avcodec.h文件中。AVFrame必须由av_frame_alloc()分配内存,同时必须由av_frame_free()释放。AVFrame分配内存后通过av_frame_ref 能够被多次用来存储不同的数据(例如:decoder解码后的帧),类似与引用的概念。与av_frame_ref 对应的av_frame_unref释放...
2019-06-18 13:57:54
1057
转载 linux性能监控与调优-vmstat命令
vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、IO读写、CPU活动等进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。指令所在路径:/usr/bin/vmstat输出字段意义:Procs r: The number of processes waiting for run...
2019-04-17 10:20:48
331
转载 系统级性能分析工具perf的介绍与使
测试环境:Ubuntu16.04 +Kernel:4.4.0-31系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化。性能剖析的目标是寻找性能瓶颈,查找引发性能问题的原因及热点代码。代码优化的目标是针对具体性能问题而优化代码或编译选项,以改善软件性能。在性能剖析阶段,需要借助于现有的profiling工具,如perf等。在...
2019-04-17 10:11:41
593
转载 perf工具使用统计函数调用
1、perf命令简要介绍性能调优时,我们通常需要分析查找到程序百分比高的热点代码片段,这便需要使用 perf record 记录单个函数级别的统计信息,并使用 perf report 来显示统计结果;perf recordperf report举例:sudo perf record -e cpu-clock -g -p 2548-g 选项是告诉perf record额外记录...
2019-04-17 10:04:17
12408
原创 load average 定义
1. load average 定义linux系统中的Load对当前CPU工作量的度量。简单的说是进程队列的长度。Load Average 就是一段时间 (1 分钟、5分钟、15分钟) 内平均 Load 。通过系统命令"w"查看当前load average情况上边0.31,0.30,0.31表示第一位0.31:表示最近1分钟平均负载第二位0.30:表示最近5分钟平均负载...
2019-04-17 10:02:41
530
转载 top命令输出解释以及load average 详解
昨天nagios报警warning,没来得及留下报警截图,nagios值设定的值是当1分钟多于15个进程等待,5分钟多于10个,15分钟多于5个则为warning状态当1分钟多于30个进程等待,5分钟多于25个,15分钟多于20个则为critical状态--------------------------------------------------------------...
2019-04-17 09:57:37
1007
转载 PROC系列之---/proc/pid/stat
/proc/ /stat包含了所有CPU活跃的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。[root@localhost ~]# cat /proc/6873/stat6873 (a.out) R 6723 6873 6723 34819 6873 8388608 77 0 0 0 41958 31 0 0 25 0 3 0 5882654 1409024 56 42949...
2019-04-17 09:49:37
4384
转载 高效率之sendmmsg 和 recvmmsg
在上周的一次非正式谈话中,我偶然听同事说:“Linux 的网络栈太慢了!你别指望每秒在每个核上传输超过 5 万的数据包”。这让我陷入了沉思,虽然对于任意的实际应用来说,每个核 5 万的速率可能是极限了,但 Linux 的网络栈究竟可能达到多少呢?我们换一种更有趣的方式来问:在 Linux 上,编写一个每秒接收 100 万 UDP 数据包的程序究竟有多难?我希望,通过对这个问题的解答,我...
2019-04-12 20:55:13
8366
1
转载 gettimeofday 实现原理和优化
一、原理描述https://blog.youkuaiyun.com/lqxandroid2012/article/details/51487547二、问题描述Easydarwin中大量使用gettimeofday来获取系统时间,对系统性能造成了一定的影响。我们来做个测试:While(1){ Gettimeofday(&tv,NULL);}每秒执行次数为约30...
2019-04-01 14:02:38
3662
1
转载 栈溢出导致脏数据
最近遇到一个很奇怪的指针引用问题。局部指针指向一个全局互斥锁变量,通过一层封装引用后,互斥锁unlock的时候失败。原因类型以下的这种分析情况。记得之前看过一篇文章说,最好查的bug是语法错误,因为编译器会告诉你,最不好查的bug是栈溢出,因为啥,因为不仅编译器不会告诉你,连你自己有可能都找不到原因出在哪。经过了一段时间的摸索,算是基本搞清楚了栈溢出的原理,写下来以防日后出现问题无从下手。...
2019-03-30 11:09:16
1081
转载 海思Hi3516智能分析引擎应用介绍
安防监控正在步入高清化、智能化时代,海思推出的Hi3516正是针对高清IPCamera的一款专业高端SOC芯片,除了1080p@30fpsH.264多码流编码、优异的ISP和编码视频质量优势外,其高性能的智能视频分析加速引擎和基于此的智能视频分析集成应用更是该产品的一大亮点。 从图1中我们可以看到Hi3516在图像处理系统中增加了IVS ENGINE,即智能视频加速引擎,简称IVE。...
2019-02-02 09:06:09
4165
转载 音频变时不变调处理
变时不变调时音频处理里的一个小方向,但又没那么简单,算法有很多,我就以soundtouch库为例来展开聊一下。soundtouch是一个音频处理开源库,其官网(http://soundtouch.surina.net),该库支持在windows、GNU、android平台的安装,有编译好的库也有源码。 soundtouch能处理wav格式的音频。 soundtouch支持音频的变时不变调处...
2018-12-07 09:32:06
1504
转载 视频会议十大开源编解码项目排行
在视频会议领域,有许多可以值得参考的开源项目,这些开源项目有的是协议栈、有的是编码器或者是传输协议,由于视频会议系统是一个综合性的应用系统,里面包含功能较多,如能把这些开源项目选择性的加入我们的视频会议开发当中,我们的开发效率肯定会事半功倍,下面我们列举一下视频会议相关的十大开源项目,并对其重要性及优缺点做一个全面的评价与排名。1、 OpenH323项目 (★★★★★)...
2018-10-23 09:43:44
539
转载 三种主流无线同屏技术介绍(Miracast、DLNA与AirPlay技术)
版权声明:本文为博主原创文章,未经博主允许不得转载 *作者:MingChaoSun *博客地址:http://blog.youkuaiyun.com/sunmc1204953974 https://blog.youkuaiyun.com/sunmc1204953974/article/details/39611357 ...
2018-10-18 13:57:00
17996
转载 基于DLNA实现iOS、Android投屏:基本概念
基础概念DLNADLNA的全称是DIGITAL LIVING NETWORK ALLIANCE(数字生活网络联盟), 其宗旨是Enjoy your music, photos and videos, anywhere anytime, DLNA(Digital Living Network Alliance) 由索尼、英特尔、微软等发起成立、旨在解决个人PC,消费电器,移动设备在内的无线网...
2018-10-17 17:17:03
1714
转载 基于DLNA实现iOS,Android投屏:订阅事件通知
服务运行时,可能改变有些状态信息变量的值,这是需要及时地更新给控制点。因此控制点可以通过订阅操作,让服务通过发送事件消息来发布更新。事件消息包括一个或多个状态变量以及他们的当前数值。这些消息也是采用 XML 格式,遵循通用事件通知体系 GENA 规定。服务运行过程中,该服务的 服务描述文件SDD 中 状态变量 <stateVariable> 发生了变化并且该变量的 <se...
2018-10-17 15:17:30
1435
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人