原创 BearPi-4G少端口問題

移遠的BearPi-4G在win7和win8.1上會少一個通信端口,這會導致無法查看helloworld示例的效果,先解決如下: 找到那個未被識別的通信端口 選擇手動安裝驅動程序 從已安裝的驅動中選擇 從端口類別中找到移遠驅動中的ZTE驅

原创 吉林大學單片機實驗課實驗九——超聲波測距

  本次實驗不在教學要求裏,是最後一次進實驗室寫的,我記得可以測出距離,但是結果就不是那麼準確了,實驗時間有限,所以也沒繼續調試,可能是參數不對(比如音速的大小),這就無從得知了。   下面主要說說測距的原理——就是聽回聲,舉個例子,你對

原创 ZeroOS—附錄—gdb聯合qemu調試內核

gdb基本使用 仔細想了想,雖有雄心壯志,但我還是決定不重複造輪子了(主要是忘得差不多了),還是分享大佬文章先:文章傳送門 gdb聯合qemu的基本使用 在掌握了gdb基本調試技巧後,接着我們要聯合qemu調試內核,雖然專門寫了這篇文章介

原创 ZeroOS—附錄—ZeroOS環境配置

編程環境選擇 對於編程環境就一句話:憋問,問就是Linux。倒不是說在Windows下不能編譯運行這個項目,只是配置環境很麻煩,要搞明白我們是來學習寫內核而不是來折騰配置的,所以直接選Linux就最簡單了。選哪個發行版都無所謂,我自己用的

原创 ZeroOS—第1章—HelloWorld(下)

圖形還是文本 在顯示HelloWorld前我們需要先確定顯示的模式(方式),目前就分爲圖形顯示模式和文本顯示模式吧。本質上來講這兩種方式是相同的,都是以像素點(點陣)來顯示的,但是從實現方式來講是不同的,圖形模式可顯示的內容更豐富(只要你

原创 ZeroOS—第2章—內存管理模塊(1)

IA32內存管理結構簡介 內存管理模塊是硬件相關的,所以在編寫內存管理模塊前,我們需要了解我們編寫內存管理代碼所基於的硬件信息——IA32內存管理機制,這裏涉及到的概念有虛擬地址、線性地址、物理地址、分段機制、分頁機制和段頁機制。這篇文章

原创 ZeroOS—第0章—簡要介紹

寫在前面 頭次開始寫一個系列的博客,首先希望我能高質量的完成它,同時也希望各位大佬在閱讀的時候給出寶貴的意見,如果有任何不爽可以輕噴但最好不噴,萌新在此感謝各位了。 ZeroOS是個什麼東西 顧名思義,這是一個操作系統,暫且這麼稱呼它吧,

原创 ZeroOS—附錄—gcc編譯鏈接過程

編譯鏈接過程 關於編譯鏈接過程的文章其實有很多,我就不重複造輪子了,直接分享一位大佬的文章作爲開頭了:文章傳送門 編譯的補充 看完大佬的文章後應該對編譯連接用戶程序的過程有了一個較爲完整的認識,但是咧,咱們不是編寫用戶程序而是編寫內核程序

原创 ZeroOS—第1章—HelloWorld(上)

HelloWorld保平安 作爲一名合格的BUG作者,每當踏入一個新的領域時,親手完成一個HelloWorld項目是必不可少的,既可以瞭解程序基本結構,又可以給予入坑的鼓勵,還可以向上天祈福代碼永無BUG,,,編不下去了,咱們進入正題。

原创 吉林大學單片機實驗課實驗八——溫度測量與控制

  本次實驗主要是掌握DS8B20的使用方法、單總線的數據傳輸方式和PID控制方式,主要說說這個PID,通俗來講就是如果目標值和當前值差的越多,那麼本次調整的步長就越大,我記得貌似就是這樣的,不對的話請斧正。直接貼代碼(原創文章,轉載請註

原创 吉林大學單片機實驗課實驗六——直流電機脈寬調製調速

本次實驗比較簡單,主要問題不在硬件,而是PWM的控制思想,簡單來說就是開關閉合的時間越久,電動機轉的就越快,這個原理很好理解吧,開關閉合就加速(其實不是,直流電機速度有上限),開關斷開就是靠慣性轉動,那轉的最快就是一直閉合,轉的最慢就是一

原创 吉林大學單片機實驗課實驗五——重量測量

  主要數模轉換和點陣液晶屏顯示屏,距離上次更新時間有點久,今天把所有的實驗全部更新完,實話說啊,這種不加註釋的代碼,雖然每個命令都是我親手寫的,但是隔了這麼久,第一眼看我也是有點懵的,所以從這篇教程開始,主要就是貼代碼了。 #incl