- 博客(15)
- 资源 (2)
- 收藏
- 关注
原创 2021-05-18
struct stat{ dev_t st_dev; /* ID of device containing file -文件所在设备的ID*/ ino_t st_ino; /* inode number -inode节点号*/ mode_t st_mode; /* protection -保护模式?*/ nlink_t st_nlink; /* number of hard...
2021-05-18 20:10:14
181
原创 内存泄露debug
Dmalloc下载:http://dmalloc.com/releases/dmalloc-5.5.2.tgz编译:--prefix指定的目录请自行更改,此目录下./configure --enable-threads --prefix=xxx/Install 修改Makefile中的CC,CXX,ld,ar,ranlib等tools为对应工具链的tools make make install使用:执行编译生成的dmalloc(位于Install/bin目录)./dmalloc
2021-03-08 10:58:03
456
原创 git 常用操作记录
暂存 git stash查看暂存 git stash list调出暂存 git stash pop可以查询每一行代码的 commit ID、提交者和提交日期 Git blame经常配合 git blame,从而查询整个 patch Git show记录了 git 某个分支的每次操作,通常用来恢复误操作影响的数据 Git reflog取消commit git reset --soft回退到上个版本 git reset --hard HEAD^回退到前3次...
2021-02-25 21:24:37
167
原创 Git理论基础
一、Git基本概念 1.1、什么是版本控制 版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。实现跨区域多人协同开发 追踪和记载一个或者多个文件的历史记录 组织和保护你的源代码和文档 统计工作量 并行开发、提高开发效率 跟踪记录整个软件的开发过程 减轻开发人员的负担,节省时间,同时降低人为错误就是多人协同合作开发时的一种文件管理技...
2020-12-02 20:59:06
232
原创 字符驱动流程
一、字符设备驱动流程字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等。 存放位置:在 /dev 目录下对应一个设备文件 分配cdev(二选一) register_chrdev_region dev_t from, unsigned count, const char * name 分配名为name,count设备号为from+co..
2020-12-02 20:46:29
622
原创 GDB调试崩溃信息kernel panic
GDB调试崩溃信息kernel panic------------[ cut here ]------------Kernel BUG at c016bcbe [verbose debug info unavailable]Internal error: Oops - BUG: 0 [#1] PREEMPT THUMB2CPU: 0 PID: 551 Comm: MdbShmServer Tainted: P O 4.9.227 #7Hardware name:
2020-11-04 15:23:30
1433
1
原创 自己的vimrc
set nocompatiblefiletype on set rtp+=~/.vim/bundle/Vundle.vimif empty(glob('~/.vim/autoload/plug.vim')) silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim autocmd VimE
2020-09-18 15:21:11
686
1
原创 Linux内存管理原理及应用总结
内存的基本概念页内核将物理页作为内存管理的基本单位一般而言 32位体系结构支持页大小为4KB64位体系结构支持页大小为8KB内核中的<linux/mm_types.h>struct page结构体来描述系统中的每个物理页仅描述物理页属性,与里面保存的数据无关,所以在数据交换过程中,数据可能会更换page区由于硬件的限制一些只能被直接访问的内存由于某些体系物理寻址范围大于虚拟寻址范围,故而有一些内存无法永久的映射在内核空间故而,linux分了四个区ZON
2020-08-07 14:50:56
308
原创 Linux中断子系统原理及应用总结
软中断软中断简介软中断一般而言在对时间要求较高的地方使用,常见的如网络其分为八种类型API步骤函数参数意义1open_softirqint nr, void(* action)(struct softirq_action *)注册nr类型的软中断,处理函数为action2actionstruct softirq_action *中断处理函数3raise_softirqint nr触发nr类型的软中断,设为挂起状态,下次周期运行其中在软中断
2020-08-04 16:40:42
254
原创 Linux内核时间子系统
文章目录Linux内核时间子系统低精度定时器时钟源 clocksource时间轮Time Wheel时间维护 timekeeperAPI接口高精度定时器clock_event_device开启高精度定时器模式hirtimer工作原理API接口Linux内核时间子系统低精度定时器时钟源为jiffies,即精度为1/HZeg:HZ为1000时,时间精度为1ms基于HZ的定时器机制被称为时间轮(Time Wheel)虽然从2.6.16内核后出现了高精度定时器hirtime 但其只是一个内核可选配置
2020-07-27 17:19:48
348
原创 Volatile经典使用场景
Volatile经典使用场景Volatile每次在访问变量时都重新从内存中获取,而不是通过寄存器的变量别名来访问在内核代码短时间延迟执行时,有一种方法叫忙等待unsigned long delay = jiffies +5*HZ;while(time_before(jiffies,delay)) cond_resched();//调度优先级更高的程序运行对于C编译器来说,通常只将变量装载一次但是jiffies会随着时钟中断的发生从而不断的增加,怎么保证jiffies每次重新被加载?在
2020-07-23 11:15:42
318
1
原创 linux内核配置机制
linux内核配置机制通过将驱动放在内核源代码树中案例分析内核配置1、配置的基本结构Makefile:分布在Linux kernel根及各级目录下,定义了Linux kernel的编译规则配置文件:.config配置工具:makemenuconfig2、为什么需要配置当我们为了适应不同的平台,需要裁剪不同的内核,其中配置就可以选择我们需要的内核项,我们可以从以下两个方向进行分析2.1、从Makefile功能:静态编译(直接编译进内核)动态编译(作为模块编进内核)直接应用:
2020-07-22 11:36:27
715
原创 字符驱动-poll机制
字符驱动-poll机制什么是pollpoll机制基于等待队列wait_queuepoll机制:如果没有发生需要的事件,那么进程进入休眠。如果在限定的时间内得到需要的事件,那么成功返回,如果没有则返回超时错误信息#include <poll.h> int poll(struct pollfd fd[], nfds_t nfds, int timeout);struct pollfd{ int fd; //文件描述符 short even
2020-07-19 13:43:55
286
原创 GDB移植及调试
[ TOC ]GDB移植及调试一、GDB移植1.1、下载GDB源码下载地址:http://ftp.gnu.org/gnu/gdb/选择gdb-8.2.1.tar.gz版本下载tar -zxvf gdb-8.2.1.tar.gz-z表示解压gz包 -x表示解压 -v表示详细过程 -f表示文件解压后可在当前目录看到压缩包同名文件夹1.2、添加交叉编译工具链 ./configure --host=arm-linux-gnueabihf --enable-shared --prefi
2020-07-13 21:15:09
849
原创 BusyBox移植与新增命令
初识 BusyBox一、BusyBox移植BusyBox是一个集成了一百多个常用Linux命令和工具的应用程序。它不仅包含了一些简单的命令,如 cat 、echo和ls等,而且还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet等。简单地说,BusyBox就好像是个大工具箱,集成了许多Linux常用的工具和命令。1.1、下载BusyBox源码下载地址:https://busybox.net/downloads/我们选择1.21.1版本,下载后解压在当前目录
2020-07-10 17:56:31
3755
p2p-stm32.zip
2019-11-27
libnfc.rar
2019-11-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人