自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

昇威技术

算法和数据结构是程序的第一秘诀,缺之算法和数据结构是编程的最大原因。

  • 博客(91)
  • 资源 (18)
  • 收藏
  • 关注

转载 浅谈嵌入式软件架构思想

我从事嵌入式软件开发有6,7个年头,bsp,驱动,应用软件,android hall,framework等都有涉猎。平时除了关注嵌入式行业的发展,也多少对Web,后台服务端,分布式等方向的技术有一些关注。近期有萌生换个行业方向的想法,想做做后台服务器相关的开发,由于之前工作中并没有这方面的实际需求,只是自己平时关注,了解了些知识,比如:NIO,epoll,ngnix,zeromq,...

2019-09-23 17:36:41 2231

转载 Wireshark 抓包分析 RTSP/RTP/RTCP 基本工作过程

整体而言,RTSP 通常工作于可靠的传输协议 TCP 之上,就像 HTTP 那样,用于发起/结束流媒体传输,交换流媒体元信息。RTP 通常工作于 UDP 之上,用于传输实际的流媒体数据,其中的载荷格式因具体流媒体类型的不同而不同,通常有专门的 RFC 规范对其进行定义,如 H.264 编码格式视频数据的载荷格式在 RFC 6184, RTP Payload Format for H.264 Vid...

2018-05-29 20:55:35 5238

转载 Linux进程间通信:信号量 semget()、semop()、semctl()

一、什么是信号量为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个线程在访问它,也就是说信号量是用来调协进程对共享资源的访问的。信号量是一个特殊的变量,程序对其访问都是原子操作...

2018-05-29 20:37:48 922 1

转载 select函数相关

Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式...

2018-05-25 21:56:38 281

原创 海思媒体处理软件流程

2018-05-12 13:52:36 1055

原创 svn 清理失败 (cleanup 失败) 的解决方法

进入目录执行:sqlite3 .svn/wc.db "select * from work_queue"\r\psqlite3 .svn/wc.db "delete from work_queue"\r 即可进行clean up

2018-02-03 16:26:00 266

转载 记录一次Hi3518E新添sensor的过程

使用的sensor是海思列表没有支持的SC2235,主要需要了解到这个sensor的配置已经地址(需要向sensor原厂要驱动sc2235_cmos.c sc2235_sensor_ctl.c  sc2235_1080p_line.ini vpss_attr_2235.c)编译为.so .a以供测试代码调用。首先在ko加载时就要添加自己的sensor,./load3518e -a -sen

2018-01-26 16:20:26 3541 3

原创 海思步进电机驱动

hisi_motor.c#include //所有模块都需要的头文件#include #include //文件系统有关的,结构体file_operations也在fs头文件定义#include //init和exit相关宏#include #include #include //linux中的用户态内存交互函数,copy_from_user(),copy_to_user()等

2018-01-02 14:13:01 1703

原创 hrtimer内核高精度定时器

#include #include #include #include MODULE_LICENSE("GPL");static struct hrtimer hr_timer;static struct work_struct wq_hrtimer; static ktime_t ktime;static unsigned int interval=5000; /* uni

2018-01-02 14:07:50 1154

原创 C语言实现环形缓冲区

简述环形缓冲区可以把它的读出端(以下简称R)和写入端(以下简称W)想象成是两个人在体育场跑道上追逐(R追W)。当R追上W的时候,就是缓冲区为空;当W追上R的时候(W比R多跑一圈),就是缓冲区满。  为了形象起见,去找来一张图并略作修改,如下:环形缓冲区的实现原理 环形缓冲区通常有一个读指针和一个写指针。读指针指向环形缓冲区中可读的数据,写指针指向环形缓冲区中可写

2018-01-02 11:08:26 7120 3

原创 解决嵌入式系统用户态和内核态定时时间精度不够的问题

现象:使用top进行cpu占有率统计不是很准确,可能会出现波动,特别是在小业务场景,top统计的cpu占用率波动会很大。分析:版本Linux kernel 默认使用HZ为100,也即为10ms调度统计,统计时间粒度较粗,导致统计精度不够,如此波动会比较大。解决:如果期望比较准确的cpu占用率统计值,可以修改kernel HZ为1000,如此可以提高统计精度。具体实施

2017-11-13 19:47:41 726

转载 读写锁pthread_rwlock_t的使用

读写锁是用来解决读者写者问题的,读操作可以共享,写操作是排他的,读可以有多个在读,写只有唯一个在写,同时写的时候不允许读。具有强读者同步和强写者同步两种形式强读者同步:当写者没有进行写操作,读者就可以访问;强写者同步:当所有写者都写完之后,才能进行读操作,读者需要最新的信息,一些事实性较高的系统可能会用到该所,比如定票之类的。读写锁的操作:读写锁的初始化:定义读写锁

2017-11-13 17:05:15 507

原创 最简单的嵌入式Linux下ntp实现

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define JAN_1970 0x83aa7e80 /* 2208988800 1970

2017-11-04 10:45:51 1103

原创 HTTP协议之post multipart/form-data数据类型实例

首先,说这个问题之前吐槽一下网上的文章,做这个东西的时候几乎看了所有的博客,没一个说到点上的,太笼统,也不完整,我就在想等我做好一定要写篇完整的文章,其实最好的源码就是提供的demo。1、先说下问题背景http://help.robotscloud.com/book/osr/api/hsr_detection2.html这是萝卜头的一个人形识别的请求实例,我现在要做的就是把图片上传并拿到返

2017-10-27 11:43:48 54966 1

原创 嵌入式系统开启telnet

设备想打开telnet,一时想不起来什么命令了,尼玛在网上搜这么多每一个说到点上!就一句话啊:telnetd &醉醉醉!有这么复杂么,果断写博文

2017-10-21 14:08:24 723 1

原创 海思平台播放AAC音频

利用海思sdk的sample修改了一个播AAC的小程序代码主程序voice_player.c:/****************************************************************************** A simple program of Hisilicon HI3516 audio input/output/encoder/d

2017-10-18 18:01:57 3958 7

原创 海思平台GPIO驱动最简单实现

闲来无事,发两个小程序玩玩利用HI_MPI_SYS_SetReg、HI_MPI_SYS_GetReg实现GPIO驱动程序源码:#include /*#define GPIO_IR_CUT (0x201C0000 + 0x400) //GPIO8_0 0x00#define GPIO_CDSADC (0x201B0000 + 0x400) /

2017-10-18 17:33:45 6525 4

原创 Linux查看可执行程序依赖的库名

readelf -a 可执行程序|grep library

2017-10-18 17:01:09 2970

原创 Linux下mount/umount函数应用

针对海思平台system命令占用资源较大的问题,因此程序中与系统调用相关的就只能用函数实现了。demomount.c:#include int main(void){ int ret = 0; ret = mount("/dev/mmcblk0p1","/mnt/sd_card","vfat",MS_SYNCHRONOUS,"iocharset=utf8");

2017-10-18 16:35:23 2852

转载 RTSP协议

第一部分:RTSP协议一、RTSP协议概述RTSP(Real-TimeStream Protocol )是一种基于文本的应用层协议,在语法及一些消息参数等方面,RTSP协议与HTTP协议类似。RTSP被用于建立的控制媒体流的传输,它为多媒体服务扮演“网络远程控制”的角色。尽管有时可以把RTSP控制信息和媒体数据流交织在一起传送,但一般情况RTSP本身并不用于转送媒体流数据。媒体数据

2017-10-17 14:51:23 274

转载 海思HI35XX之----音频模块使用总结

AUDIO 模块包括音频输入、音频输出、音频编码、音频解码四个子模块。音频输入和输出模块通过对 Hi35xx 芯片 SIO 接口的控制实现音频输入输出功能。音频编码和解码模块提供对 G711、G726、ADPCM 格式的音频编解码功能,并支持录制和播放 LPCM格式的原始音频文件。音频输入输出接口 SIO(Sonic Input/Output),用于和 Audio Codec 对接,完成声音的

2017-10-09 22:41:09 1273

原创 第十二天、图像膨胀腐蚀

膨胀、腐蚀属于形态学的操作, 简单来说就是基于形状的一系列图像处理操作膨胀腐蚀是基于高亮部分(白色)操作的, 膨胀是対高亮部分进行膨胀, 类似“领域扩张”, 腐蚀是高亮部分被腐蚀, 类似“领域被蚕食”膨胀腐蚀的应用和功能: 消除噪声分割独立元素或连接相邻元素寻找图像中的明显极大值、极小值区域求图像的梯度其他相关:开运算、闭运算顶帽、黒帽形态学梯度

2017-09-18 10:18:59 541

原创 第十一天:图像阈值化简介

图像阈值化是图像处理的重要基础部分, 应用很广泛, 可以根据灰度差异来分割图像不同部分阈值化处理的图像一般为单通道图像(灰度图)阈值化参数的设置可以使用滑动条来debug阈值化处理易光照影响, 处理时应注意本节主要介绍的图像阈值化函数方法:固定阈值:threshold()自适应阈值:adaptiveThreshold()1、固定阈值---threshold()给

2017-09-16 13:41:12 465

原创 第十天:图像滤波

图像滤波滤波实际上是信号处理的一个概念,图像可以看成一个二维信号,其中像素点灰度值得高低代表信号的强弱高频:图像中变化剧烈的部分低频:图像中变化缓慢,平坦的部分根据图像高低频特性,设置高通和低通滤波器。高通滤波可以检测图像中尖锐、变化明显的地方,低通滤波可以让图像变得平滑,消除噪声干扰图像滤波是OpenCV图像处理的重要部分,在图像预处理方面应用广泛,图像滤波的好坏决定着后续处理的

2017-09-14 18:34:45 410

原创 第九天:图像几何变换

图像几何变换1、图像缩放-resize() Mat dstImg; resize(srcImg, dstImg, Size(1200, 800));src: 输入图像,Mat类型即可dst: 输出图像,当其非0时,由dsize确定尺寸dsize: Size类型,指定输出图像大小,如果它等于0,由下式计算:dsize = Size(round(fx*src.cols), rou

2017-09-14 17:48:47 291

原创 《济南济南》吉他弹唱

专辑:之外歌手:陈小熊歌曲:济南济南我抬眼是千佛山的轮廓我闭眼是大明湖和护城河趵突泉在我耳畔喷涌着可我却不清楚济南到底是啥样的它究竟是啥样的穿旗袍的姑娘你在哪儿呢说快板儿的大爷你在哪儿呢膈应人的小么都长大了半青的乡音有谁还会记得古街古巷都已经被拆了民国的火车站我都未见过青石板的泉水早已没了着落户户垂杨的美景已成为传说

2017-08-17 11:54:34 1449

原创 第八天:ROI与mask掩码

一、ROI介绍a. ROI—(region of interest)---感兴趣区域b. 一般为矩形区域   能够确定分析重点,减少处理时间,增加精度c. 定义方法:   使用Rect表示矩形区域或用Range设定行列范围ex1:Mat img = imread(“1.jpg”);Mat temp = imread(“logo.bmp”);Mat imgageROI

2017-08-16 10:08:58 1768

原创 第七天:对比度亮度调整与通道分离

一、对比度亮度调整g(x) = a * f(x) + ba.参数f(x)表示原图像像素b.参数g(x)表示输出图像像素c.参数a(a>0),被称为增益(gain), 通常用来控制图像的对比度d.参数b通常被称为偏置(bias), 通常用来控制图像的亮度g(i,j) = a * f(i,j) + beg:#include "opencv2/opencv.hpp

2017-08-15 11:50:38 300

原创 第六天:图像的基本运算

图像本质来说就是一个矩阵,所以图像的基本运算与矩阵的运算基本雷同。eg:#include "opencv2/opencv.hpp"#include using namespace std;using namespace cv;void main(){ Mat img1 = imread("1.jpg"); Mat img2 = imread("2.jpg"); Mat d

2017-08-12 13:43:57 227

原创 第五天:opencv-访问图像像素

图像处理通常是对图像像素进行算法分析,所以了解像素的存储方式是尤为重要的。(1)、图像在内存中的存储方式图像矩阵的大小取决于所用的颜色模型(或者说通道数),灰度图像矩阵每行每列对应一个元素也就是灰度值,而彩色图像矩阵每行每列对应BGR三种元素的值。(2)、访问图像像素的方法a. 动态地址计算访问eg: ///动态地址访问 Mat img = imread("1.jpg")

2017-08-12 09:44:49 238

原创 第四天:鼠标截图+滑动条播放视频实例

一、主要功能(1)、鼠标左键按下拖动显示轨迹,鼠标左键弹起显示截图并保存截图到本地。(2)、视频播放时,滑动条同时显示播放帧的位置和视频帧率,滑动条拖动时可以实现同步指定帧播放。#include "opencv2/opencv.hpp"#include using namespace std;using namespace cv;Mat img = imread("1.

2017-08-04 17:26:46 460

原创 第三天:鼠标与滑动条相关操作

(1)、鼠标操作指定鼠标操作消息回调函数,setMouseCallback(),原型如下:CV_EXPORTS void setMouseCallback(coonst string& winname,MouseCallback onMouse,void* userdate = 0);winname----窗口名;onMouse----触发鼠标事件被调用的函数指针;

2017-08-03 15:39:10 242

原创 第二天:OpenCV基本的绘图函数

OpenCV常用绘图函数:line()函数------用于绘制直线circle()函数------用于绘制圆rectangle()函数------用于绘制矩形ellipse()函数------用于绘制椭圆fillPoly()/polylines()函数------用 于绘制多边形putText()函数------用于添加文字1)绘制直线-----line()

2017-08-02 08:55:36 378 1

原创 第一天:Mat类基础

(一)、OpenCV常用数据结构1)、Point类Point类数据结构表示二维坐标系的点,由坐标x, y指定的2D点,如:Point pt;pt.x = 20;pt.y = 10;其他类型:PointPoint2dPoint2fPoint2iPoint3dPoint3fPoint3i2)、Rect类Rect类用来表示矩形,成员有x,y

2017-07-30 11:57:10 313

转载 Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches

通常在嵌入式系统开发中会使用这样一条命令来释放缓存:"echo 3 > /proc/sys/vm/drop_caches"Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches频繁的文件访问会导致系统的Cache使用量大增$ free -mtotal used free shared buffers cachedMem: 3955

2017-07-19 18:17:51 2691

原创 嵌入式开发之--Linux下C语言实现小工具集合

直接上代码,很好用很实用哦!#include #include #include #include #include #include #include /* offsetof */#include #include #include #include #include #include #include #include #include #include

2017-07-18 15:55:45 1252 1

转载 C语言 fgets函数与fputs函数用法

fgets (buf, size, fp)其行为方式如下:(1)遇到换行或文件结束EOF则返回。(2)按行读取。(3)每一行结束处的换行字符‘/n’也算该行字符。(4)对于大小为size的buf,最多只读取size-1个字符。(5)自动地把buf中最后一个字符(通常是换行符)的后面一个字节填充零结束符('/0')。因此如果想把buf中的换行符去掉,可以这样:buf[

2017-07-11 18:05:05 2358 2

原创 内核hotplug事件---利用Netlink处理hotplug实现热插拔监控

先上monitor的demo:sd_monitor.c#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include

2017-07-10 10:12:39 4571

转载 Python基础--模块

Python 模块Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块让你能够有逻辑地组织你的 Python 代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行的代码。例子下例是个简单的模块 support.py:

2017-07-06 18:03:53 534

原创 LinuxC语言实现上传功能(curl)

该程序是对接阿里云时做得,上传其他平台可能会略有差异,请注意!直接上代码(注意参数,最好能看懂上传的大致流程,其实也是用curl):#include #include #include #include #include #include "curl.h"#include "util.h"static char AccessKeyIdG[64] = {0};static

2017-07-06 11:45:36 2111

yuv图片 源文件 yuv420p

yuv图片 源文件 yuv420p

2022-11-16

vooya Linux下yuv播放器

vooya Linux下yuv播放器 yuv

2022-11-16

DS_AW8697_10.5V fast startup with F0 LRA haptic driver_EN_V1.8.pdf

手机电机驱动芯片AW8697

2020-01-19

U.ICV00001_CW2015CSAD_电量计_CELLWISE.pdf

电量计芯片cw2015

2020-01-19

U.CDE5EN01_AK7755EN_Codec_AKM.pdf

签: 音频驱动芯片AK7755签: 音频驱动芯片AK7755签: 音频驱动芯片AK7755签: 音频驱动芯片AK7755

2020-01-19

ST7796H_SPEC_V1.1.pdf

LCD驱动芯片7796

2020-01-19

ES7243E DS.pdf

音频芯片ES7243E音频芯片ES7243E音频芯片ES7243E音频芯片ES7243E音频芯片ES7243E

2020-01-19

H22-DTS-036-0.1_Ambarella_H22A35N_Datasheet.pdf

安霸H22A35N芯片手册安霸H22A35N芯片手册安霸H22A35N芯片手册安霸H22A35N芯片手册安霸H22A35N芯片手册

2020-01-19

H22-DTS-014-0.1_Ambarella_H22V75_Datasheet.pdf

安霸H22V75芯片手册,安霸H22V75芯片datesheet,安霸H22V75芯片datesheet,相机,IPC、4K

2020-01-19

ak4951_p01e.pdf

ak4951_p01e完整技术手册

2019-10-10

DS-ICM-20948 v1 0 .pdf

DS-ICM-20948 v1 0 .pdf完整中文技术手册

2019-10-10

ICM-40609D DS-000272 v0.8.pdf

ICM-40609D DS-000272 v0.8中文完整技术手册,ICM-40609D DS-000272 v0.8中文完整技术手册

2019-10-10

MPU-6500-Datasheet2.pdf

MPU-6500-Datasheet中文技术手册,完整中文技术手册datasheet

2019-10-10

h264裸流文件

h264裸流,可用于测试,利用ffmpeg将裸流文件转成其他格式

2017-12-25

版本控制SVN&GIT软件包及安装方法(详细、全)

版本控制SVN&GIT软件包及安装方法(详细、全)

2017-04-13

NVP6124 datasheet

NVP6124 完整版datasheet

2016-10-27

Mutt and Smtp 工具包

嵌入式linux下邮件系统开发所需工具包

2016-09-10

Tera Term 最新官方纯净版

最新版Tera Term,版本为4.88,方便快捷

2016-09-07

linux下里面如何获取网卡的实时网速

在linux下模仿windows下面的实时网速的显示模块,实现实时测速。

2016-08-24

三层交换机基本原理及转发流程

三层交换机基本原理及转发流程,便于快速掌握路由器、交换机的工作原理。

2015-12-31

空空如也

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

TA关注的人

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