随笔分类 - 08.Linux_sys
摘要:Tiny4412裸机程序之操作ICache一、首先普及一下什么是Cache基于程序访问的局限性,在主存和CPU通用寄存器之前设置了一类高速的、容量较小的存储器,把正在执行的指令地址附件的一部分指令或数据从主存调入这类存储器,供CPU在一段时间内使用,这对提高程序的运行速度有很大的作用。这类介于主存和...
阅读全文
摘要:-----------------------------------------------------------------------------------------(一)友善之臂介绍:README for FriendlyARM Tiny4412说明:本u-boot源代码由三星原厂提供...
阅读全文
摘要:root@phone-desktop:~# cd '/opt/BARE/01led' root@phone-desktop:/opt/BARE/01led# makearm-linux-gnueabihf-gcc -Wall -marm -c -O2 -o start.o start.Smake: ...
阅读全文
摘要:devfs:常用的驱动函数封装proc:在用户态检查内核状态的机制udev和devfs相比?一个是用户空间里的,一个运行在内核空间且被2.6以后版本抛弃了
阅读全文
摘要:linux-2.6.22/include/linux/cdev.hstruct cdev { struct kobject kobj; // 每个 cdev 都是一个 kobject struct module *owner; // 指向实现驱动的模块 const struct file_op...
阅读全文
摘要:linux发展第一阶段01devfs(linux2.6之前)02udev(用户空间)03sysfs(linux2.6之后,描述设备属性)linux发展第二阶段01sysfs+udev(udev用户空间)02devfs(内核空间)03proc:在用户态检查内核状态的机制各个内容简介:01 sysfs特...
阅读全文
摘要:1、初始化一个线程对象的属性int pthread_attr_init(pthread_attr_t *attr); 返回值:若是成功返回0,否则返回错误的编号 形 参: attr 指向一个线程属性的指针 说 明:Posix线程中的线程属性pt...
阅读全文
摘要:线程属性标识符:pthread_attr_t 包含在 pthread.h 头文件中。 [c] view plaincopy //线程属性结构如下: typedef struct { int etachstate; //线程的分离状态 int schedpolicy; //线程调度策略 structs
阅读全文
摘要:kmalloc/kfree用于划分和回收内核空间低区内存的方法。改组方法没有直接通过伙伴系统进行内存的划分,通过slab算法进行分配的。同时也为每个CPU提供一个阵列缓存,用于提高分配效率。下面对改组函数进行源码级的分析。内存分配static inline void *kmalloc(size_t ...
阅读全文
摘要:最近在使用filp_open打开文件时遇到到一个问题,当打开一个并不存在的文件时,filp_open返回值值为0xfffffffe,而并不是0(NULL),这是因为内核对返回指针的函数做了特殊处理。内核中的函数常常返回指针,通常如果调用出错,会返回NULL空指针,但linux做了更精妙的处理,能够通...
阅读全文
摘要:#defineclass_create(owner,name)\({\ staticstructlock_class_key__key;\ __class_create(owner,name,&__key);\})扩展阅读class_create为该设备创建一个class,再为每个设备调用class...
阅读全文
摘要:1. 字符设备结构体 内核中所有已分配的字符设备编号都记录在一个名为 chrdevs 散列表里。该散列表中的每一个元素是一个 char_device_struct 结构,它的定义如下: static struct char_device_struct { struct char_device_str
阅读全文
摘要:2.6.25及以后的linux内核版本废除了init_MUTEX函数新版本使用sema_init函数平台:X86 32位内核:2.6.24定义:引用staticinlinevoidinit_MUTEX(structsemaphore*sem){sema_init(sem,1);}说明:Init_MU...
阅读全文
摘要:linux-2.6.22/include/linux/cdev.hstruct cdev { struct kobject kobj; // 每个 cdev 都是一个 kobject struct module *owner; // 指向实现驱动的模块 const struct file_op...
阅读全文
摘要:版本:linux-2.6.24.4宏: MKDEV(MAJOR, MINOR); 说明: 获取设备在设备表中的位置。 MAJOR 主设备号 MINOR 次设备号内核使用的版本号说明文件: 在内核 /Documentation 目录下的 devices.txt 有说明。 一般本地保留的 MAJOR 2
阅读全文
摘要:device number(dev_t)linux driver2009-08-21 10:08:03 阅读26 评论0 字号:大中小dev_tdescription: the dev_t type in is used to hold device numbers—both the major a...
阅读全文
摘要:struct proc_dir_entry {unsigned int low_ino;unsigned short namelen;const char *name;mode_t mode;nlink_t nlink;uid_t uid;gid_t gid;loff_t size;const st...
阅读全文
摘要:kmalloc和vmalloc是分配的是内核的内存,malloc分配的是用户的内存kmalloc保证分配的内存在物理上是连续的,vmalloc保证的是在虚拟地址空间上的连续kmalloc能分配的大小有限,vmalloc和malloc能分配的大小相对较大内存只有在要被DMA访问的时候才需要物理上连续(
阅读全文
摘要:1、struct inode──字符设备驱动相关的重要结构介绍内核中用inode结构表示具体的文件,而用file结构表示打开的文件描述符。Linux2.6.27内核中,inode结构体具体定义如下:struct inode{struct hlist_node i_hash;struct list_h...
阅读全文
摘要:1./proc 文件系统概述 /proc 文件系统是由软件创建,被内核用来向外界报告信息的一个文件系统。/proc 下面的每一个文件都和一个内核函数相关联,当文件的被读取时,与之对应的内核函数用于产生文件的内容。我们已经见到了很多这样的文件,例如,/proc/modules 总是返回当前内核中加载的...
阅读全文
浙公网安备 33010602011771号