原创 Linux操作系統--內核同步方法
1、原子操作 2、自旋鎖:短時間內輕量級加鎖。 自旋鎖的特點:1、自旋鎖保護的臨界區不能進入休眠;2、自旋鎖保護的臨界區能被中斷中斷;3、自旋鎖保護的臨界區代碼執行時不內核不能被搶佔;4、可以在中斷上下文中使用(需要禁止本地中斷)。【不能
原创 學習習慣
1、看視頻、看書都要做筆記,下次回顧知識點,就可以只看筆記,回看視頻費時間。 2、任何數據當時歸檔整理好,下次能方便節省時間找到
原创 Linux終端使用快捷鍵
1、shift+pgup 向上翻頁 2、Ctrl+r 快速匹配歷史命令 【常用】
原创 Linux系統編程--第二章 文件IO
1、內核爲每個進程維護一個打開的文件列表,列表中的每一項都包含一個指向文件本分iNode內存拷貝的指針和元數據。 2、子進程會默認或得一份父進程的文件列表拷貝,每個進程按照慣例會有三個打開的文件描述符。0標準輸入,1標準輸出,2標準錯誤。
原创 Linux系統編程--第一章系統編程簡介和主要概念
1.1.1系統調用:通過執行int中斷深入內核。i386爲例:中斷號0x80,系統調用的參數通過寄存器傳遞。 1.2.1 API:應用程序接口:保證源碼調用相同的接口,具體實現可以隱藏。 1.2.2 ABI: 應用程序二進制接口:保證二進
原创 ARM體系結構--第五章ARM存儲系統
5.2 CP15: ARM存儲管理系統的系統控制協處理器 包含:16個32位寄存器。 【重點關注】C2寄存器:類似於X86中的cr3寄存器,保存進程頁全局目錄表的基地址 MMU:內存管理單元 主要工作:把虛擬地址映射到物理地址;存儲器訪
原创 深入理解Linux內核-第八章內存管理
頁框管理: 頁描述符:描述頁框的狀態,所有的頁描述符存儲在mem_map數組中。每個描述符長度爲32字節。 內存區管理:(X86結構爲例) zone_DMA:包含低於16MB的內存頁框 zone_NORAML:包含16MB--896MB的
原创 常用的通信協議
總線 串並口 同步/異步 速率 工作方式 線數 拓撲 通信距離 UART 串 異步 慢 全雙工 2線 458支持總線型 遠 USRT I2C 串 同步 慢100K、400K 半雙工 2線 總線型 近 SPI 串
原创 ARM體系結構--第一章
1、ARM處理器有兩種工作狀態,7種工作模式 2種狀態: ARM指令狀態:32位指令 Thumb指令狀態:16位指令 【補充】調試狀態 7種工作模式: 用戶模式:正常程序運行模式,不能直接切換到其他模式 系統模式:運行操作系統特權級別的任
原创 深入理解Linux內核-第二章內存尋址
內存尋址 內存尋址 邏輯地址:(段:偏移量) 線性地址:也稱虛擬地址 物理地址 CPU的內存控制單元先將邏輯地址轉換爲線性地址(分段單元); 然後將線性地址轉換爲物理
原创 C語言程序運行的地址空間
1、轉載參考:https://www.cnblogs.com/wuchanming/p/4339770.html
原创 編程中的負數取餘問題
轉載:http://ceeji.net/blog/mod-in-real/ 1、餘數可能是負數,不能使用 x%2==1 判斷整數x是否是奇數!!!,應該使用 x%2 != 0判斷x不是偶數 2、結論 對於任何同號的兩個整數,取餘
原创 VIM隨筆
用於後期回顧 一:同時閱讀多個文件 1、分割vim,打開兩個文件 上下分割【命令行:split 】 左右分割【命令行: vsplit】 2、在上下窗口之間切換 【快捷鍵 ctl + w +方向鍵/hjkl】 3、在vim中打開文
原创 Makefile文件--筆記(雜亂)
1、基本大全教程:https://blog.csdn.net/weixin_38391755/article/details/80380786#commentBox 2、= := ?= +=四個賦值的區別: = 是最基本的賦值 :