原创 uclinux 多任務(各家之言)

     uClinux是專爲無存儲器管理單元(MMU)的微控制器打造的嵌入式Linux操作系統。uClinux首先被移植到摩托羅拉的MC68328 DragonBall集成微處理器上。從那以後, uClinux越來越受到業界的青睞, 被

原创 h.264 B條帶預測模式

B條帶的預測模式分爲 直接模式,單向預測方式,多假設預測方式,幀內預測方式 其中直接預測模式分爲空間和時間兩種   Direct模式首先需要一個mvcol(co-located mv,詳細說明看標準) 對於空間方式,一般使用當前幀中A、B

原创 malloc()函數比數組有什麼優勢以及缺點

malloc()函數比數組有什麼優勢. 懸賞分:0 - 解決時間:2009-8-17 12:54 malloc()函數比數組有什麼優勢,比如說:我聲明一個可以存儲100個字符的內存塊和聲明一個可以存儲100個字符的數組,我覺的mal

原创 C語言共用體union和枚舉類型enum

結構體變量所佔內存長度是各成員佔的內存長度的總和。每個成員分別佔有其自己的內存單元。 共用體變量所佔的內存長度等於最長的成員長度。   注意點:      1.共用體變量中起作用的成員時最後一次存放的成員,在存入一個新成員後原有的成員就失

原创 算法複雜度——時間複雜度和空間複雜度

1、時間複雜度   (1)時間頻度 一個算法執行所耗費的時間,從理論上是不能算出來的,必須上機運行測試才能知道。但我們不可能也沒有必要對每個算法都上機測試,只需知道哪個算法花費的時間多,哪個算法花費的時間少就可以了。並且一個算法花費的時間

原创 linux與uclinux 內存管理(1)

應該說uClinux同標準Linux的最大區別就在於內存管理,同時也由於uClinux的內存管理引發了一些標準Linux所不會出現的問題。本文將把uClinux內存管理同標準Linux的那內存管理部分進行比較分析。標準Linux使用的虛擬

原创 算法複雜度

首先接觸" 算法複雜度"這個術語是在數據結構這門課程中。數據結構主要是講如何在計算機中存儲.組織數據,對於相同的存儲.組織數據方式,往往又有不同的實現方式(即算法)。對於精心實現的算法,往往可以帶來更高的運行和存儲上的效率,而評價一個實現

原创 虛繼承之單繼承的內存佈局

C++2.0以後全面支持虛函數與虛繼承,這兩個特性的引入爲C++增強了不少功能,也引入了不少煩惱。虛函數與虛繼承有哪些特性,今天就不記錄了,如果能搞瞭解一下編譯器是如何實現虛函數和虛繼承,它們在類的內存空間中又是如何佈局的,卻可以對C++

原创 Linux內核態和用戶態的區別

      當一個任務(進程)執行系統調用而陷入內核代碼中執行時,我們就稱進程處於內核運行態(或簡稱爲內核態)。此時處理器處於特權級最高的(0級)內核代碼中執行。當進程處於內核態時,執行的內核代碼會使用當前進程的內核棧。每個進程都有自己的

原创 malloc、free與內存碎片

malloc和free大量使用後回造成內存碎片,那麼這種碎片形成的機理是什麼?     如果機理是申請的內存空間大小(太小)所形成的,那麼,申請多大的區域能夠最大限度的避免內存碎片呢?(這裏的避免不是絕對的避免,只是一種概率)   內存

原创 typedef和#define的區別

#define是在預編譯時處理的,它只能作簡單的字符串替換,而typedef是在編譯時處理的。實際上它並不是做簡單的字符替換,例如: typedef int NUM[10]; 並不是用“NUM[10]”去代替“int”,而是採用如同定義變

原创 公有繼承,私有繼承,和保護繼承

 1.   公有繼承(public)     公有繼承的特點是基類的公有成員和保護成員作爲派生類的成員時,它們都保持原有的狀態,而基類的私有成員仍然是私有的。         2.   私有繼承(private)     私有繼承的特點是

原创 H.264 數據分割

當使用數據分割時,源編碼器把不同類型的分割安排在3個不同的緩衝器中,同時分片的尺寸必須進行調整以保證小於MTU長度,因此是編碼器而 不是NAL來實現數據分割。在解碼器上,所有分割用於信息重建。這樣,如果幀內或幀間信息丟失了,有效的幀頭信息

原创 C語言左移和右移計算的注意點

左移運算大多數情況下可以看成是乘法運算(除去高位溢出的情況),但是顯然比乘法運算快很多。 注意點:如果一個字節長的數64 (01000000)則左移兩位後值變爲0   右移運算:移到右端的低位被捨棄,對無符號數,高位補0.        

原创 信號量的疑惑

通常我們使用信號量用的都是操作系統的,使用的時候要用操作系統提供的函數創建信號量;     當你要進入你的互斥代碼之前,你需要嘗試阻塞信號量,如果這個時候信號量已經被阻塞,你的代碼就必須就此打住,等待別人釋放了你才能使用。使用完了就調用函