原创 關於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的結構體, /