原创 linux內核時間片調度實現詳解(基於ARM處理器)

(本文基於linux-4.5.3對內核公平調度之時間片相關函數主要流程做了詳細介紹,作者水平有限,難免有理解不到位、甚至不對之處,一切以實際爲準,其他細節請參考其他書籍或源碼。) 1、內核相關函數調用棧 1.1、時間片計數 (時間片計數主

原创 μCOS-II中斷處理(基於ARM處理器)

1、任務上下文 μCOS-II V2.83的任務上下文保存在任務的棧裏面,任務創建時,將任務的參數、運行地址(任務入口)、任務棧等信息保存在任務棧裏面,OS_TCB->OSTCBStkPtr指向任務棧頂(任務創建及掛起時,OS_TCB->

原创 NucleusPlus中斷處理(基於ARM處理器)

1、中斷優先級 1.1、中斷優先級表 NucleusPlus中斷優先級類似一個數組,數組的索引代表優先級,數組元素的值代表該優先級對應的中斷號,0的優先級最高,優先級彙編語言表如下(僅是按中斷號排序,移動中斷號的位置即可調整中斷的優先級)

原创 linux內核arp協議實現詳解

linux內核arp協議實現詳解   (neighbour主要用於獲取目標主機的MAC地址,記錄的是ARP表中一條記錄的信息,以下與ARP表項在一定程度上表示一個意思。由於代碼排版問題,部分註釋需要移動滾動條查看。) 1、ARP狀態轉移

原创 linux文件描述符分配實現詳解(基於ARM處理器)

1、linux內核文件相關結構體 1.1、files_struct files_struct: 進程打開文件的表結構,next_fd表示下一個可用進程描述符,並不一定真正可用,假如0-10描述符都被使用了,中間師傅3文件描述符,再打開文

原创 linux系統調用過程解析(基於ARM處理器)

1、系統調用相關代碼註釋 1.1、中斷向量 .section .vectors, "ax", %progbits __vectors_start:W(b) vector_rst ;// 系統復位中斷向量W(b) vector_und ;/

原创 Python3 pexpect自動化測試

Python3 pexpect自動化測試 1. pexpect簡介 1.1 pexpect超時異常/程序結束     不將pexpect.EOF、pexpect.TIMEOUT加入pexpect列表時,在程序運行結束或者pexpect超時

原创 ARP地址解析協議

前言     本文介紹ARP地址解析協議的主要流程及關鍵算法,tcp/ip協議詳細信息請參考機械工業出版社出版的《TCP/IP詳解》,本文部分圖片摘自該書籍。 ARP協議介紹 介紹     地址解析協議(ARP)用於實現IP地址到網絡接

原创 linux內核互斥鎖mutex實現詳解(基於ARM處理器)

linux內核互斥鎖mutex實現詳解(基於ARM處理器) 1、互斥鎖mutex結構體 count: 互斥鎖變量,0表示被佔用(已經被獲取),1表示沒有被佔用(空閒可獲取) owner: 當前獲取該鎖的任務(線程/進程),細節沒有仔細

原创 linux內核管道pipe實現詳解

linux內核管道pipe實現詳解 (文件系統暫時不是很瞭解,文件系統部分暫時不做解釋,此文僅解釋關鍵流程,系統調用部分請參考前面已經發布的文章,這裏不做展開) 1、管道系統調用(SyS_pipe) 1.1、SyS_pipe /* *

原创 linux irq中斷過程解析(基於ARM處理器)

linux irq中斷過程解析(基於ARM處理器) 1、中斷向量 1.1、__vectors_start         .section .vectors, "ax", %progbits __vectors_start:      

原创 linux 內核自旋鎖spinlock實現詳解(基於ARM處理器)

1、自旋鎖結構 typedef struct {union {u32 slock;struct __raw_tickets { #ifdef __ARMEB__u16 next; ------ 下一個可以獲取自旋鎖的處理器,處理器請求自旋