NOT
【驱动】SPI驱动分析(六)-RK SPI驱动分析
前言 Linux的spi接口驱动实现目录在kernel\drivers\spi下。这个目录和一些层次比较明显的驱动目录布局不同,全放在这个文件夹下,因此还是只好通过看Kconfig 和 Makefile来找找思路 先看Makefile,里面关键几行: obj-$(CONFIG_SPI_MASTER) ......
列表操作符与函数 airScript 1
#组合操作符 并不改变原来的列表的值 a=[1,1,1,2] b=[2,2,2,3] c=a+b # print(c) #重复运算符 * # print(b*3) # #成员资格操作符 in # print (2 in b) #函数 a=[1,2,3,1,1,1] # a.append("haha" ......
查找的一些问题
1.对n个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为((n+1)/2 )。 解析:第一次比较的次数为1,第二次为2····第n次的比较次数为n,所以总的比较次数为n(n+1)/2,平均比较次数=(n+1)/2。 2.适用于折半查找的表的存储方式及元素排列要求为( 顺序方式存储, ......
阅读笔记
在读《软件方法》之前,我对UML的认识还停留在画图表达自己的逻辑与同学交流的阶段。当然《软件方法》也不是一本纯粹的UML书籍,潘加宇用工作流建模方式讲述了实践愿景、业务建模和系统用例在创建系统的使用。作者在这本书中犀利的表达了自己对软件和建模的理解,每个章节都有思维引导和误区提示,给了我很多启发和提 ......
【驱动】SPI驱动分析(六)-SPI驱动模板
内核态驱动模板 用户态驱动模板 使用read、write函数时,只能读、写,之二十半双工方式 使用ioctl可以达到全双工的读写 但是spidev有2个缺点: 不支持中断 只支持同步操作,不支持异步操作:就是read/write/ioctl这些函数只能执行完毕才可返回 https://www.cnb ......
airScript学习记录2
# # #元组就是不能修改的列表,用() # # a=(2,3,432,'adfa') # # print(a[3]) # # #修改元组,,把元组转化为列表,用内置函数list() # # s=list(a) # # s[3]='baba' # # print(s[3]) # #字典可以存储任意数 ......
实验4 现代c++标准库与类模板
实验任务1 task1.cpp源码 task1_1.cpp: 1 #include <iostream> 2 3 using std::cout; 4 using std::endl; 5 6 //类A的定义 7 class A{ 8 public: 9 A(int x0, int y0): x{x ......
【驱动】SPI驱动分析(四)-关键API解析
关键API 设备树 设备树解析 我们以Firefly 的SPI demo 分析下dts中对spi的描述: /* Firefly SPI demo */ &spi1 { spi_demo: spi-demo@00{ status = "okay"; compatible = "firefly,rk33 ......
【驱动】SPI驱动分析(五)-模拟SPI驱动
简介 模拟SPI驱动是一种软件实现的SPI总线驱动。在没有硬件SPI控制器的系统中,通过软件模拟实现SPI总线的功能。它允许在不修改硬件的情况下,通过GPIO(通用输入/输出)引脚模拟SPI总线的通信,从而与SPI设备进行数据交换。 模拟SPI驱动相对于硬件SPI来说,可能会有一定的性能损失,因为软 ......
【驱动】SPI驱动分析(三)-SPI关键数据类型
SPI数据类型 SPI控制器驱动结构体 struct spi_master抽象了控制器硬件,在SoC中的指的就是内部SPI控制器,当向SPI核心层注册一个SPI控制器时就需要提供这样的一个结构体变量。它的定义在 include/linux/spi/spi.h 文件,如下: /** * struct ......
快速 log2 取整算法 (O(1) 时间与空间复杂度)
先上核心代码(文末附针对多种整数类型的代码): inline int log_2(int x) { int rst = 0; if (x & 0xffff'0000U) rst += 16, x >>= 16; if (x & 0x0000'ff00U) rst += 8, x >>= 8; if ......
ElasticSearch之Merge
Elasticsearch的shard,即对应Lucene的index。 Lucene的index由多个segment组成。 segment是index保存数据的最小单位,不支持修改。 Elasticsearch在运行过程中,启动后台任务,周期性检测并将占用空间小的segment自动合并至大一些的s ......
JFrame(Java)实现滚动条界面
具体代码 package org.example; import javax.swing.*; import java.awt.*; public class Main extends JFrame { public static JFrame jFrame; public static JPane ......
leetcode1:合并两个有序数组
题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组不应由函数返回,而是存储在数组 nu ......
【Python】如何判断变量类型
1、isinstance 用法: if(isinstance(var, Type)): pass 2、is + class 用法: if(a.__class__ is VarType): pass 3、type + is 用法: if(type(var) is VarType): pass ......
代码随想录算法训练营第二天 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II
LeetCode 977.有序数组的平方 视频连接: LeetCode 977 思路: 利用双指针,通过首指针和尾指针的平方值比较,大的那个装入新的vector数组中,然后再更新指针。 class Solution { public: vector<int> sortedSquares(vector ......
代码随性训练营第五十天(Python)|123.买卖股票的最佳时机III 、188.买卖股票的最佳时机IV
123.买卖股票的最佳时机III class Solution: def maxProfit(self, prices: List[int]) -> int: if len(prices) <= 1: return 0 if len(prices) == 2: return max(0, price ......
第3章用户管理和第4章文件权限(基本权限ACL)
第三章用户管理 一、用户/组概览 Linux系统是多用户、多任务的分时操作系统,系统上每一个进程有一个特定的文件,每个文件都被一个特定的用户所拥有。 1、用户标识:UID与GID UID为用户的ID,GID为用户所属组的ID,groups为用户属于的所有组的ID,id命令查看段挡墙用户的登录信息。 ......
使用 CAD 图形修复管理器
以Autodesk CAD 2023 LT版为例。 打开方式 左上角'A'图标"图形实用工具-图形修复管理器" LT版没有。 菜单栏"文件-图形实用工具-图形修复管理器" 命令DRAWINGRECOVERY 标题栏上的“搜索”。 样式 局限 不支持手动指定路径。 “备份文件”未包含项目建立后从未保存 ......
双指针算法总结
双指针算法分为两类:第一类指向一个序列(更多的情况),第二类指向两个序列。 基本的代码框架是: for (i = 0, j = 0; i < n; i++) { while (j < i && check(i, j)) j++; // 每道题目的具体逻辑 } 核心思想:运用单调性等性质,将O(n2) ......
12、Springboot继承Redis
一、总体概述 二、本地Java连接redis常见问题 三、集成Jedis【了解】 1、步骤 1.1 建Module 1.2 改POM 1.3 写YML 1.4 主启动 1.5 业务类 四、集成lettuce【了解】 1、是什么 2、lettuce VS Jedis 3、案例 3.1 改POM 3.2 ......
springboot如何在static方法中,调用Bean对象
场景:比如说你用了springboot,也用了@Autowired 注解。但是你并不是做一个,而是做成一个jar包。 这时你就需要用到main方法去获取到Bean类。这是用@Autowired 注解是不行的。因为main方法是静态。 @Autowired 注解注入非静态变量中。 这是一串案例代码。 ......
软件技术基础第三次作业
这个作业属于哪个课程 [https://edu.cnblogs.com/campus/zjlg/23rjjsjc] 这个作业的目标 拍摄电梯演讲视频 姓名+学号 俞轶钻 2021330301030;赵盛雨 2021330301031 视频链接:https://www.bilibili.com/vid ......
华为智能家居无法触发、控制场景
问题说明 一天折腾网络后,发现华为智能家居设备可以通过智慧生活 APP 控制开关,当无法触发 场景 :定时关闭开关、人体识别开灯等功能异常。 解决 原因:在将华为 AX3 Pro ,由 PPPoE 拨号直接改成静态 IPv4 上网导致。 处理:重启路由器即可。 ......
【驱动】SPI驱动分析(一)-SPI协议简介
1. 什么是SPI SPI全拼Serial Peripheral interface(串行外围设备接口),是由Motorola(摩托罗拉)在MC68HCXX系列处理器上定义的,主要应用于EEPROM(带电可擦可编程只读存储器),FLASH,RTC(实时时钟),AD转换器,还有数字信号处理器和数字信号 ......
【驱动】SPI驱动分析(二)-SPI驱动框架
SPI驱动框架 SPI驱动属于总线-设备-驱动模型的,与I2C总线设备驱动模型相比,大体框架是一样,他们都是实际的总线。总体框架如下图所示: 从上到下,分为三层,用户空间,内核空间,和硬件层。 用户空间 在用户空间,/dev/spi0和/dev/spi1是SPI总线的设备节点,它们在用户空间提供了对 ......
Vue购物车一些参考
1. 子组件给父子件传参 然后循环2 v -for = "(sel,selindex) in selectalls" 括号中间逗号3. 给数据的每个对象插入属性值 vm.$data.all.map(item => { vm.$set(item, 'selectNum', 0) vm.$set(ite ......
《力扣面试150题》题单拓展——位运算
《力扣面试150题》题单拓展——位运算 1.基础知识 运算 符号 解读 并集 | ans = ans |4;(1000 ∪ 0010) = 1010 交集 & 按位求交集 移位 <<左移 1<<1 = 10(2进制)int m = l+((r-l)>>1); 二分法常用 count = num>>i ......
【驱动】串口驱动分析(四)-串口编程和调试方法
串口调试 串口调试主要有 根据/proc系统信息确认串口状态,stty命令,编程调试 三种调试方法,下面我们分别具体介绍下。 根据设备节点确认串口是否正常 系统上电时,默认会使能串口,我们可以通过dmesg | grep ttyS 查看系统加载的串口设备。 也可以通过 cat /proc/tty/d ......