上一页 1 ··· 5 6 7 8 9 10 11 12 下一页

2018年9月15日

设备树编译工具DTC

摘要: DTC将.dts编译为.dtb的工具。DTC的源代码在目录scripts/dtc目录中 内核使能了设备树。编译内核的时候DTC工具会自动被编译出来,对应于 也可以单独安装DTC 在linux内核的arch/arm/boot/Makefile中。定义了哪些dtb文件会被编译出来,如下 在linux下, 阅读全文

posted @ 2018-09-15 23:57 紫枫术河 阅读(5021) 评论(0) 推荐(1)

2018年9月10日

内存申请 GFP_KERNEL GFP_ATOMIC

摘要: 在 Linux 内核空间申请内存涉及的函数主要包括 kmalloc()、_ _get_free_pages()和vmalloc()等 使用 GFP_ KERNEL 标志申请内存时,若暂时不能满足,则进程会睡眠等待页,即会引起阻塞,因此不能在中断上下文或持有自旋锁的时候使用GFP_KERNE 申请内存 阅读全文

posted @ 2018-09-10 17:42 紫枫术河 阅读(6204) 评论(0) 推荐(0)

中断

摘要: 1.进程上下文: 2.中断上下文: 3、中断上半部、下半部 三.为什么要进行不同之间状态的切换 在现在操作系统中,内核功能模块运行在内核空间,而应用程序运行在用户空间。现代的CPU都具有不同的操作模式,代表不同的级别,不同的级别具有不同的功能,其所拥有的资源也不同;在较低的级别中将禁止使用某些处理器 阅读全文

posted @ 2018-09-10 15:31 紫枫术河 阅读(332) 评论(0) 推荐(0)

select机制的原理

摘要: 应用程序中最广泛用到的是 BSD UNIX 中引入的 select()系统调用,其原型如下 其中 readfds、writefds、exceptfds 分别是被 select()监视的读、写和异常处理的文件描述符集合,numfds 的值是需要检查的号码最高的文件描述符加 1。timeout 参数是一 阅读全文

posted @ 2018-09-10 13:07 紫枫术河 阅读(1875) 评论(0) 推荐(0)

并发与竞态

摘要: 并发(concurrency)指的是多个执行单元同时、并行被执行,而并发的执行单元对共享资源(硬件资源和软件上的全局变量、静态变量等)的访问则很容易导致竞态(race conditions) 一、中断(硬中断、软中断、Tasklet、底半部)与进程之间 解决竞态问题的途径是保证对共享资源的互斥访问  阅读全文

posted @ 2018-09-10 10:18 紫枫术河 阅读(990) 评论(0) 推荐(0)

2018年9月8日

mystrcat

摘要: #include char * strcat(char *strDest,const char * strSrc) { char *r=strDest; char *p=strDest; while(*p++ != '\0'); p--; while(*strSrc != '\0') { *p++ = *strSrc++; } *p = '\0'; return r; } int m... 阅读全文

posted @ 2018-09-08 14:17 紫枫术河 阅读(163) 评论(0) 推荐(0)

mystrlen

摘要: #include int mystrlen(const char *str) { int n=0; const char *p = str; while(*p++ != '\0') { n++; } return n; } int main() { char str1[100] = {'\0'}; int ret = 0; puts("please intput... 阅读全文

posted @ 2018-09-08 14:17 紫枫术河 阅读(296) 评论(0) 推荐(0)

mystrcmp

摘要: #include int mystrcmp(const char *str1,const char * str2) { int ret = 0; while(1) { ret = *str1 - *str2; if((ret != 0)||(*str1 == '\0')) { break; } str1++; str2++; } return ret... 阅读全文

posted @ 2018-09-08 14:15 紫枫术河 阅读(345) 评论(0) 推荐(0)

指针理解

摘要: #include<stdio.h>#include<math.h> int main(){ int sum1[10]={1,2,3,4,5,6,7,8,9,10}; int sum2[2][3]={{1,2,3},{4,5,6}}; int *p1 = sum1; int (*p2)[3] = su 阅读全文

posted @ 2018-09-08 14:14 紫枫术河 阅读(187) 评论(0) 推荐(0)

vi使用

摘要: 查看文件1、cat -s 合并多项空行为一行 -b 显示行号2、nl 显示行号3、head 显示文件前几行4、tail 显示文件后几行 创建文件1、touch a.c 如果文件已经存在,就更新时间戳 创建文件夹1、mkdir /work/lsh/jn/001 -p -p 如果子文件夹的父亲不存在,就 阅读全文

posted @ 2018-09-08 14:13 紫枫术河 阅读(120) 评论(0) 推荐(0)

上一页 1 ··· 5 6 7 8 9 10 11 12 下一页

导航