自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 问答 (1)
  • 收藏
  • 关注

原创 linux内核驱动学习--GPIO+Pinctrl子系统LED实验

目录驱动文件gpio_led.c头文件gpio_led.h测试文件gpioled_test.c驱动文件gpio_led.c#include "gpio_led.h"struct gpioled_dev gpioled;static int gpioled_open (struct inode *inode, struct file *filp){ filp->private_data = &gpioled; return 0;}static int g

2022-04-18 00:38:18 293

原创 linux内核驱动学习--带设备树的字符设备驱动程序示例

目录驱动文件dts_led.cled_operator.c头文件dts_led.hled_operator.h测试文件dtsled_test.cMakefile驱动文件分为两个文件,一个字符设备添加和设备树相关节点的处理文件,一个负责LED的相关操作处理dts_led.c#include "dts_led.h"#include "led_operator.h"struct dtsled_dev dtsled;static int dtsled_open (struct inode *in

2022-03-24 21:15:43 238

原创 linux内核驱动学习--设备树查找节点的 OF 函数

目录查找节点有关of_find_node_by_name函数of_find_node_by_type 函数of_find_compatible_node 函数of_find_matching_node_and_match 函数of_find_node_by_path 函数查找父/子节点的 OF 函数of_get_parent 函数of_get_next_child 函数提取属性值的 OF 函数of_find_property 函数of_property_count_elems_of_size 函数of_pr

2022-03-20 22:21:28 2058

原创 linux内核驱动学习--字符设备驱动程序示例

目录头文件驱动文件测试程序头文件包含imx6ull LED灯相关寄存器信息#ifndef __NEWCHRLED_H#define __NEWCHRLED_H#include <linux/types.h>#include <linux/kernel.h>#include <linux/delay.h>#include <linux/ide.h>#include <linux/init.h>#include <linux

2022-03-19 23:58:49 357

原创 linux内核驱动学习--字符设备驱动程序

linux设备驱动–字符设备驱动程序目录linux设备驱动--字符设备驱动程序简介设备号设备编号的内部表达分配和释放设备编号简介字符设备是Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。常见的字符设备包括鼠标、键盘、显示器、串口等等。当我们执行ls -l /dev的时候,就能看到大量的设备文件,c就是字符设备,b就是块设备,网络设备没有对应的设备文件。编写一个外部模块的字符设备驱动,除了要实现编写一个模块所需要的代码之外,还需要

2022-03-17 23:59:23 1075

原创 linux内核驱动学习--构造和运行模块

linux设备驱动–构造和运行模块目录linux设备驱动–构造和运行模块Hello World模块将模块链接到内核用户空间和内核空间当前进程其他一些细节装载和卸载模块版本依赖内核符号表预备知识Hello World模块下面这段代码是完整的 "hello world"模块#include<linux/init.h> #include<linux/module.h> static int hello_init(void) { printk(KERN_ALERT"Hello

2022-03-17 00:19:36 1281

原创 linux内核驱动学习--设备驱动程序简介

内核驱动

2022-03-16 22:25:12 258 1

原创 leetcode 笔记No.14

leetcode No.14 最长公共前缀内存占用67%, 后续需要再优化char * longestCommonPrefix(char ** strs, int strsSize){ int flag = 1; int i , j; //printf("strsSize = %d\n", strsSize); if (strsSize == 0 || strs == NULL) { return NULL; } for (i =

2022-03-16 16:22:57 119

原创 leetcode 笔记No.13

leetcode No.13 罗马数字转整数思路(官方题解):通常情况下,罗马数字中小的数字在大的数字的右边。若输入的字符串满足该情况,那么可以将每个字符视作一个单独的值,累加每个字符对应的数值即可。例如 XXVII 可视作 X+X+V+I+I=10+10+5+1+1=27。若存在小的数字在大的数字的左边的情况,根据规则需要减去小的数字。对于这种情况,我们也可以将每个字符视作一个单独的值,若一个数字右侧的数字比它大,则将该数字的符号取反。int getValue(char ch) {

2022-03-16 15:39:51 64

原创 leetcode 笔记No.12

leetcode No.12 整数转罗马数字今日刷题:从结果来看,内存占用排名较低,后续再想想其他方便的方法。char * intToRoman(int num){ const int values[] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; const char* symbols[] = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V",

2022-03-16 00:27:34 72

原创 leetcode 笔记No.5

leetcode No.5 最长回文子串自己只会暴力破解,贴两个题解的代码,当作整理三个指针,一个左移的指针,一个右移指针,一个中心指针一直右移1、初始化 r = l = index2、把index和r+1的位置进行比较如果相等,则把r++,同时中心指针也右移 //如abbbbc的情况3、无法再右移了,则进行由中心像两侧扩展,l-1,r+1进行对比判断,知道不成立为止。4、记录最大值对应的起始地址和大小。char * longestPalindrome(char * s){ int l

2022-03-15 01:49:19 543

原创 ARM裸机

ARM系统开发基础电路基础软件和硬件的对应关系软件: 0 1电路: 低电平 高电平芯片: 截止 导通二极管1) 单向导通特性 --- 整流2) 反向击穿特性 --- 稳压管3) 发光特性 --- LED4) 电容特性 --- 储能 RAMRAM1) SRAM --- 硬件解决 --- 有三大总线、快、贵2) DRAM --- 软件解决 --- 没有三大总线(必须初始化后才使用)、便宜、慢三极管 — 开关

2022-02-11 21:09:05 525

原创 FRRouting BGP协议学习

FRR简介FRRouting (FRR) 是一个免费的开源互联网路由协议套件,适用于 Linux 和 Unix 平台。 它实现了 BGP、OSPF、RIP、IS-IS、PIM、LDP、BFD、Babel、PBR、OpenFabric 和 VRRP,并支持 EIGRP 和 NHRP。BGP模块初始化BGP 代表边界网关协议。 最新的 BGP 版本是 4。BGP-4 是外部网关协议之一,也是事实上的标准域间路由协议。 BGP-4 在 RFC 1771 中描述并由 RFC 4271更新。 RFC 2858

2022-01-18 00:01:10 3518

原创 apt-get出错

ubantu使用apt-get install 时出现以下问题ubantu@kuer:~$ sudo apt-get install htopE: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?使用以下命令解决:sudo rm -rf /var/cache/apt/archives/locksudo rm -rf /var/lib/dpkg/lock...

2021-01-08 11:01:37 97 1

原创 宏定义跟多个参数

宏定义宏定义跟多个参数宏定义跟多个参数由于keil配置了库函数包,编译出现错误如下:.\Objects\new.axf: Error: L6218E: Undefined symbol assert_param (referred from stm32f4xx_gpio.o)原因是keil配置中少个宏在stm32f4xx.h中,可以看到由此可见不配置USE_STDPERIPH_DRIVER无法包含stm32f4xx_conf.h看到一个用法#if defined A|| defined

2020-11-12 11:28:25 1995

原创 leetcode 笔记No.21

leetcode 笔记No.2121. 合并两个有序链表分析题解注意21. 合并两个有序链表将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4数据类型如题定义:/** * Definition for singly-linked list. * struct ListNode { * int val;

2020-11-05 20:39:40 83

原创 leetcode 笔记No.7

7. 整数反转给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。注意假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。思路通过字符串,但是需要大量库函数数学方法通过循环将数字x的每一位拆开,在计算新值时每一步都判断是否溢出。溢出条件有两个,一个是大于整数最大值INT_MAX,另一个是小于整数最小值INT_MIN,设当前计算结果为result,下一位为temp。从re

2020-10-04 22:21:26 319

空空如也

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

TA关注的人

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