摘要: 下面的系列文章记录了如何使用一块linux开发扳和一块OLED屏幕实现视频的播放: 项目介绍 为OLED屏幕开发I2C驱动 使用cuda编程加速视频处理 这篇文章主要对项目的实现做整体的介绍, 包括硬件的需求, 最终实现的视频播放效果, 以及软件的实现思路. 1). 硬件需求 beaglebone 阅读全文
posted @ 2023-09-10 22:54 编程这点事儿 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 下面的系列文章记录了如何使用一块linux开发扳和一块OLED屏幕实现视频的播放: 项目介绍 为OLED屏幕开发I2C驱动 使用cuda编程加速视频处理 这是此系列文章的第2篇, 主要总结和记录一个I2C从设备的驱动, 在linux内核中如何实现, 如何给用户态的程序暴露合适的接口, 让用户态有机会 阅读全文
posted @ 2023-09-10 11:51 编程这点事儿 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 下面的系列文章记录了如何使用一块linux开发扳和一块OLED屏幕实现视频的播放: 项目介绍 为OLED屏幕开发I2C驱动 使用cuda编程加速视频处理 这是此系列文章的第3篇, 主要总结和记录了如何使用cuda编程释放GPU的算力. 在此之前尝试过使用python调用opencv直接处理视频数据, 阅读全文
posted @ 2023-09-08 16:01 编程这点事儿 阅读(423) 评论(0) 推荐(0) 编辑
摘要: linux内核为用户态进程提供了一组IO相关的系统调用: select/poll/epoll, 这三个系统调用功能类似, 在使用方法和性能等方面存在一些差异. 使用它们, 用户态的进程可以"监控"自己感兴趣的文件描述符, 当这些文件描述符的状态发生改变时, 比如可读或者可写了, 内核会通知进程去处理, 这里的文件描述符可以是socket, 设备文件, 管道等. 使用这组系统调用, 用户态可以实现事件循环机制, 比如redis源码中就基于此实现了自己内部使用的事件循环, 同样还有很多其他专门提供事件循环机制的开源库. 这里通过一个驱动模块实现的poll接口, 去分析内核中poll系统调用的实现原理. 主要讨论了以下3个问题: 1. 用户态进程如何使用poll系统调用? 2. 内核如何处理poll系统调用? 3. 怎样调试从进程发起poll调用到返回的过程? 阅读全文
posted @ 2023-08-25 08:46 编程这点事儿 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 之前实现的c语言项目单元测试框架cutest, 功能更新, 已上传至ubuntu ppa仓库, 方便安装使用, 文末附带视频说明. 阅读全文
posted @ 2023-08-20 13:29 编程这点事儿 阅读(144) 评论(0) 推荐(0) 编辑
摘要: ## 开篇 现在流行的开源项目经历了长时间的开发, 积累了大量的代码, 想要一行一行地阅读代码去学习开源项目, 需要的时间成本是巨大的. 所以, 我们也需要用一种高效的方式去"阅读"代码. 计算机科学发展到现在, 产生了很多高效成熟的工具, 调试器就是其中之一(扯句题外话, 那些大牛程序员似乎就是喜 阅读全文
posted @ 2023-08-08 14:30 编程这点事儿 阅读(654) 评论(0) 推荐(0) 编辑
摘要: module_init是linux内核提供的一个宏, 可以用来在编写内核模块时注册一个初始化函数, 当模块被加载的时候, 内核负责执行这个初始化函数. 在编写设备驱动程序时, 使用这个宏看起来理所应当, 没什么特别的, 但毕竟我还是一个有点追求的程序员嘛:P, 这篇文章是我学习module_init相关源码的一个记录, 主要就回答了下面的3个问题, 篇幅略长, 做好准备. 阅读全文
posted @ 2023-08-02 21:46 编程这点事儿 阅读(910) 评论(0) 推荐(0) 编辑
摘要: 1. 写在前面 之前的文章总结了使用管道进行进程间通信的方法,除了pipe和fifo,Linux内核还为我们提供了其他更高级的IPC方式,包括共享内存,消息队列,信号量等,本篇文章会通过一个具有完整逻辑功能的示例说明如何使用这些IPC方法。毕竟单纯地查手册,写代码...周而复始,这个过程还是比较枯燥 阅读全文
posted @ 2023-02-06 16:50 编程这点事儿 阅读(479) 评论(0) 推荐(0) 编辑
摘要: 1. 写在前面 linux系统内核为上层应用程序提供了多种进程间通信(IPC)的手段,适用于不同的场景,有些解决进程间数据传递的问题,另一些则解决进程间的同步问题。对于同样一种IPC机制,又有不同的API供应用程序使用,目前有POSIX IPC以及System V IPC可以为应用程序提供服务。后续 阅读全文
posted @ 2023-01-24 20:03 编程这点事儿 阅读(934) 评论(0) 推荐(1) 编辑
摘要: ## 写在前面 在开发的过程中,大多数人都需要对代码进行测试。目前对于c/c++项目,可以采用google的gtest框架,除此之外在github上搜索之后可以发现很多其他类似功能的项目。但把别人的轮子直接拿来用,终究比不过自己造一个同样功能的轮子更有成就感。作为“linux环境编程”系列文章的第一 阅读全文
posted @ 2023-01-21 21:52 编程这点事儿 阅读(637) 评论(0) 推荐(1) 编辑