ILD

内核数据结构之:list
2018-7-3
内核链表是一个doubly linked list,是一个双向循环链表。Linux使用链表时,将链表放入数据结构中。头文件:链表头定义在123struct list_head { struct list_head *next, *pre

在ubuntu上编译本机内核模块
2018-7-6
Makefile如下:$ cat Makefileobj-m = kfifo.oall: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modulesclean: make -C /lib/modules/$(

Arithmetic on void- and Function-Pointers
2018-7-6
GCC支持void指针和函数指针的加减运算。void和函数的size为1。允许对void和函数类型执行sizeof,其返回1.选项-Wpointer-arith产生一个警告,如果这些扩展被使用的话。In GNU C, addition and subtraction operations are s

内核数据结构之:kfifo
2018-7-7
kfifo是一个环形缓存,是一个队列,实现FIFO功能。kfifo头文件linux/kfifo.h,实现代码:lib/kfifo.c1 结构体kfifo有一个结构体,定义在linux/kfifo.h中:1234567struct __kfifo { unsigned int in

使用elixir搭建本地web源码符号查询
2018-7-8
1 安装首先,克隆官方源码:$ git clone git@github.com:free-electrons/elixir.gitelixir依赖:Python >= 3.5The Jinja2 and Pygments Python librariesBerkeley DB (and its P

内核数据结构之:idr
2018-7-8
IDR分配一个整数,并关联到一个指针。内核很多地方有这个应用场景,如device names,POSIX timers等。IDR底层通过radix tree实现。相关文件:lib/radix-tree.clib/idr.cinclude/idr.h有3种方式定义并初始化一个idr变量:1 静态分配,

内核数据结构之:rbtree
2018-7-11
红黑树是一种自平衡二叉搜索树。红黑树和AVL树类似,但是最差情况下的插入和删除更快,查询时间稍微变慢,但仍然是O(log n)。Linux红黑树实现在/lib/rbtree.c,头文件linux/rbtree.hLinux红黑树对速度进行了优化,减少了一层indirection,提高了缓存命中率。和

bash reverse a list
2018-7-12
有时需要反序一个变量的word,比如加载模块和卸载的顺序相反。Bash中可以用数组,但是POSIX不支持数组,此时可以将变量存入positional parameters,然后按编号逆序读取。unload (){ set -- $drivers i=$# while [ $i -g

Raspberry Pi 3 Model B GPIO header
2018-7-14
GPIO Header pin编号及分类GPIO numbering图片来源https://elinux.org/RPi_Low-level_peripheralshttps://www.element14.com/community/docs/DOC-73950/l/raspberry-pi-3-

Raspberry Pi 3 GPIO使用
2018-7-14
导出GPIOecho 21 > /sys/class/gpio/export 设置方向echo out > /sys/class/gpio/gpio21/direction设置值echo 1 > /sys/class/gpio/gpio21/value此时可以点亮接到21脚的LED灯。参考https

Copyright © linuxdev.cc 2017-2024. Some Rights Reserved.