Flash儲存媒體包括幾種模式,一是SSD/DOC/CF/DOM,二是EFD(Embedded Flash Drive)像是mDOC、OneNAND、SanDisk的iNAND、Samsung的MoviNAND、Toshiba的GBNAND;三是MCP(Multi-Chip Package),包括EFD、SDR/DDR和NAND Flash,手機使用廣;四是Flash記憶體,也包括pure Flash,像iPhone把8G的NAND Flash直接銲在裡面。
from Embedded World report
快閃記憶體(Flash Memory),是非揮發性記憶體的一種,不需電力來維持數據的儲存。又可分為NOR Flash以及NAND Flash兩種,前者用於儲存程式碼,後者用於儲存數據資料。快閃記憶體用一個浮動閘(Floating Gate)電晶體來儲存數據,利用每個電晶體所能儲存的資料數量來區分,可以將NAND Flash區分為兩類:單級儲存(Sigle Level Cell,SLC)和多級儲存(Multi Level Cell,MLC)。單級儲存具有速度快,耗電量低的優點,但是多級儲存的成本比較低。
M-System DOC
DOC H3 provides:
Friday, November 9, 2007
Flash
Posted by cins at 11:21 AM 0 comments
Labels: Study notes
Thursday, October 11, 2007
Mapping physical to virtual address
PVOID MmMapIoSpace(
IN PHYSICAL_ADDRESS PhysicalAddress,
IN ULONG NumberOfBytes,
IN MEMORY_CACHING_TYPE CacheType
);
//----example:
PHYSICAL_ADDRESS RegPA;
ULONG uBase;
RegPA.QuadPart = 0xA0000000;
uBase = (ULONG)MmMapIoSpace(RegPA, 4, 0);
//----
//Header: CEDDK.h
//Link Library: CEDDK.lib
出現link error的話,把ceddk.lib的path加到
Project -> Settings -> Link的object/library modules應該就可以過了
from WinCE driver and BSP Develop blog
驅動開發過程中可能遇到以下幾種與內在訪問相關的情況:
1.CPU訪問設備寄存器:
在ARM中可以直接將設備的寄存器映射到ARM的存儲空間中,我們需要使用幾個函數將硬體寄存器位址映射到系統空間:
如果已知硬體的虛擬位址,可以使用VirtualAlloc,VirtualCopy,
如果已知硬體的物理位址,需要使用MmMapIoSpace映射.
2.CPU與DMA或其他硬體交換資料。
DMA需要使用物理位址,因為DMA訪問記憶體時不會向CPU一樣先經過MMU,所以它使用物理位址。如果硬體需要與CPU交互資料,比如CPU需要將圖像畫到LCD控制器使用的記憶體中,LCD才會將其顯示出來。我們在設置硬體硬體時需要將CPU使用的虛擬位址轉換成物理位址,再告訴硬體物理位址。通常有以下幾種辦法:
1. 為該硬體保留一塊記憶體空間。一般用於記憶體使用量比較大的,且位址不再改變的設備,例如LCD控制器。
記錄下該塊記憶體的物理位址給硬體使用,計算出該塊記憶體的虛擬位址位址給CPU使用。
2. 當驅動需要訪問硬體時才將虛擬位址轉換成物理位址,一般用在記憶體空間經常變化的場合。例如塊設備的驅動,檔系統或者其他上層程式讀寫資料時並不會保證每次使用同一段位址。這種情況下,可以使用LockPages函數將虛擬位址轉換成物理位址。
3. 分配一塊物理位址,這可以用在記憶體位址不需要變化,且用量不大的情況,這時可以用AllocPhysMem分配一塊位址,同時得到物理位址與虛擬位址。
Posted by cins at 11:03 AM 0 comments
Labels: Application Programming, WinCE 筆記
Wednesday, October 3, 2007
CString
總算找到一篇比較完整的介紹文
有關CString轉換
int to string
string to int(signed, unsigned) 等等...
CString Management from Code Project
翻譯篇
Generic Text Mapping的觀念
字集設定 ANSI / UNICODE (窄字元 / 寬字元 / neutral)
Posted by cins at 5:39 PM 0 comments
Labels: Application Programming
Monday, October 1, 2007
專案管理技巧 WBS
Work Breakdown Structure (工作分解結構)
WBS使用階層樹狀結構(Hierarchical Tree Structure)與100%原則(100% Rule)來定義與組織專案範圍(Project Scope)。一個優良的專案WBS技巧,是針對產出(Outcomes)所進行的拆解,而非工作項目(Actions)拆解。
腳踏車WBS展開圖 Source: Wikipedia
from MECE原則與專案管理技巧
add.. 專案管理與專案生命週期
MECE
Posted by cins at 4:44 PM 0 comments
Labels: Project Management
Thursday, September 6, 2007
什麼是專案管理
專案管理是為了達成專案目標的協調工作。專案小組的負責人是專案經理,負責執行這項工作及其最終的結果。專案經理憑藉知識、技能、工具及方法來:
- 確立專案的目標、需求及限制。
- 協調各專案關係人 (包括小組成員、資源經理、資深管理階層、客戶及贊助商) 的不同需要和期望。
- 根據確立的專案目標來規劃、執行及控制專案的任務、階段及交付項目。
- 當專案完成時關閉專案,並且記錄當中所累積的知識。
專案經理也負責平衡和整合互相競爭的需求,以利成功地執行整體專案,如下:
-
專案範圍 確立專案要完成的特定工作。
-
專案時間 設定專案的完成日期,以及階段、里程碑及交付項目的中期期限。
-
專案成本 計算及追蹤專案成本和預算。
-
專案人力資源 任用完成專案任務所需的小組成員。
-
專案採購 取得完成專案任務所需的材料和設備資源。
-
專案溝通 向小組成員和其他關係人傳達工作分派、更新、報表及其他資訊。
-
專案品質 確立專案目標可接受的品質層級。
-
專案風險 分析潛在的專案風險和回應計畫。
瞭解專案管理基本概念
平衡 範圍、時間及金錢 通常是專案經理的最大責任。
如果您增加範圍,三角關係中的時間或金錢兩邊也會增加。如果您需要縮減時間 (即提前專案完成日期),則可能需要減少範圍,或藉由增加成本來增加資源。
step by step - Microsoft Project 2003 : 建立project計劃
Posted by cins at 5:09 PM 0 comments
Labels: Project Management