原创 關於mmu使用多級頁表爲什麼省空間的分析

Q: 爲什麼使用多級頁表能省內存? A:  首先考慮一級頁表的情況。 內存虛擬空間是0~4G 按4K一頁的方式分頁。 那麼需要總共1024 * 1024個頁表項, 即1M個頁表項 其中每個頁表項爲32位整數。 爲什麼?? 想想裏面需要存放

原创 記錄些有用的git命令

貼兩個不錯的教程. https://github.com/pcottle/learnGitBranching https://learngitbranching.js.org/ 圖解: https://segmentfault.com/a

原创 關於ioctl的cmd值如何解析...

遇到ioctl內核中未定義,  打印log [ 739.108300] No such IOCTL, cmd is -1071625723   cmd is -1071625723 這個cmd如何解釋呢...? ioctl原型 SYN

原创 Linux調度器

https://www.cnblogs.com/tolimit/p/4303052.html https://mp.weixin.qq.com/s/W68WIT4AGdS7xJSecnHYcQ https://mp.weixin.qq.c

原创 關於vb2_buffer的操作描述

以vivi驅動爲例, vb2_buffer爲vivi設備內部使用的幀緩存描述, (用戶態用v4l2_buffer來描述)   在vb2_queue隊列中, 有兩個隊列, 分別爲queued_list和done_list, 前者用於存放用戶

原创 udev rules sample

touch /etc/udev/rules.d/51-blk-dev.rules ACTION=="add", KERNEL=="sd[a-z][0-9]", RUN+="/bin/mkdir -p /mnt/%k" ACTION=="

原创 關於yuv的色彩

https://multimedia.cx/eggs/yuv-and-rgb/ 挖坑...

原创 mmu頁表機制

給個鏈接 https://www.cnblogs.com/arnoldlu/p/8087022.html 1. 段, 大頁, 小頁, 極小頁的劃分      4種映射長度:段(1MB)、大頁(64KB)、小頁(4KB)、極小頁(1KB)。

原创 vivi驅動中的等待隊列wait_queue

內核有很多隊列, 如等待隊列, 工作隊列等等。   所有的隊列都是利用list機制做成一個雙向鏈表/隊列。 和內核種的一些模塊自己使用的隊列其實大同小異。 如usb的端點隊列,  v4l2中vb2_buffer使用的queued_list

原创 關於vb2_buffer_done

直接貼代碼, 907 void vb2_buffer_done(struct vb2_buffer *vb, enum vb2_buffer_state state)

原创 vivi驅動編寫(一)

vivi 驅動, 即Virtual Video驅動。 基於v4l2驅動框架。 最新版本支持例如 capture(類似攝像頭, 採集, 解碼等) - 最終通過/dev/videoX設備獲得yuv圖像數據。 看協議描述: Video capt

原创 記錄些等待隊列(wait_queue)的使用

貼幾篇文章先... https://blog.csdn.net/hs794502825/article/details/8959459 https://blog.csdn.net/lizuobin2/article/details/517

原创 搶佔(PREEMPTION)是如何發生的

http://linuxperf.com/?p=211 挖坑...

原创 v4l2 vivi驅動分析

v4l2驅動框架相對還是挺複雜的,   最好的參考例子有 v4l2-pci-skeleton.c 和 vivi (Virtual Video) 其中vivi在最新的Linux 4.xx版本也變得非常複雜。 所以採用Linux-3.16.7

原创 內核中的list相關

linux內核有很多優秀的代碼... 比如list   這是一個雙向鏈表。 先貼個好文章... https://myao0730.blogspot.com/2016/12/linux.html   先看下list_head的結構體, /