其他
文章平均质量分 77
其他内容
mingzi_123
这个作者很懒,什么都没留下…
展开
-
epoll函数
epoll函数 int epoll_create(int size); 调用epoll_create方法创建一个epoll的句柄。 当创建好epoll句柄后,它就会占用一个fd值。在使用完epoll后,必须调用close函数进行关闭,否则可能导致fd被耗尽。 int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);...原创 2019-10-10 14:59:53 · 254 阅读 · 0 评论 -
select用法
一、 原理:先构造一张有关描述符的表,然后调用一个函数。当这些文件描述符中的一个或多个已准备好进行I/O时函数才返回。 函数返回时告诉进程那个描述符已就绪,可以进行I/O操作。 int select(int maxfd, fd_set *read_fds, fd_set *write_fds, fd_set *except_fds, struct timeval *timeout); 参数: ...原创 2019-10-10 12:50:39 · 267 阅读 · 0 评论 -
linux下devicetree中常用的of函数
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/EmSoftEn/article/details/45565401 ———————————————— 版权声明:本文为CSDN博主「EmSoftEn」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原...转载 2019-09-24 13:46:45 · 186 阅读 · 0 评论 -
TFTP和nfs服务器的安装与测试
tftp服务器的安装与测试 记录一下两个服务器的安装过程。 sudo dpkg -s tftpd-hpa来检测是否安装TFTP服务器,有的情况如下图: 没有则用sudo apt-get install tftpd-hpa进行安装, 再用sudo vi /etc/default/tftpd-hpa 修改tftp服务器配置文件为 TFTP_USERNAME=“tftp” TFTP_DIREC...原创 2019-09-10 12:12:48 · 377 阅读 · 0 评论 -
学习笔记之中断下半部
中断下半部:由于中断处理力求时间短,所以引出了下半部。 tasklet工作在中断上下文,处理中不允许休眠,而workqueue工作在进程上下文,这是不同点。 1,softirq: 处理比较快,但是内核级别的机制,需要修改整个内核源码,不推荐也不常用 2,tasklet: 内部实现实际调用了softirq 3, workqueue: 工作队列 1,tasklet: struct tasklet_s...原创 2019-09-20 21:11:05 · 111 阅读 · 0 评论 -
学习笔记之多路复用
驱动之多路复用、异步信号通知 poll的实现 1、接口 1, 需要打开多个文件(多个设备) 2, 利用poll来实现监控fd的读,写,出错 #include <poll.h> int poll(struct pollfd *fds, nfds_t nfds, int timeout); 参数1: 表示多个文件描述符集合 struct pollfd描述的是文件描述符到信...原创 2019-09-20 21:03:04 · 196 阅读 · 0 评论 -
学习笔记之编译错误记录
1、C语言错误:expected declaration or statement at end of input 可能错误: 某一个函数或者变量没有在使用之前声明。 某个地方少了个括号。原创 2019-09-20 18:56:23 · 134 阅读 · 0 评论 -
学习笔记之字符设备驱动框架
函数接口: 申请设备号 int register_chrdev(unsigned int major, const char * name, const struct file_operations * fops) 参数1:主设备号 设备号(32bit--dev_t)==主设备号(12bit) + 次设备号(20bit) 主设备号:表示一类设备--camera 次设备号: 表示一...原创 2019-09-20 11:51:53 · 120 阅读 · 0 评论 -
学习笔记之驱动参数传递&符号导出
驱动: 1、参数传递: module_param(name, type, perm) 参数1:表示参数到名字,比如myname, myvalue 参数2:参数到类型, charp, int 参数3: /sys/modules/表示文件到权限: 0666 用法: module_param(myvalue, int, 0666); module_param(myname, charp, S_IRU...原创 2019-09-13 21:08:07 · 160 阅读 · 0 评论 -
学习笔记之uboot启动
简单记录一下uboot的启动流程,认识不深,以后逐渐添加细节并修改。 uboot的大体启动流程: 首先板子在上电之后,CPU会从nandflash或者norflash读汇编指令,这段儿汇编代码主要功能是初始化最基本的硬件和自搬移到内存,硬件包括时钟、串口、内存等基本硬件,同时为考虑,会关闭中断、看门狗、mmu等,关掉中断,避免中断打断带来的保存返回的问题。 关掉MMU,因为u-boot软件是硬件实...原创 2019-09-11 22:27:58 · 177 阅读 · 0 评论 -
学习笔记之消息队列
消息队列 就是一些消息的列表,用户可以在消息队列中添加消息和读取消息等,由“队列ID”来标识。 一、函数接口 1、打开或创建消息队列 int msgget(key_t key, int msgflg); 成功时返回消息队列的id,失败时返回EOF key 和消息队列关联的key IPC_PRIVATE 或 ftok msgflg 标志位 IPC_CREAT|0666 2、发送消息 int ...原创 2019-08-09 17:39:50 · 180 阅读 · 0 评论 -
学习笔记之共享内存
共享内存 共享内存是进程间通信方式中效率最高的一种,因为进程可以对内存进行直接读写,而没有复制等其他操作,共享内存在内核中被创建,用时映射在用户空间,在用户空间操作。由于多个进程可同时访问共享内存,因此需要同步和互斥机制配合使用 一、函数接口 申请key值,除创建共享内存以外的进程需要通过key值来获得内存的ID值,当key值为IPC_PRIVATE(0)时,共享内存为私有,只有当前进程可以访问。...原创 2019-08-08 17:28:50 · 264 阅读 · 0 评论