自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

发如雪

记录所学

  • 博客(99)
  • 收藏
  • 关注

原创 设备树的引入及简明教程

首先说明,设备树不可能用来写驱动。设备树只是用来给内核里的驱动程序,指定硬件的信息。比如LED驱动,在内核的驱动程序里去操作寄存器,但是操作哪一个引脚?这由设备树指定。需要编写设备树文件(),它需要编译为文件,内核使用的是dtb文件。

2023-06-10 23:01:42 1527

原创 驱动进化之路:总线设备驱动模型

return 0;return 0;return;return;return;该程序只用于测试platform框架是否可以成功匹配,struct platform_device hello_device 并没有设置任何硬件信息。

2023-06-09 22:03:01 1025

原创 驱动设计的思想:面向对象/分层/分离(以LED操作为例)

字符设备驱动程序抽象出一个结构体;对于LED,写的程序针对硬件部分抽象出结构体。

2023-05-10 10:11:21 521 1

原创 LED驱动程序框架

把驱动拆分为通用的框架()、具体的硬件操作():如图:抽象出一个结构体:每个单板相关的实现自己的结构体,供上层的调用驱动程序分为上下两层:、。负责注册结构体,它的成员会调用中提供的硬件中的对应函数。::头文件的实现:测试程序::在ubuntu系统上使用交叉编译工具链编译之后,将文件和测试程序拷贝到网络文件系统中启动开发板,将虚拟机中ubuntu系统的网络文件系统目录挂载到开发板上,192.168.3.54为ubuntu系统的ip在 /mnt 目录下,装载驱动程序:在 /mn

2023-05-09 11:09:33 554

转载 Linux 字符设备驱动结构(三)—— file、inode结构体及chardevs数组等相关知识解析

Linux 字符设备驱动结构struct file、struct inode结构体及chardevs数组等相关知识解析

2023-05-03 12:36:34 687

转载 Linux 字符设备驱动结构(一)——cdev 结构体、设备号相关知识解析

:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等。:是指可以从设备的任意位置读取一定长度数据的设备。块设备包括硬盘、磁盘、U盘和SD卡等。每一个字符设备或块设备/dev。

2023-05-03 12:32:01 736

转载 Linux 字符设备驱动结构(四)—— file_operations 结构体知识解析

file_operations 结构体知识解析file_operations 结构体中成员的解析

2023-05-03 12:21:11 1351

转载 Linux 字符设备驱动结构(二)—— 自动创建设备节点

自动创建设备节点device_create与class_create函数的使用

2023-05-02 18:02:19 753

转载 Linux 字符设备驱动开发基础——read()、write() 相关函数解析

read()、write() 相关函数解析及用法copy_from_user和copy_to_user函数的用法及解析

2023-04-24 22:29:43 2118

转载 Linux 驱动开发之内核模块开发——内核模块编译 Makefile 入门

Linux模块化编译通用makfile编译步骤

2023-04-24 21:09:07 1627

原创 Linux串口应用编程

设置串口串口通信

2023-04-21 09:35:11 5619 1

原创 串口UART介绍

串口UART相关知识,参数介绍扽

2023-04-20 11:38:36 747

原创 如何交叉编译程序:以freetype为例

如何交叉编译开源软件和程序。交叉编译程序的万能命令。程序缺少头文件和库文件如何操作。

2023-04-17 21:45:09 1330

原创 Makefile的使用

Makefile规则Makefile语法::通配符 、假想目标: .PHONY、变量Makefile函数:foreach、filter/filter-out、Wildcard函数、patsubst函数Makefile使用实例通用Makefile编写

2023-04-16 20:32:04 3532

原创 GCC编译器的使用

gcc常用命令gcc编译选项动态库、静态库的制作和使用

2023-04-16 14:36:36 2369

转载 交叉编译详解

交叉编译、本地编译交叉编译链、交叉编译链的命名规则、如何得到交叉编译链交叉编译示例

2023-04-15 13:45:55 558

原创 VIM编辑常用命令

删除命令、数字的奥义、撤销和恢复命令粘贴命令、替换命令、替换模式和修改命令文件信息、跳转、定位括号和缩进搜索命令和替换命令插入模式和退出VIM的方法执行shell命令、文件另存为、合并文件和打开多个文件

2023-04-13 11:41:07 1943

原创 编译ORB_SLAM3的ROS部分报错

编译ROS报错: The OLD behavior for policy CMP0011 will be removed from a future version of CMake.

2022-12-01 13:17:02 1181 8

原创 matlab绘制柱状图并显示数值

matlab绘制柱状图并显示数值

2022-11-23 20:44:05 9021 1

原创 C++使用链表实现栈

C++使用链表实现栈由于栈是先进后出的特征,入栈操作可转化为在链表头插入元素,出栈操作可转化为删除链表头结点,因此只需要一个链接结点即可表示栈,然后再用一个整型变量n表示栈的长度。

2022-09-17 20:26:28 801

原创 C++基类与派生类构造和析构顺序以及虚函数的调用

C++基类与派生类构造和析构顺序以及虚函数的调用

2022-07-30 14:38:12 2298

原创 总结C++单例模式

总结C++单例模式,包括懒汉式、饿汉式、回收

2022-07-04 21:52:19 1132

原创 C/C++内存(字节)对齐

C/C++字节对齐

2022-07-04 20:55:00 609

原创 STL通过迭代器删除容器内元素

STL通过迭代器删除容器内元素会导致迭代器失效,不同的容器会有不一样的迭代器失效情况。

2022-06-13 19:35:50 645

原创 priority_queue的自定义排序与sort的自定义排序对比

先说,sort排序默认是升序,如果想降序,需要重写sort的第三个参数。参考链接:C++使用sort函数进行自定义排序通过上面的代码,就可以实现对数组v进行降序排序,注意cmp中的是 ,即通过实现了降序。接下来和priority_queue进行比较。再来说一下。参考链接:c++优先队列(priority_queue)用法详解定义:Type 就是数据类型,Container 就是容器类型(Container必须是用数组实现的容器,比如vector,deque等等,但不能用 list。STL里面默认用的

2022-06-12 15:01:24 385 1

原创 C++中使用stringstream与getline处理一行被空格(逗号)隔开的数据

使用stringstream和getline函数处理一行以空格(逗号)分割的数据

2022-06-05 22:34:29 5418 1

原创 使用cmake常用命令编译自己的项目

总结自己的项目。根据自己项目的结构,书写CMakeLists.txt,并给与注释。了解了Cmake的基本语法与用法。 - 定义工程名称,并可指定工程支持的语言例子: - 显式的定义变量例子: - 向工程添加多个特定的头文件搜索路径 —>相当于指定g++编译器的-I参数例子: - 向工程添加多个特定的库文件搜索路径 —>相当于指定g++编译器的-L参数例子: - 生成库文件例子: - 添加编译参数例子: - 生成可执行文件例子: - 为

2022-05-31 22:08:18 791

原创 148.排序链表【leetcode】

题目字节面试题复杂度分析时间复杂度O(nlogn)空间复杂度为O(1)解题思路参照官方做法2:自底向上归并排序这里给出注释版,便于本次和以后做这题的理解class Solution { // 自底向上归并排序 public ListNode sortList(ListNode head) { if(head == null){ return head; } // 1. 首先从头向后遍历,统计链表长度

2022-05-07 11:39:31 334 2

原创 25.K个一组翻转链表5/100【leetcode】

题目:给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k 的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。示例1:示例2:cpp代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next;

2022-04-28 14:15:10 769

原创 215.数组中的第K个最大元素 4/100【leetcode】

题目:给定整数数组nums和整数k,请返回数组中第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。示例1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4热度:4/100分析1.怎么和快排联系到了一起:因为快排的思想是每次通过一个数arr[q],将数组arr分为两部分,索引q左边区间[left,q-1]对应的数组元素都小于等于arr[q],索引q右边的区

2022-04-27 15:13:42 101

原创 146.LRU缓存【leetcode】3/100

题目:146.LRU缓存请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。实现 LRUCache 类:LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字 key 已经存在,则变更其数据值 value ;如果不存在,则向缓存中插入该组 key-val

2022-04-26 14:21:32 100

原创 3.无重复字符的最长子串【leetcode】2/100

题目:给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,

2022-04-22 11:38:55 208

原创 SQL之DQL(数据查询语言):数据库查询

mysql查询的使用,SELECT

2022-04-12 21:28:50 610

原创 十大排序算法之选择排序C++实现及详细注释

算法讲解思路选择排序也是一种简单直观的排序算法。它的工作原理很容易理解:初始时在序列中找到最小(大)元素,放到序列的起始位置作为已排序序列;然后,再从剩余未排序元素中继续寻找最小(大)元素,放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。注意选择排序与冒泡排序的区别:冒泡排序通过依次交换相邻两个顺序不合法的元素位置,从而将当前最小(大)元素放到合适的位置;而选择排序每遍历一次都记住了当前最小(大)元素的位置,最后仅需一次交换操作即可将其放到合适的位置。时间复杂度为O(n),空间复杂度

2022-04-12 17:30:52 716

原创 SQL之DML(数据操作语言):对数据库中表的数据进行增、删、改操作

mysql的增删改命令以及用法

2022-04-08 19:55:33 420

原创 SQL之DDL(数据定义语言):创建数据库、表;修改删除表

SQL介绍:全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准 。SQL分类:SQL分类 分类 全称 说明 DDL Data Definition Language 数据定义语言,用来定义数据库对象(数据库,表,字段) DML Data Manipulation Language 数据操作语言,用来对数据库表中的数据进行增删改 DQL Data Query Lan

2022-04-08 16:50:49 1551

原创 C++ 对小数取整和四舍五入函数

向上取整函数:ceil向下取整函数:floor四舍五入函数:round直接上代码#include <iostream>#include <string>#include <cmath>using namespace std;//向上取整函数:ceil//向下取整函数:floor//四舍五入函数:roundvoid test() { int a = 10; int b = 20; int c = 3; cout <<

2022-04-08 15:51:00 3496

原创 leetcode 59.螺旋矩阵2 C++

给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。示例:输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]输入:n = 1输出:[[1]]代码:class Solution {public://模拟, vector<vector<int>> generateMatrix(int n) { //四个边界 in

2022-04-08 09:23:09 467

原创 C++使用sort函数进行自定义排序

我们平时使用sort都是对一个数组进行从大到小或者从小到大排序,然而,有时候我们需要对一些特殊的数据进行我们想要的排序,就需要自定义一些比较函数用于排序,将这些比较函数作为sort函数的第三个参数,这样就可以实现我们想要的排序。但是不是随便一个比较函数都可以作为sort函数的第三个参数的。通常作为sort函数的第三个参数的函数指针必须是全局函数指针或静态成员函数指针,经常在力扣上刷题的同学,如果有自定义比较函数的经历,一定了解非静态成员函数指针不能直接传递给std::sort下面用两......

2022-04-07 19:49:19 5051

原创 十进制与十六进制之间的转换C++实现

1.十进制转十六进制转换流程1.每次取出 要转化的数 与 要转化的进制 的余数2.将余数根据大小,转化成要对应进制的正确表达形式3.将最后得到的字符串翻转直接上代码#include <iostream>#include <algorithm>#include <string>using namespace std; typedef long long ll; //十进制转十六进制 string s; //存放十六进制的字

2022-04-06 14:45:10 4459

驱动进化之路:总线设备驱动模型 开发实例

使用开发板,操作LED。基于总线设备驱动模型。采用分层和分离的设计思想。

2023-06-09

空空如也

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

TA关注的人

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