自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【君正T31开发记录】12.编译工具相关总结及介绍

readelf读elf信息,包括elf文件头、程序头、符号表、动态库链接信息等;elfedit用来修改elf header信息,包括header显示的版本、编译平台、执行平台等。以及写makefile的时候,也需要了解下这些工具的作用及用法,这里总结记录一下常见的工具及相关用法。ldd显示可执行文件或者库文件依赖的动态库有哪些,防止因为动态库拷贝少了导致的运行问题,但是这个不检查动态库版本之类的信息,需要自己小心。将执行时的符号解析提前到链接阶段,以减少程序运行时的动态链接开销。

2025-01-06 23:57:40 586

原创 【君正T31开发记录】11.valgrind工具相关记录--常用的内存、性能分析工具记录

valgrind可以用于程序的内存调试、内存泄漏检测、性能分析,其拥有如下几个主要工具,–help选项也可以看到,但是其选项没做归纳,这里归纳记录看一下。如上,是一些常用工具的记录,valgrind --tool=toolname --help可以查看其他工具或工具的具体选项。

2024-12-29 23:21:23 244

原创 抖音mars code + gtest,帮你实现最简单的单元测试

这里单元测试代码就生成好了,mars code的代码就是依赖gtest框架,我们直接把代码放在那个makefile路径下就行,main函数我们自己封好了就不拷贝过去了,直接make生成test产物,就基本完成了一个类的单元测试。gtest是谷歌的单元测试框架,能帮助我们很简单的构建单元测试用例,搭配其判定语句,能实现单元测试用例的输出判定。单元测试做的好,后期会避免很多问题,特别是这样的单元测试代码还是自动生成的,效率很快哦。把库中的lib include src下的main文件一起拷贝到自己的开发路径。

2024-12-16 19:57:22 438

原创 【君正T31开发记录】10.RTP协议及RTP带h264负载

RTP协议文档,RTP两个子协议RTP、RTCP都在这个文档里边。RTSP是流媒体控制协议,用于媒体传输的交互,具体媒体负载用RTP协议传输,RTP协议,用于实时传输数据,协议信息包括:时间戳、序列号、负载格式。

2024-11-27 14:42:16 823

原创 【君正T31开发记录】8.了解rtsp协议及设计模式

前边搞定了驱动,先不着急直接上手撸应用层的代码,先了解一下大致要用到的东西。设计PC端先用vlc rtsp暂时H264编码(vlc好像不支持h265,这个后边我试试)的视频流,先需要支持上rtsp server,了解rtsp协议是必须的,然后设计这个server,带入一些设计模式的思想优化整体框架设计。

2024-11-24 21:28:31 1438

原创 【君正T31开发记录】6.T31上sensor-gc2083驱动相关拓展了解

前边移植驱动遇到点问题,主要由于sensor gc2083没有驱动源码,现在我们基于已有驱动对gc2083进行驱动,在gc2093驱动源码的基础上进行适配修改。先了解一点基础,gc2083是mipi接口挂载在总线上,通过IIC配置sensor。

2024-11-17 17:14:18 1235

原创 【君正T31开发记录】5.T31驱动移植及加载、测试

前边,已经完成uboot、kernel、rootfs的移植,现在系统已经可以完整启动了,下边,我们需要完成一些对一些设备的驱动,包括sensor、音频设备(mic\spk功放)、视频编码器件。

2024-11-14 22:03:13 1429

原创 【君正T31开发记录】4.busybox工具集编译及根文件系统制作

前边,已经完成kernel启动,最后panic,因为VFS加载不到根文件系统,现在我们来打包一个根文件系统并将常用工具一起打包在根文件系统镜像中。根文件系统,其实就是Linux kernel起来以后的路径,里边包含/etc//proc//tmp//lib/等一系列文件夹及常用命令行程序如lscd等,还有运行环境包括glibc等一系列动态库文件,还有环境初始化脚本如。Linux kernel起来以后,根目录会挂载到根目录上。

2024-11-11 20:06:30 1280

原创 【君正T31开发记录】3.kernel裁剪及交叉编译

前边,我们已经完成了uboot的编译及烧录,起作用就是初步初始化板载器件,包括CPU及RAM初始化,关watchdog等。这就编译内核ok,内核压缩后大小1.32M,解压缩大小看vmlinux大小约4.9M并将其打包成一个uboot可加载的镜像(动态链接,指向uImage.lzma),将这个uImage.lzma拷贝到tftp目录下并传输到uboot。只有这一个报错,表示内核编译过程没有问题,只是缺少uboot打包工具,去之前我们编译的uboot目录下。usb有线以太网卡和SD卡。

2024-11-10 18:03:24 1203

原创 【君正T31开发记录】2.uboot配置及交叉编译

主要是boot loader默认从SD卡17kB偏移的位置loader uboot,配合手册进行前期格式化、分区等,切换了一下环境,就不截图了,看手册吧。最后,把启动卡插进模组卡槽就可以了,启动直接进入uboot,然后把SD卡上的uboot拷贝到板上flash就可以了,后期也就不再需要这张SD卡了。先暂时修改这么多,后续如果uboot大了(手册说明不可以大于240K)再重新裁剪或者打开uboot压缩。mem表示内核启动后的保留内存,rmem是预留给SDK的内存,总大小64M。修改uboot等待时间。

2024-11-09 23:42:05 927 3

原创 【君正T31开发记录】1.开发环境准备

最近拿到一块君正T31zl+gc2083的摄像头模组,写下文章记录一下开发过程。如图,核心板为君正T31zl,摄像头gc2083,一个有线网口,一个mic和一个喇叭,资料附带君正官方SDK,有详细硬件原理图和开发工具(主要是交叉编译链和uboot kernel busybox driver源码);

2024-11-09 02:37:03 1007

原创 UVC框架,V4L2编程

V4L编程

2021-03-25 11:47:35 655

原创 c++中的四种强制类型转换

c++中的四种强制类型转换

2020-09-07 17:37:14 588

原创 通信协议--IIC协议

IIC协议

2020-09-03 20:02:53 459 1

原创 socket--Linux下的广播

Linux使用socket实现广播

2020-08-26 22:57:35 1523

原创 QT--交叉编译QT到arm A5开发板

交叉编译QT到arm A5开发板,并测试

2020-08-18 22:27:13 546

原创 OpenCV--提取轮廓findContours()函数和轮廓填充drawContours()

轮廓提取,轮廓填充

2020-08-06 16:15:45 2747

原创 OpenCV--二值化

图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果;二值化一般是提取轮廓的准备工作;二值化处理之后,图像只有0或255,变成黑白图像。OpenCV中有全局二值化和局部二值化,全局二值化对光线敏感,局部二值化可以克服光线的影响全局二值化double threshold( InputArray src,//src输入数组(多通道,8位或32位浮点)。 OutputArray dst,//dst输出数组的大小和类型与src相同,通.

2020-08-06 00:30:09 2119

原创 zbar--对zbar开源二维码解码库的分析

鉴于网上对zbar这一开源二维码解码库的中文文档较少,刚好做了点这个库的调用,写了点分析笔记,如果有错,望指出批评

2020-08-04 23:19:42 4063

原创 c++--Lambda表达式

c++11标准下的lambda表达式

2020-08-02 18:30:04 357

原创 OpenCV--滤波相关函数

平均滤波、高斯滤波、中值滤波、双边滤波

2020-07-30 23:38:37 388

原创 c++--c++11标准下的三种智能指针

c++中unique_ptr、shared_ptr、weak_ptr三大智能指针简单入门,c++11已经废除auto_ptr

2020-07-26 19:02:15 960

原创 opencv--交叉编译arm

交叉编译形成arm可用动态库

2020-07-23 16:03:29 1788

原创 QT--在QT中使用openCV

在QT中使用openCV,.pro文件的设置

2020-07-22 22:51:08 4043 1

原创 QT--源码编译

源码编译

2020-07-21 03:10:55 964

原创 计算机网络--TCP的拥塞控制

拥塞控制

2020-06-15 12:13:40 1036

原创 计算机网络--TCP可靠传输的实现(无拥塞)

三次握手四次挥手、滑动窗口

2020-06-15 10:36:48 289

原创 计算机网络--内部网关协议RIP(网络层)

RIP协议,RIP路由表

2020-06-14 22:53:18 1747

原创 计算机网络--ARP协议

ARP协议

2020-06-14 00:58:46 438

原创 计算机网络--IP地址及MAC地址

IP地址及MAC地址

2020-06-14 00:20:49 763

原创 计算机网络--交换机自学习及转发帧

交换机自学习及转发帧

2020-06-13 23:09:18 9313

原创 最佳信源编码--香农编码c++实现

香农编码、费诺编码、哈夫曼编码的c/c++实现

2020-05-17 00:03:42 1918

原创 Linux--gcc编译过程及Makefile文件

gcc编译过程及Makefile文件

2020-05-04 20:26:40 807

原创 计算机网络--体系结构(OSI、TCP/IP模型,五层协议)

OSI、TCP/IP、五层协议

2020-04-28 12:00:55 1271

原创 c/c++--static,const关键字

static,const关键字

2020-04-18 03:33:28 401

原创 计算机网络--边缘和核心部分,三种数据交换方式

互联网的核心部分和边缘部分;电路交换,报文交换和分组交换

2020-04-15 00:21:42 8236 1

原创 QT快捷键

QT快捷键

2020-04-14 10:13:41 187

原创 c++--标准模板库(STL)

标准模板库

2020-04-07 01:02:50 1875

原创 c转c++手册

引用,构造函数、拷贝构造函数和赋值运算符重载函数,模板,泛型编程,错误处理,动态内存分配

2020-04-03 13:56:54 1119

原创 Linux--套接字(socket)

套接字(socket)

2020-03-30 18:34:52 338

空空如也

空空如也

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

TA关注的人

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