dylanin1999

导航

2022年8月13日 #

spinlock、mutex的使用与休眠

摘要: 最近在工作中遇到了一些关于锁的问题,遇到了一些困扰,记录一下 spinlock 自旋锁,会一直阻塞,直到能够获取到锁位置。 mutex 互斥量,如果拿不到锁,就会进行休眠,引起进程调度。 但是我们在做内核驱动的时候,总会遇到在某些场景下,不能使用某些锁的情况... 阅读全文

posted @ 2022-08-13 16:15 DylanYeung 阅读(146) 评论(0) 推荐(0) 编辑

Linux文件系统与设备文件

摘要: 打开 int open(const char *pathname, int flags);int open(const char *pathname, int flags, mode_t mode); 读写 int read(int fd, const ... 阅读全文

posted @ 2022-08-13 16:15 DylanYeung 阅读(30) 评论(0) 推荐(0) 编辑

Linux内核模块

摘要: 目录 模块(Module) 加载模块 卸载模块 查看模块信息 Linux内核模块程序结构 1、模块加载函数 2、模块卸载函数 3、模块许可证声明 4、模块参数(可选) 5、模块导出符号(可选) 6、模块作者等信息声明(可选) 模块使用计数 7、模块的编译 模块... 阅读全文

posted @ 2022-08-13 16:15 DylanYeung 阅读(107) 评论(0) 推荐(0) 编辑

Linux异步通知

摘要: 异步通知 作用:一旦设备就绪, 则主动通知应用程序, 这样应用程序根本就不需要查询设备状态, 这一点非常类似于硬件上“中断”的概念, 比较准确的称谓是“信号驱动的异步I/O”。 阻塞I/O意味着一直等待设备可访问后再访问, 非阻塞I/O中使用poll() ... 阅读全文

posted @ 2022-08-13 16:15 DylanYeung 阅读(83) 评论(0) 推荐(0) 编辑

Linux 内存与I/O访问

摘要: 目录 内存空间与I/O空间 内存管理单元(MMU) TLB(Translation Lookaside Buffer) TTW(Translation Table walk) Linux内存管理 内存存取 内核空间内存动态申请 内存池 I/O 访问 I/O 内... 阅读全文

posted @ 2022-08-13 16:15 DylanYeung 阅读(473) 评论(0) 推荐(0) 编辑

Linux定时器

摘要: 目录 timer_list结构体: 初始化定时器以及初始化绑定参数 增加定时器 删除定时器 修改定时器 内核延时 短延迟 长延迟 睡着延迟 ​​​​​​​ 在Linux设备驱动编程中, 可以利用Linux内核中提供的一组函数和数据结构来完成定时触发工作或者完成... 阅读全文

posted @ 2022-08-13 16:15 DylanYeung 阅读(349) 评论(0) 推荐(0) 编辑

Linux中断

摘要: 目录 中断 根据中断来源 内部中断 外部中断 根据中断是否可屏蔽 可屏蔽中断 不可屏蔽中断 中断入口跳转方法 向量中断 非向量中断 GIC(Generic Interrupt Controller) SGI(Software Generated Interru... 阅读全文

posted @ 2022-08-13 16:15 DylanYeung 阅读(369) 评论(0) 推荐(0) 编辑

Linux的并发控制

摘要: 目录 中断屏蔽 原子操作 自旋锁 信号量 互斥体(Mutex) 访问共享资源的代码区域称为临界区(Critical Sections) 解决编译乱序问题, 需要通过barrier() 编译屏障进行 #define barrier() __asm__ __vol... 阅读全文

posted @ 2022-08-13 16:15 DylanYeung 阅读(108) 评论(0) 推荐(0) 编辑

Android笔记:《第一行代码》DataSupport被弃用问题

摘要: 在学习《第一行代码》第二版的时候,发现DataSupport类不再支持了,找了一些资料,发现可以替代的方案 解决途径 先附上LitePal项目的使用文档:https://github.com/LitePalFramework/LitePal ,现在学习的资料一... 阅读全文

posted @ 2022-08-13 16:15 DylanYeung 阅读(41) 评论(0) 推荐(0) 编辑

解决conda install时出现 failed with initial frozen solve. Retrying with flexible solve 的问题

摘要: 现象:使用conda install命令安装python包时,一直出现如下的报错信息 failed with initial frozen solve. Retrying with flexible solve. 原因分析:其实我并没有找到确切原因,但是结果资... 阅读全文

posted @ 2022-08-13 16:15 DylanYeung 阅读(1956) 评论(0) 推荐(0) 编辑