原创 RTOS-多優先級的線程切換機制粗解

本文以rtthread爲例進行講解. Rtthread是一個實時多任務嵌入式系統,支持多優先級多任務,從而最大限度的壓榨cpu的性能。理解多優先級線程切換之前先理解兩個名詞:線程就緒優先級組rt_thread_ready_pr i

原创 雙向鏈表和單向鏈表

概念: 雙向鏈表也叫雙鏈表,是鏈表的一種,是在操作系統中常用的數據結構,它的每個數據結點中都有兩個指針,分別指向直接後繼和直接前驅,其頭指針 head 是唯一確定的。所以,從雙向鏈表中的任意一個結點開始,都可以很方便地訪問它的前驅

原创 c語言之函數指針及指針函數

用最少的字來闡述函數指針與指針函數之間的本質區別及用法。使用過程中,萬變不離其宗,只會在返回的類型,參數類型上做文章,本質不便。 概念: 指針函數本質是一個函數,只是函數的返回值是一個指針。 函數指針本質是一個指針變量,指向函數的指針包含

原创 射頻基礎之阻抗匹配與Smith圖

基本概念 信號傳輸過程中負載阻抗和信源內阻抗之間的特定配合關係。一件器材的輸出阻抗和所連接的負載阻抗之間所應滿足的某種關係,以免接上負載後對器材本身的工作狀態產生明顯的影響。對電子設備互連來說,例如信號源連放大器,前級連後級,只要後一級的

原创 LINUX之文件系統目錄結構

初步接觸linux時,一般都是從有界面的Ubuntu(或其他的系統)開始瞭解的,當然不管是有界面或者是無界面,其核心都是一樣的-linux內核。其文件系統的目錄結構也是一樣的,就像用windows一樣,你得知道整個電腦有幾個盤符,每個盤符

原创 LINUX之靜態庫共享庫

linux下文件的類型是不依賴於其後綴名的,但一般來講: .o,是目標文件,相當於windows中的.obj文件 .so 爲共享庫,是shared object,用於動態連接的,和dll差不多.a爲靜態庫,是好多個.o合在一起,用於靜態連

原创 聊聊C語言那些堆和棧的道道

一、預備知識—程序的內存分配    一個由C/C++編譯的程序佔用的內存分爲以下幾個部分    1、棧區(stack)—   由編譯器自動分配釋放   ,存放函數的參數值,局部變量的值等。其   

原创 LINUX之inode理解

本文將主要從9個方面來對inode進行解釋: 一、inode是什麼? 理解inode,要從文件儲存說起。 文件儲存在硬盤上,硬盤的最小存儲單位叫做"扇區"(Sector)。每個扇區儲存512字節(相當於0.5KB)。   操作系統讀取硬盤

原创 淺析USB 枚舉過程

    在我們的實際工作中,不管是硬件設計調試,如STM32平臺的硬件,還是軟件調試,如LINUX的usb驅動調試,USB都是一個必須掌握的通訊方式。USB 的整個架構是很龐大的,但對於普通的開發人員需要掌握的就很少。    學習USB通

原创 聊聊c語言結構體那些道道

在c語言的編程中,結構體的使用頻率是非常高的,那到底結構體是什麼?表現形式是什麼?爲什麼要用結構體?怎麼用?下面就簡單的解答一下。 結構體定義:結構體(struct)是由一系列具有相同類型或不同類型的數據構成的數據集合。 結構體的形式

原创 聊聊串級PID的那些道道

一:概念普及:1)單級pid控制:PID控制器(比例-積分-微分控制器)是一個在工業控制應用中常見的反饋迴路部件,由比例單元P、積分單元I和微分單元D組成。PID控制的基礎是比例控制;積分控制可消除穩態誤差,但可能增加超調;微分控制可加快

原创 LINUX之cdev_init函數

內核中每個字符設備都對應一個 cdev 結構的變量,下面是它的定義: Linux-2.6.22/include/linux/cdev.hstruct cdev {    struct kobject kobj;          //

原创 LINUX之隨機數的應用

在 Linux下取隨機數,當然可以簡單的用rand函數,不過要注意的是一定要設置好種子,否則僞隨機數就會變成非常僞的隨機數。設置種子,一般就用 time函數返回當前時間即可。一般來講,這樣的做法基本上就可以了,因爲雖然我們用的是隨機數,

原创 結構體指針示例解析

c語言之結構體指針返回值 [聲明][6]:個人知識有限,所寫內容純屬個人理解,有錯誤的地方歡迎大家指出,一塊學習改正。 [餐前小敘][6]:“學習”C語言已經很長時間了,從大二開始接觸編程,之後開始參加各種各樣的電子競賽、智能車大賽,直

原创 LINUX之用戶態和內核態區別

http://blog.csdn.net/fatsandwich/article/details/2131707# http://jakielong.iteye.com/blog/771663 當一個任務(進程)執行系統調用而陷入內核代