自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux C 中 multiple definition of ‘xxx‘

(2)在项目中,对于依赖的源文件夹中的所有.c文件都会被编译,如果其中一个.c文件被另外一个.c文件include,就像下面的代码一样,那么就会导致被包含的那个.c文件中定义的变量和函数被两次编译,从而导致重复定义。尽量不要使用.c文件包含.c文件,而使用头文件声明的方式调用另一个.c文件中的函数或者变量,否则容易忘记,导致重复定义。为了防止上述问题的出现,我们可以把需要用在多个源文件中的变量或函数集合到一个统一的文件中,然后在头文件中进行声明,在其他地方都用包含头文件的方式进行处理。

2023-12-29 16:54:30 781

原创 Q_PROPERTY 使用QList 来进行数据传递

在使用C++与QML进行数据传递的时候,我们会经常用到Q_PROPERTY。本章主要从QList基础、Q_PROPERTY 中使用QList、Q_PROPERTY 中使用QList 完整示例三个方面来讲述。三、Q_PROPERTY 中使用QList 完整示例。1、创建QList 对象。二、Q_PROPERTY 中使用QList。1、在main函数中向QML注册。一、QList 基础。

2023-12-22 11:28:22 515 1

原创 Linux 下C语言中调用C++动态库完整流程

2、编译C++文件生成动态库。本文只是一个示例,如果是项目,需要更换为Makefile 或CMAKE来生成动态库。3、在C语言中直接调用get_parameter_result,链接库文件跟链接C动态库文件一致。1、C++中要供给C使用的函数必须经过如下处理。//这里放置C语言需要调用的函数。

2023-12-06 16:23:28 497

原创 RK3588 在uboot 和kernel下对GPIO的配置

在uboot 中配置GPIO信息以完成GPIO的初始化。

2023-11-30 10:00:34 1202

原创 RK3588 can 编程

Can使用二根线来连接各个单元,CAN_H, CAN_L.Can总线通过二根线的电位差来得到总线电平。显性电平表示逻辑0,一般CAN_H 为3.5V,CAN_L 为1.5V,电位差为2V.隐性电平表示逻辑1,一般CAN_H 和CAN_L为2.5V。CAN定义了5种类型的帧,分别是数据帧,遥控帧,错误帧,过载帧,间隔帧。以前也做过Can编程,时间久了,就忘记了,因项目的需要,再次做Can编程的时候,竟然发现很多东西都忘记了,于是把怎么进行can编程记录下来,用来备忘。一、Can总线的一些基本特性。

2023-10-07 13:33:30 345

原创 Linux 内核总览

本章主要概述作为一个Linux内核工作者,需要了解的一些内容。后续将详细介绍我们工作中怎么使用这些内容来达到我们的目的。

2023-09-14 08:57:34 54

原创 QML编程之Q_PROPERTY

Q_PROPERTY 使用

2023-08-23 10:38:48 292

原创 QML编程 动态加载 Loader

loader 动态加载qml文档和组件的方式,大小及信息交互。

2023-08-17 17:18:13 321

原创 C++ 与QML消息交互

QML和C++信息交互

2023-08-16 17:32:19 130

原创 RK3588外围设备调试和应用总览

大概分为以下几个内容,can总线从应用到驱动,SPI从应用到驱动,I2C从应用到驱动,uart从应用到驱动,AD采样从应用到驱动等,另外可能也会附加一些项目开发过程中遇到的问题。由于平时工作比较忙,可能本专栏更新不是特别快,在订阅前,请大家多思考!如果订阅了,需要已更新的专栏的代码,可以私信获取。RK3588项目基本完成,后面打算抽空把相关的外围设备调试和应用使用进行一些总结,作为一个项目备忘。

2023-08-04 13:25:18 153

原创 Linux TCP 服务器

本章主要介绍的是一个服务器跟一个客服端的连接,如果需要一个服务器连接多个客服端,需要自行通过 select 进行处理,本章不进行处理。

2023-07-14 10:43:13 64

原创 RK3588视频解码,显示和QT悬浮之源代码

主要提供一个可执行的RK3588视频解码,RGA合成,DRM显示,QT悬浮的源码

2023-06-13 16:02:41 956 81

原创 RK3588 视频解码,QT显示之双屏同显

怎么实现RK3588双屏同显和双屏异显

2023-06-06 10:15:12 1740 1

原创 RK3588 之视频和QT悬浮DRM显示

RK3588 解码后的视频通过DRM进行显示并悬浮QT

2023-06-02 14:08:49 2481 10

原创 RK3588 MPP,RGA,DRM,QT之RGA

RK3588多路视频采用RGA来进行混合成一帧

2023-06-02 10:07:07 1893

原创 RK3588 MPP,GRA,DRM,QT之MPP解码

RK3588多路视频解码,RGA合成,DRM显示,QT悬浮。

2023-06-01 11:30:18 2224

原创 C++与QML间的JSON处理

QML和C++ 中JSON的传递

2023-05-31 09:59:01 532

原创 RK3588 解码,RGA合成,DRM显示,QT ui 悬浮总览

RK3588 解码,RGA合成,DRM显示,UI悬浮总览

2023-02-24 11:24:35 3776 8

原创 设计模式之装饰模式-C++

装饰模式,适合一个对象,可以在上面增加各种不一样的内容

2022-11-15 14:03:18 104

原创 设计模式之观察者模式-C++

观察者模式简单示例

2022-11-14 16:48:24 236

原创 Linux 嵌入式开发记录(二)设备驱动

Linux 嵌入式开发 驱动

2022-09-23 10:24:12 414

原创 Linux 嵌入式开发记录(一) .config kconfig makefile

嵌入式linux 设备驱动

2022-09-20 17:31:22 239

原创 Qt 线程安全问题

QML界面刷新问题

2022-09-09 17:47:40 460

原创 QML 项目构建

QML 项目构建

2022-09-06 09:46:02 508

原创 QML 动态创建和删除多个组件

最近要做一个时序工具,需要一个元件对应一个可设定的时序,纠结了好久,不知道怎么处理好。最终确定以如下方式进行开发。如有更加好的方式,请留言。 首先为QML 的ListView 写一个C++的模型,当然也可以直接用 ListView 的模型,由于这些数据都需要处理,最后会保存到xml 文件中,习惯就写C++ 方式了。 第二个,为每个元件分配一个 ListView. 在 ListView的 delegate 中根据每个元素的参数,动态创建组件。在这里,刚开始...

2021-12-17 16:16:21 881

原创 QT SQLITE

最近在学习QT,然后觉得是否应该把数据库也搞一下,于是便进行了一些资料查询和简单的代码编写,下面记录一下一个完整可行的数据库的基本操作。 一、创建数据库并建立连接。 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLIT"); db.setHostName("mystudent"); db.setDatabaseName("flightdb"); if(!...

2021-11-18 14:36:44 612

原创 QML MV

最近在使用QML 过程中需要由C++ 的逻辑层上传数据给QML 展示,并且这个数据是不断更新的,所以我使用C++ 的mode 方式,然后在QML 中调用。当然这个方式肯定是没有问题的。闲暇之余,想了下,如果我不采用C++的方式实现 mode, 而是采用QML 中已有的 ListModel 怎么实现呢?大概分为二种,一种为需要不听刷新的界面,一种为从逻辑层获取数据后,不需要再刷新。 首先第一种,从逻辑层获取数据后,不需要再刷新,这个比较简单,就是在ListModel 中,先...

2021-10-25 17:16:54 179

原创 QT crator 创建项目

使用Qt Crator 创建可以分为二种,一种为通过qtcrator 创建虚拟文件夹,当我们使用qt crator 打开时,我们看到的是一个分文件夹的项目,但是在我们实际的路劲下是没有这个文件夹的。为了区分不同的模块或者是不同的功能,我们可以使用手动来建立。首先,在生成的 Quick 的项目的目录下建立多个文件夹。如test1,test2,test. 第二、在每个文件夹下建立相应的 pri文件。 第三、在 pro 文件中包含每个 pri 文件。第四,运行一下,就可以看到实际的效果了。...

2021-10-11 17:38:25 243

原创 linux 下动态库使用

最近在使用别人提供的动态库,在用的时候还不是一下就能OK的,有些地方还是需要注意。1、当我们在c++ 中调用C 的动态库,我们会经常出现 undefined reference to fun, 就是定义在动态库中的函数我们找不到,但是我们已经包含了相关的头文件了,为啥呢?这是因为我们需要把这个头文件放入到 extern "c"{ #include "mytestso.h"},这样我们就解决了这个问题。2、warning: XXX.so, needed by /opt/XXX/XXX/XXX.so..

2021-09-18 10:15:31 359

原创 JSON 的简单使用

最近项目需要弄一个QT的程序,以前没干过,都是现学现用。今天我们需要QT的QML和QT的C++ 进行消息的交互。所以对QJSON有所了解。其实对我们这个项目来讲JSON 只需要二个很基本的功能能,第一个构建JSON对象处理,第二,接收传递过来的JSON进行解析。第一,JSON对象的打包。QJsonObject json;json.insert("Name","dream");json.insert("Age",100);第二,JSON的解析。QJsonValue valu...

2021-05-12 18:37:56 113

原创 2020-12-05

设计模式之命令模式命令模式可以把“动作的请求者”从“动作的执行者”对象中解耦出来。动作的请求者和执行者通过命令对象进行沟通。命令对象封装了接受者和一组动作。综上: 。下面我们以遥控器来介绍命令模式一:遥控器需要控制的各个器件。(如,冰箱,电灯,空调,电视等)【动作的执行者,如电灯的开关等】执行遥控请求的动作。二:遥...

2020-12-05 17:17:01 79

原创 2020-12-05

设计模式 之单件模式 一、构造函数是private ,所以他是独一无二,不会产生多的对象。 二、调用实例化,一般是通过调用一个 公有的静态函数 getInstance()来获取对象。 当我们在多线程的时候,可能会产生多个对象,为什么呢?因为会出现同步的问题,所以我...

2020-12-05 17:14:53 46

原创 2020-12-04

多进程 FIFO 通信 好多年没用过管道了,最近的一个项目,由于硬件还没有出来,所有通过按键的操作无法直接通过机器操作。没办法,只能通过多进程控制台的方式来让机器上的运行程序模拟按键操作。竟然花了二个小时才把管道完整的实现模拟arm 板上的通信!!!!!! 下面贴出部分代码做备忘...

2020-12-04 11:31:18 57 1

原创 2020-11-23

UDP解码小结 最近一直在做海思项目,今天早上进行了UDP解码和显示。但是怎么看,解码下来的视频在底部会时不时的出现一些马赛克,然后我用秒表测试了下延时,发现及时流的达到了300毫秒。觉得不太对,正常情况下,四路解码不会超过200毫秒。于是开始了一天的折腾。刚开始总是认为是我在处理帧的问题。于是对帧进行了一步一步的排查,干了一上午。没发现...

2020-11-23 17:42:17 114

空空如也

空空如也

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

TA关注的人

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