目標:根據USB驅動分析和上節的USB鼠標驅動,編寫鍵盤驅動,並測試。 一、原理分析 1. 首先通過打印usb_buf[i]中的8字節數據,看一下按鍵按下之后會接收到什么。 1)通過按完所有鍵盤按鍵打印的結果可知,有8個按鍵會打印在usb_buf[0]里,即: ctrl左鍵 ...
目錄 一 前景回顧 二 實現鍵盤輸入的中斷函數 三 編寫鍵盤驅動 四 實現環形輸入緩沖區 五 運行測試 一 前景回顧 上一回我們完成了鎖的實現,並且利用鎖優化了終端輸出函數。這一回我們來實現鍵盤的輸入,為后面的用戶交互功能打好基礎。 二 實現鍵盤輸入的中斷函數 首先我們需要知道鍵盤是屬於外設,所以對應的中斷屬於外部中斷。在講中斷那一章節時,我們知道了外部中斷的處理流程,不過對於鍵盤的輸入中斷,還需 ...
2022-07-11 21:39 0 1449 推薦指數:
目標:根據USB驅動分析和上節的USB鼠標驅動,編寫鍵盤驅動,並測試。 一、原理分析 1. 首先通過打印usb_buf[i]中的8字節數據,看一下按鍵按下之后會接收到什么。 1)通過按完所有鍵盤按鍵打印的結果可知,有8個按鍵會打印在usb_buf[0]里,即: ctrl左鍵 ...
目錄 一、前景回顧 二、位圖bitmap及函數實現 三、內存池划分 四、運行 一、前景回顧 前面我們已經花了一個回合來完善了一下我們的系統,包括增加了makefile,ASSERT以及一些常見的字符串操作函數。關於makefile,還是我以前學習Linux系統編程的時候學了一點點 ...
目錄 一、前景回顧 二、任務切換相關 三、實現TSS 四、運行測試 一、前景回顧 在上一回我們已經實現了鍵盤的驅動編寫和環形緩沖區的實現,現在讓我們來想這么一個問題: 一直以來我們的程序都在最高特權級0下工作,這意味着任何程序都和操作系統平起平坐,可以改動任何資源。如果不改 ...
目錄 一、前景回顧 二、線程的實現 三、線程的切換 四、運行測試 一、前景回顧 上一回我們實現了內存管理系統,說實話代碼還是比較多,看起來還是比較頭疼的,不過為了知識這都是小事。這一節終於可以來實現我們的線程了,以前學操作系統的時候,聽到的最多的就是什么線程,進程等,這一回我們來自 ...
目錄 一、前景回顧 二、鎖的實現 三、使用鎖實現console函數 四、運行測試 一、前景回顧 上回我們實現了多線程,並且最后做了一個小小的實驗,不過有一點小瑕疵。 可以 ...
一、到目前為止的程序流程圖 為了讓大家清楚目前的程序進度,畫了到目前為止的程序流程圖,如下。(紅色部分就是我們今天要實現的) 二、簡單打通鍵盤中斷 既然要打通鍵盤中斷,那必然需要你回顧一下 【自制操作系統08】中斷 所講述的外部中斷的流程,下面我把圖貼上。 如圖所示 ...
自制操作系統Antz day09——實現內核 (下) 實現圖形化界面 https://www.cnblogs.com/LexMoon/p/antz09.html Antz系統更新地址: https://www.cnblogs.com/LexMoon/category/1262287.html ...
簡介 本文介紹USB驅動程序編寫的流程,分析一個鍵盤的USB程序,基於linux-2.6.39 USB驅動概要 分層 主機層面的USB驅動的整體架構可以分成4層,自頂到下依次是 1、USB設備驅動:本文主要講述的內容,利用USB核心提供的編程接口編寫具體硬件設備與系統的交互邏輯 ...