原创 C語言 形參/實參的傳遞+ 指針+ 內存認知/使用

目標: 指針的理解 變量的生存週期及作用範圍 形參/實參體會 良好的動態內存申請和釋放 程序的內存分配 一個由C/C++編譯的程序佔用的內存分爲以下幾個部分 1、棧區(stack)— 由編譯器自動分配釋放 ,存放函數的參數值,

原创 C語言中函數參數的入棧順序/變長參數/默認參數提升在可變長參數函數的陷阱

C語言中函數參數的入棧順序:從右至左。 參數入棧順序是和具體編譯器實現相關的。比如,Pascal語言中參數就是從左到右入棧的,有些語言中還可以通過修飾符進行指定,如Visual C++。即然兩種方式都可以,爲什麼C語言要選擇從右至左呢

原创 #、##、__VA_ARGS__和##__VA_ARGS__的作用

參見:#、##、VA_ARGS和##VA_ARGS的作用 # 用來把參數轉換成字符串 ##運算符可以用於宏函數的替換部分。這個運算符把兩個語言符號組合成單個語言符號,爲宏擴展提供了一種連接實際變元的手段 VA_ARGS 是一個可變參數

原创 再讀 ucosII源碼(邵貝貝):任務之間的通訊與同步--信號量

µC/OS-II中的信號量由兩部分組成: 一個是信號量的計數值,它是一個16位的無符號整數(0 到65,535之間); 另一個是由等待該信號量的任務組成的等待任務表。 用戶要在OS_CFG.H中將OS_SEM_EN開關量常數置成1,

原创 C 專家編程===讀書筆記==待續

讀書筆記,僅作爲博主關心的、不理解的 相關點的解釋,整理爲筆記,方便之後的再次查看。 第一章:C: 穿越時空的迷霧 1、C簡史: a>Multics工程,目的是創建一個操作系統,,,,失敗==經驗 b>UNIX系統的產生:一個叫Ken

原创 再讀 ucosII源碼(邵貝貝):任務之間的通訊與同步--郵箱

郵箱簡介: 郵箱是µC/OS-II中另一種通訊機制,它可以使一個任務或者中斷服務子程序向另一個任務發送一個指針型的變量。 該指針指向一個包含了特定“消息”的數據結構。爲了在µC/OS-II中使用郵箱,必須將OS_CFG.H中的OS_MB

原创 再讀 ucosII源碼(邵貝貝):任務管理

任務管理: 任務可以是一個無限的循環,也可以是在一次執行完畢後被刪除掉。這裏要注意的是,任務代碼並不是被真正的刪除了,而只是µC/OS-Ⅱ不再理會該任務代碼,所以該任務代碼不會再運行。任務看起來與任何C函數一樣,具有一個返回類型和一個參數

原创 再讀 ucosII源碼(邵貝貝):任務之間的通訊與同步--消息隊列

消息隊列 簡介 消息隊列是µC/OS-II中另一種通訊機制,它可以使一個任務或者中斷服務子程序向另一個任務發送以指針方式定義的變量。 因具體的應用有所不同,每個指針指向的數據結構變量也有所不同。 爲了使用µC/OS-II的消息隊列功能

原创 代碼版本維護工具git應用筆記-持續更新

工具: 工具:git命令行與TortoiseGit 圖形界面交互 這裏主要使用TortoiseGit工具. 概念: 工作區和暫存區, 工作區有一個隱藏目錄.git,這個不算工作區,而是Git的版本庫。 Git的版本庫裏存了很多東西,

原创 Linux C 常用網卡操作 (收集|整理)

實現靜態IP地址,掩碼,網關的設置 #include <sys/ioctl.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #includ

原创 linux進程/線程調度策略(SCHED_OTHER,SCHED_FIFO,SCHED_RR)

目的: 系統性的認識linux的調度策略(SCHED_OTHER、SCHED_FIFO、SCHED_RR); 實時調度?分時調度? 混搭系統(實時任務+分時任務),怎樣調度。 linux的調度策略 linux內核的三種 調度策略 :

原创 再讀 ucosII源碼(邵貝貝):任務之間的通訊與同步

µC/OS-II中,保護任務之間的共享數據和提供任務之間的通訊的5種方法: 利用宏OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()來關閉中斷和打開中斷。當兩個任務或者一個任務和一箇中斷服務子程序共享某些數據時

原创 再讀 ucosII源碼(邵貝貝):時間管理

時間管理 前文描述過, 時鐘的中斷服務子程序調用節時鐘節函數OSTimeTick——該函數用於通知µC/OS-Ⅱ發生了時鐘節拍中斷。 相關的函數見下文,源碼於os_time.c中. 任務延時函數,OSTimeDly() µC/OS-Ⅱ

原创 再讀 ucosII源碼(邵貝貝):內核結構--任務控制塊(Task Control Blocks, OS_TCB)

此文,供 再讀 ucosII源碼(邵貝貝):內核結構 使用。 OS_TCB定義: 一旦任務建立了,任務控制塊OS_TCB將被賦值。任務控制塊是一個數據結構。 當任務的CPU使用權被剝奪時,μC/OS-Ⅱ用它來保存該任務的狀態。 當

原创 嵌入式linux開發-網絡設置及nfs掛載

網絡設置: ubuntu環境下, 1、編輯/etc/network/interfaces 文件(網卡配置文件) vi /etc/network/interfaces 2、增加靜態ip: auto 網卡名稱 iface 網卡名稱 ine