- 博客(10)
- 资源 (7)
- 收藏
- 关注
原创 linux设备驱动—高级字符驱动(上)
在之前, 我们介绍了简单的字符设备驱动,实现了简单的open, close, read, write等驱动提供的基本功能。但是大部分驱动程序还会提供更多的功能。本章我们会介绍ioctrl 系统调用,和用户空间保持同步的几种途径。 一. Ioctl 1. 函数原型 调用 通过设备驱动程序执行各中类型的硬件控制。用户空间,ioctl 系统调用int ioctl(int f...
2018-04-27 15:55:42 212
转载 Shell脚本报错:-bash: ./switch.sh: /bin/bash^M: bad interpreter: No such file or directory
在学习shell中测试case参数命令代码如下1 #!/bin/bash2 #switch测试3 case $1 in4 start)5 echo 'start'6 ;;7 stop)8 echo 'stop'9 ;;10 esac在给当前shell脚本赋予了执行权限...
2018-04-27 11:18:12 311
原创 linux设备驱动:并发和竞态
综述首先什么是并发与竟态呢?并发(concurrency)指的是多个执行单元同时、并行被执行。而并发的执行单元对共享资源(硬件资源和软件上的全局、静态变量)的访问则容易导致竞态(race conditions)。因此再设计自己的驱动程序时,第一个要记住的原则是,只要可能,避免资源的共享。这种思想最明显的应用就是避免使用全局变量。竞态通常作为可能导致并发和竟态的情况有:SMP(Symmet...
2018-03-20 23:28:02 326
转载 关于内存对齐的那些事
问题现象:压缩yuv数据为jpeg 存放在内存中, 发现起始地址的更改会出现数据写不进去。解决:判断起始地址能否被16(平台16字节对齐)整除,如果不行,填充数据块, 偏移起始地址。 Wrote by mutouyun. (http://darkc.at/about-data-structure-ali...
2018-03-20 22:27:34 479
转载 linux设备驱动:从如何定位oops的代码行谈驱动调试方法
在普通的c应用程序中,我们经常使用printf来输出信息,或者使用gdb来调试程序,那么驱动程序如何调试呢?我们知道在调试程序时经常遇到的问题就是野指针或者数组越界带来的问题,在应用程序中运行这种程序就会报segmentation fault的错误,而由于驱动程序的特殊性,出现此类情况后往往会直接造成系统宕机,并会抛出oops信息。那么我们如何来分析oops信息呢,甚至根据oops信息来定位具体的...
2018-03-12 00:14:32 685
原创 c语言 可变参数 三个点 ...
1.函数中使用可变参数表C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为: int printf( const char* format, …); 它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的(用三个点“…”做参数占位符),实际调用时可以有以下的形式: printf(“%d”,i); printf(“%s”,s); printf(
2016-07-29 15:30:20 2808
转载 strtok、strtok_r 字符串分割函数
1.一个应用实例typedef struct person{ char name[25]; char sex[10]; char age[4]; }Person;需从字符串 char buffer[INFO_MAX_SZ]=”Fred male 25,John male 62,Anna female 16”; 中提取出人名、性别以及年龄。一种可行的思路是设置两
2016-07-25 23:56:42 494
原创 多路复用之select的用法
select API表头文件#include<sys/time.h>#include<sys/types.h>#include<unistd.h>定义函数int select(int n,fd_set * readfds,fd_set * writefds,fd_set * exceptfds,struct timeval * timeout);函数说明select()用来等待文件描述词状态
2016-04-17 13:30:28 460
转载 source insight配置(自动排版,多标签显示,注释,删除中文乱码)
一.下载ASTYLE_2.0(自动排版) 1,http://pan.baidu.com/s/1nu5Apdv 2,打开你的SourceInsight, 选择菜单“Options–>Custom Commands–>Add”, 输入Artistic Style(可以随便输入一个名字)。 3,Run中输入: “”D:\Source insight\ASTYLE_2.0\AStyle\bin\ASt
2016-03-15 23:24:49 7701
原创 total comander的设置
一.TC的配置(方便浏览)二.wincmd.ini(dirmenu自行设置)[Configuration]BreadcrumbDelayButton=-500Noreread=\DirBrackets=0RenameSelOnlyName=1SortUpper=2AlwaysToRoot=1StartupScreen=0firstmnu=14
2016-03-15 22:32:56 1797
文件夹加密工具
2017-11-23
autohotkey
2016-05-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人