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