關於oprofile的移植,在Ubuntu Server 10.04平台上交叉編譯,移植到Android,經過實踐,以下是交叉編譯的正確步驟,不保證在其他環境中能正確運行,以下是編譯環境:build: Ubuntu Server 10.04host:
本文目的:用C++和Windows的互斥對象(Mutex)來實現線程同步鎖。准備知識:1,內核對象互斥體(Mutex)的工作機理,WaitForSingleObject函數的用法,這些可以從MSDN獲取詳情; 2,當兩個或更多線程需要同時訪問一個共享
在上篇用C++實現了Win32平台上的多線程互斥鎖( http://www.linuxidc.com/Linux/2011-12/49713.htm ),這次寫個Linux平台上的,同樣參考了開源項目C++ Sockets的代碼,在此對這些
在Win32平台上進行多線程編程,常會用到鎖。下邊用C++實現了互斥對象(Mutex)鎖和臨界區(CRITICAL_SECTION)鎖,以加深理解和今後方便使用。代碼已在VS2005環境下編譯測試通過。Lock.h#ifndef _Lock
打開浏覽器,搜索了下內存管理的概念,百度百科中是這樣定義的:內存管理,是指軟件運行時對計算機內存資源的分配和使用的技術。其最主要的目的是如何高效,快速的分配,並且在適當的時候釋放和回收內存資源。說到內存,與之緊密相聯系的一個概念就是指針。回想起上學那
在Win32環境下編寫多線程應用程序,經常要用到事件對象Event,來進行線程同步。與其相關的一組API包括:CreateEvent,SetEvent,ResetEvent,WaitForSingleObject,和CloseHandle。關於這些A
前文在Win32平台上用C++實現了事件對象Event,對線程進行同步(見 http://www.linuxidc.com/Linux/2011-12/49717.htm ),以達到期望目的。這次在Linux平台上實現與之類似的事件對象。與
簡介Toast是一個彈出Message,允許你便捷地通知用戶一些時間,比如:將數據保存到SD卡。值得注意的是用戶不能取消Toast。大多數情況下,Toast僅僅是一個簡短的message,但你也可以定制Toast的界面。創建標准Toast標准Toas
看門狗代碼放在linux/drivers/char/watchdog/s3c2410_wdt.c中分析如下: /* linux/drivers/char/watchdog/s3c2410_wdt.c * &n
寫在移植前的:看門狗在嵌入式系統開發中占據重要的地位,管理系統的工作狀態。在這裡本人muge0913在參考別人的基礎上,實現了mini6410看門狗的移植。在mini6410中看門狗驅動文件為linux2.6.38/drivers/watchdog/
一.RISC設計思想ARM內核采用RISC體系結構。RISC是一種設計思想,其目標是設計出一套能在高時鐘頻率下單周期執行,簡單而有效的指令集。RISC的設計重點在於由硬件執行的指令的復雜度,這是因為軟件比硬件容易提供更大的靈活性和更高的智能。因此,R
工廠模式是比較簡單,也是比較好用的一種方式。根本上說,工廠模式的目的就根據不同的要求輸出不同的產品。比如說吧,有一個生產鞋子的工廠,它能生產皮鞋,也能生產膠鞋。如果用代碼設計,應該怎麼做呢?typedef struct _Shoe
模板對於學習C++的同學,其實並不陌生。函數有模板函數,類也有模板類。那麼這個模板模式是個什麼情況?我們可以思考一下,模板的本質是什麼。比如說,現在我們需要編寫一個簡單的比較模板函數。template <typename t
組合模式聽說去很玄乎,其實也並不復雜。為什麼?大家可以先想一下數據結構裡面的二叉樹是怎麼回事。為什麼就是這麼一個簡單的二叉樹節點既可能是葉節點,也可能是父節點?typedef struct _NODE {&n
原型模式本質上說就是對當前數據進行復制。就像變戲法一樣,一個鴿子變成了兩個鴿子,兩個鴿子變成了三個鴿子,就這麼一直變下去。在變的過程中,我們不需要考慮具體的數據類型。為什麼呢?因為不同的數據有自己的復制類型,而且每個復制函數都是虛函數。
有過面試經驗的朋友,或者對設計模式有點熟悉的朋友,都會對單件模式不陌生。對很多面試官而言,單件模式更是他們面試的保留項目。其實,我倒認為,單件模式算不上什麼設計模式。最多也就是個技巧。 單件模式要是用C++寫,一般這麼寫。#
關於軟件設計方面的書很多,比如《重構》,比如《設計模式》。至於軟件開發方式,那就更多了,什麼極限編程、精益方法、敏捷方法。隨著時間的推移,很多的方法又會被重新提出來。其實,就我個人看來,不管什麼方法都離不開人。一個人寫不出二叉樹,你怎麼讓他寫?敏捷嗎
示例1:clc; close all; clear all; [x,y,z] = sphere(16); X = [x(:)*.5 x(:)*.75 x(:)]; Y = [y(:)*.5 y(:)*.75 y(:)]; Z = [z(:)*.5 z