自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 RGB格式解释说明

是一种加色模型,将红(Red)、绿(Green)、蓝(Blue)三原色的色光以不同的比例相加,以产生多种多样的色光;且三原色的红绿蓝不可能用其他单色光合成。

2023-07-25 17:41:05 1457

原创 YUV怎么分类,详细说明解释!

YV16 是 YUV 422 Planar 的一种,YUV 分量分别存放,先是 w * h 长度的 Y,后面跟 w * h * 0.5 长度的 V, 最后是 w * h * 0.5 长度的 U,总长度为 w * h * 2。与 I444 不同的是,YV24 是先排列 V。I422 是 YUV 422 Planar 的一种,YUV 分量分别存放,先是 w * h 长度的 Y,后面跟 w * h * 0.5 长度的 U, 最后是 w * h * 0.5 长度的 V,总长度为 w * h * 2。

2023-07-25 17:00:42 462 1

原创 v3s 荔枝派zero开发板 添加 ov2640 摄像头(一)

1)DVP是并口传输,速度较慢,传输的带宽低,使用需要PCLK\sensor输出时钟、MCLK(XCLK)\外部时钟输入、VSYNC\场同步、HSYNC\行同步、D[0:11]\并口数据——可以是8/10/12bit数据位数大小。因为购买的是dvp接口的摄像头,所以查看原理图可知,j5 部分就是dock板子上的dvp接口,另外一个是j8 部分 的mipi接口(这里不展开),dvp接口真多!分别是D6、5、7、4、8、9、10、11,pclk,gnd ,mclk,– 控制: 设置亮度、旋转、缩放等等的操作。

2023-06-21 08:42:38 1557 4

原创 最近想做一个给予v3s的ipc项目

主控v3s,直接选用licheep的licheep zero 带底座的开发板,实现gb28181 协议接入。

2023-06-19 14:04:54 107

原创 bootloader uboot内存映射与启动流程

uboot是bootloader的一种,是Linux内核的引导启动程序。它会初始化嵌入式平台上的一些外设(比如:ddr等),把Linux内核镜像从flash中加载到内存,在完成一些初始化工作后,最后启动Linux内核,类似于windows的BIOS程序。uboot相当于是一段功能复杂的裸机程序,单片机的裸机程序没有本质区别。

2023-04-20 15:09:52 1095 1

原创 如何区分flash和DDR的概念及解释

NAND 闪存的存储单元则采用串行结构,存储单元的读写是以页和块为单位来进行(一页包含若干字节,若干页则组成储存块, NAND 的存储块大小为 8 到 32KB ),这种结构最大的优点在于容量可以做得很大,超过 512MB 容量的 NAND 产品相当普遍, NAND 闪存的成本较低,有利于大规模普及。由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。通常称为闪存,也是内存器件的一种。

2023-04-14 16:58:34 2928

原创 tina-linux目录结构

uild 目录build 目录存放 Tina Linux 的构建系统文件,此目录结构下主要是一系列基于 Makefile 规格编写的 .mk 文件,主要的功能有:(1)检测当前的编译环境是否满足 Tina Linux 的构建需求;(2)生成 host 包(PC端软件包)编译规则;(3)生成工具链的编译规则;(4)生成 target 包的编译规则;(5)生成 linux kernel 的编译规则;(6)生成系统的生成规则。

2023-04-13 15:49:23 215

原创 摄像头 ISP 调试的一些经验

以 8bit 数据为例,单个 pixel 的有效值是 0~255 ,但是实际 AD 芯片(模数转换芯片)的精度可能无法将电压值很小的一部分转换出来,因此 sensor 厂家一般会在AD的输入之前加上一个固定的偏移量,使输出的 pixel value 在 5(非固定)~255 之间,目的是为了让暗部的细节完全保留,当然同时也会损失一些亮部细节,由于对于图像来说,我们的关注度更倾向于暗部区域,ISP后面会有很多增益模块(LSC、AWB、Gamma等),因此亮区的一点点损失是可以接受的。

2023-04-13 11:31:20 2992 2

原创 全志 Tina Linux 系列的 SDK 源码学习

具体的包描述可以看目录下的 Makefile 和 Config.in ,如果想要加一个包,就可以通过仿照其他包加入编译系统,甚至是从 github 获取别人移植好的包。这样一些软件包的编译规则就可以不用自己写了,这是一个软件包常用的偷懒小技巧(不是),驱动代码有时候也可以这样操作,但自己最好熟悉整体的编译系统是最好的。Tina Linux 使用了 openwrt linux 系统为原型,所以编译方法是相通的,只是会多一点自己的特色。现在我们具备了编译,打包,烧录的基础,顺便说一下一些常用的注意点。

2023-04-13 11:02:41 776

原创 Win11的WSL2系统更换磁盘

3、删除原来的虚拟系统。

2023-04-12 15:01:06 210

原创 DHCP和DNS是如何工作的?两者之间有何区别?

总而言之,DHCP服务器将IP地址分配给客户端计算机,而DNS服务器则是解析它们。DHCP和DNS是为了让我们能更加方便使用网络或互联网而研发的两种必不可少的技术,同时也是网络管理员用来管理公司网络上所有IP设备的必不可少的“工具”。

2023-03-28 12:13:20 341

原创 以太网基础理论—MAC+PHY

下图是RTL8211FD芯片的系统框图:**驱动PHY芯片的驱动其实就是调用MAC控制器,通过SMI接口控制PHY芯片。在做协议适配的时候,主要就是通过MAC控制器与PHY芯片通信,来完成数据的控制。**详细的适配过程,可以参考和学习LWIP适配的详细讲解。

2023-03-28 11:57:10 3571

原创 Mosquitto移植到嵌入式arm平台

说明:MQTT有三个关系发布者 --------> 服务器 ------ > 订阅者安装服务器安装客户端一般情况下,服务器是不需要移植,直接在阿里云上使用命令安装就行,客户端一般是需要移植到作为发布者或订阅者。

2023-03-17 19:11:17 897 2

原创 通过网页控制嵌入式设备

CGI即通用网关接口(Common Gateway Interface),是一个Web服务器主机提供信息服务的标准接口。通过CGI接口,Web服务器就能够获取客户端提交的信息,转交给服务器端的CGI程序进行处理,最后返回结果给客户端。根据CGI标准,编写外部扩展应用程序,可以对客户端浏览器输入的数据进行处理,完成客户端与服务器的交互操作。CGI规范定义了Web服务器如何向扩展应用程序发送消息,在收到扩展应用程序的信息后又如何进行处理等内容。

2023-03-15 17:36:01 548

原创 搭建一个简单的嵌入式web服务器-boa

嵌入式 web 服务器就是把 web 服务器移植到嵌入式系统的服务器。它仍然是基于http文本协议进行通信的,具有标准的接口形式,对客户端来说,访问嵌入式 web服务器就和访问普通的web 服务一样。

2023-03-15 14:23:04 429

原创 连上网后,如何同步时间 buildroot ntp 网络时钟同步

一、buildroot配置:1. 时区:2. ntpdate命令:二、执行命令。

2023-03-10 18:32:00 587

原创 荔枝派alsa使用

默认dts中使能了codec修改sun8i-v3s-licheepi-zero-dock.dts&codec {修改sun8i-v3s.dtsi需要使用的话,在buildroot中勾选 alsa-utils相关命令。

2023-03-10 17:31:49 288

原创 关于arm板上ifup eth0出现Ignoring unknown interface eth0的解决方法

最近在荔枝派zero板上做一个小项目,需要配置以太网。

2023-03-09 17:21:06 1086

原创 解决Buildroot中busybox工具包组件重新编译问题

按自己的要求修改文件

2023-03-09 14:42:49 901

原创 Buildroot Savedefconfig去哪了

在保存配置文件的时候发现没有导出defconfig,

2023-03-09 12:20:58 173

原创 荔枝派zero 添加以太网支持

make编译,将编译好的文件系统解压到SD卡。完成基本系统搭建,并添加以太网支持。通过buildroot增加。

2023-03-09 11:32:31 318

原创 全网最详细,保证能用的Licheepi Zero Ethernet适配指南

【代码】Licheepi Zero Ethernet适配指南。

2023-03-09 11:01:59 364 2

原创 重新梳理一般sipeed的荔枝派zero开发流程

编译完成后,zImage在arch/arm/boot/下,驱动模块在out/lib下,设备树在arch/arm/boot/dts下。然后把zImage,sun8i-v3s-licheepi-zero-dock.dtb放到第一分区。tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。如果涉及到多个编译链版本,可以不用写入环境变量,在这里直接绝对路径指定。,用于显示程序的输出并将其复制到一个文件中。分别是指定架构,交叉编译器,MOD安装位置。下载成功后修改makefile文件。

2023-03-09 10:49:26 421 1

原创 音视频是怎样实现传输的

音视频传输时的基本步骤:1.发起会话(Sip协议)2.编码(硬件编码、软件编码)3.传输(RTP)4.解码(硬件解码、软件解码)5结束会话(Sip协议)视频格式视频数据格式可以发展分为一个适合本地播放的本地影像视频和适合在网络中播放的网络流媒体影像视频两大类。虽然后者在稳定性和画面质量可能无法像播放本地视频流那样出众,但网络流媒体影像被广泛用于制作点播、在线演示、远程教育,网络视频广告等互联网信息服务的视频。音频格式音频格式是在计算机中播放或处理音频文件,即对声音文件进行

2022-02-11 10:08:14 3042

原创 静态代码检测工具 cppcheck ubantu下安装及使用教程

Cppcheck是用在C、C++中对code进行静态检查的工具。它的源码在 GitHub - danmar/cppcheck: static analysis of C/C++ code。它的License是GPL-3.0。它可以帮助我们检测出代码存在(潜在)的问题,比如数组越界、内存申请未释放、文件打开未关闭。注意,cppcheck不是编译器,替代不了gcc。Ubuntu上安装Cppcheck操作步骤:shell: sudo apt-get install cppcheck使用小...

2021-12-29 15:38:57 1308

原创 【c/c++】extern、static用法

简单介绍关键词static ,extern 关系。

2021-12-29 09:33:42 813

原创 分享一个比较通用的makefile

分享一个比较通用的makefile,工程目录可以有./lib,./src和./inc,详细参考makefile里面的内容。

2021-12-27 17:54:58 233

原创 如何写makefile

makefile带来直接好处就是——“自动化编译”。一旦写好,只需要一个make命令,整个工程完全自动编译,所以十分方便。而Makefile文件就是告诉make命令怎么样地去编译和链接程序。但是想要比较灵活的运用它,还是先要熟悉一些关于系统对程序编译和链接的知识。  一般来说,对C、C++程序、先把源文件编译成中间代码文件。Linux下是 .o 文件即 Object File,在Windows下也就是 .obj 文件,这个动作叫做编译(compile)。然后再把大量的.O文件合成执行文件...

2021-12-27 17:50:50 324

原创 视频码流传输协议srtp/srtcp详细介绍

RTP/RTCP协议并没有对它的负载数据进行任何保护。因此,如果攻击者通过抓包工具,如 Wireshark,将音视频数据抓取到后,通过该工具就可以直接将音视频流播放出来,这是非常恐怖的事情,这里可以通过srtp/srtcp协议,通过使用非常有名的 libsrtp 库将原来的RTP/RTCP协议数据转换成SRTP/SRTCP协议数据来确保数据安全。srtp可以解决的问题:对RTP/RTCP的负载 (payload) 进行加密,保证数据安全; 保证RTP/RTCP包的完整性,同时...

2021-12-27 11:10:31 3783

原创 记录一些c语言使用方法

一、指定的初始化可以按这样来静态地初始化数组:int fibs[] = {1, 1, 2, 3, 5};C99标准实际上支持一种更为直观简单的方式,来初始化各种不同的集合类数据(如:结构体,联合体和数组)。二、数组我们可以指定数组的元素来进行初始化。这非常有用,特别是当我们需要根据一组#define来保持某种映射关系的同步更新时。来看看一组错误码的定义,如:Entries may not correspond to actual numbers. Some entries

2021-12-27 10:33:41 3327

原创 代码统计工具CLOC

CLOC(Count Lines of Code),是一个可以统计多种编程语言中空行、评论行和物理行的工具。这个工具还是蛮实用的,可以帮我们快速了解一个项目中代码的信息linux 下安装在linux下安装就简单的多了,使用你的发行版的包管理器下载安装即可。在终端输入如下命令:# mac安装Homebrew后brew install cloc# ubuntu debian deepin mint等sudo apt install cloc# arch ma...

2021-12-24 13:58:35 772

原创 在Ubuntu下使用Doxygen步骤

1、安装sudo apt-get install doxygen-latex doxygen-doc doxygen-gui graphviz2、配置2.1生成配置文件首先进入到项目目录(最少是你要生成文档的所有代码的父级目录):doxygen -g该命令会在当前路径生成一个名为Doxyfile配置文件.Doxyfile文件内容非常多,大概 1000 多行,不过其中约 4/5 都是注释,每个配置选项都有一段详细的注释。日后,如果对 Doxygen 各配置选项的意义有一定了解,...

2021-12-24 11:33:39 2341

原创 视频传输协议RTP/RTCP/RTSP/SIP/SDP之间的关系

详细介绍了rtp,trcp,strp,srtcp以及sip,sdp的协议区别以及应用场景。

2021-12-23 10:24:42 1917 3

原创 指针函数与函数指针(C语言)

一、指针函数int *f(int a, int b); // 返回值为int *,指针类型的返回值上面的函数声明又可以写成如下形式:int* f(int a, int b);让指针标志 * 与int紧贴在一起,而与函数名f间隔开,这样看起来就明了些了,f是函数名,返回值类型是一个int类型的指针。指针函数就是返回一个地址给调用者。// 001.c#include <stdio.h>int *f(int a, int b); // 声明指针函数 i..

2021-12-17 15:37:11 631

原创 【想开始记录一些想法】

一些想法记录下来

2021-12-16 10:43:12 312

空空如也

空空如也

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

TA关注的人

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