原创 void (*f(int, void (*)(int)))(int) 函數解析

  函數指針 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:of

原创 C 語言中 const 關鍵字介紹

  const的使用雖然比較低,但是在筆試中卻是一個頻率很高的考點,那麼如何迅速掌握和理解const呢?在這裏給大家介紹一種簡單的捨去法。就是看到c

原创 緩存溢出問題簡述

緩存溢出 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  緩存溢出(Buffer overflow),是指在存在緩存溢出安全漏洞的

原创 MISRA C指導指南解讀系列8(MISRA C規則87-100)

2.1.            預處理 87.文件中#include語句前面只能是其它的預處理語句或註釋(R)        例如:               static int a;               #include

原创 MISRA C指導指南解讀系列7(MISRA C規則68-86)

  2.1.            函數 68.函數的聲明應該是在文件的範圍內(R)               例如                      void myfunc(void) {                   

原创 MISRA C指導指南解讀系列4(MISRA C規則20-32)

  2.1.            聲明和定義 20.所有的對象和函數標識符在使用前必須聲明(R) 21.內部標識符不能與外部標識符具有相同的名稱,從而隱藏的外部標識符(R)        例如        static int a;

原创 MISRA C指導指南解讀系列6(MISRA C規則46-67)

2.1.            表達式 46.在標準的允許下,在任何賦值序列的情況下表達式的值應該一樣(R)        該規則的目的是避免由表達式引起的對變量的邊緣影響。        例如:               int my

原创 二進制浮點數向十進制浮點數的轉換

  二進制浮點數向十進制浮點數的轉換 IEEE給出了一套浮點數值的標準,即IEEE 754。該標準給出了單精度(32位)和雙精度(64位)浮點數值的表示方法以及如何對其進行操作。本文簡單的給出了從二進制的浮點數到十進制浮點數的轉換算法。

原创 MISRA C指導指南解讀系列5(MISRA C規則33-45)

2.1.            操作符 33.&&和||右邊的操作數不應該含有邊緣影響(R)               int myfunc1(void); int myfunc(void)        {            

原创 MISRA 2004 (先前作者寫的MISRA文檔是基於 1998版本,這個是基於更新的MISRA 2004版本)

汽車行業軟件可靠性聯盟(MISRA:Motor Industry Software Reliability Association)的使命爲了提高車輛系統中軟件的安全性和可靠性,是對汽車工業的軟件應用和開發提供相應支持和幫助。MISRA-

原创 C語言中邏輯運算符(&&,||,!)和位運算符號(&,|,^)的區別

  1.     C語言中邏輯運算符(&&,||,!)和位運算符號(&,|,^)的區別 在C語言中,編程者經常混淆兩組運算符:(&&,||,!)和(&,|,^)。第一組是邏輯運算符,它的操作數是布爾型,而第二組則是位運算符,其操作數是位序

原创 MISRA C指導指南解讀系列1(MISRA C是什麼)

  MISRA C是由MISRA組織制定的針對C語言的軟件開發標準。它的目標促進C代碼在嵌入式系統中的安全性、可移植性和可靠性,明確表明這些系統需要使用ISO C。 第一個版本的MISRA標準是“Guideline for the use

原创 MISRA C指導指南解讀系列3(MISRA C規則11-19)

  2.1.            標識符 11.標識符不能依賴於多於31個字符的意義。編譯器和鏈接器應該可以支持31個字符的外部標識符(R) 12.不同域名空間的標識符的名稱應該具有不同的拼寫,結構體成員除外(A) 2.2.      

原创 嵌入式實時Hypervisor:XtratuM (2)

第1章  緒 論 1.1           研究現狀 Hypervisor也被稱作虛擬機監控器(VMM,Virtual Machine Monitor),它是一個基於計算機硬件平臺的軟件(可以是系統軟件也可以是應用軟件),允許多個操作

原创 嵌入式實時Hypervisor:XtratuM (7)

  1.1           Hypercall 系統調用是通用操作系統提供的一種重要機制,系統調用將操作系統分爲兩個部分:內核空間和用戶空間。用戶程序可以通過系統調用接口從用戶空間陷入內核空間,這種機制有助於虛擬內存的實現,並且還可以