導讀:eMMC芯片由NandFlash、控制器和標準接口組成,由于控制器的存在,不必考慮ECC和壞塊管理策略,所以eMMC的應用比較簡單。但是,eMMC燒寫只需要把數據燒進去就可以了嗎?為什么數據寫進去了,系統還是跑不起來?
eMMC自誕生以來,就受到各行各業的追棒,如今,已成為存儲行業的主流,特別是手機和平板。美國的IHS iSuppli預測到2018年全球的eMMC出貨量達到2200Milion。

eMMC的市場前景
在給智能手機、智能電視、平板電腦等,使用大容量eMMC芯片客戶服務的過程中,遇到很多燒錄異常的投訴,統計下來,有90%的投訴是說的同樣一個事情:燒錄過程正常,但貼到PCB上不能正常運行,重新通過在線的工具燒錄,又能正常運行,這是為什么呢?
大多數工程師認為,既然eMMC內部有控制器,不用考慮ECC和壞塊管理策略,那么全當成普通的Flash那樣燒寫。事實上,這樣做法是“想當然”的照搬了之前Flash的使用方法。那么,有些人就納悶了,既然燒寫檢驗沒問題,為什么會跑不起來,進而第一步就懷疑是不是燒錄器的問題。
那就要從eMMC芯片的結構進行剖析:
eMMC芯片中有三個分區,分別是Boot1、Boot2和User Area區。

eMMC燒寫,與其他任何Flash的燒錄都不一樣,Boot區是單獨有尋址地址的,因此,必須注意如下兩個關鍵步驟:
1、燒寫數據:包括Boot1、Boot2和User Area區的數據。
2、設置寄存器:主要設置EXT_CSD寄存器,設置Boot加載規則,這需要根據實際的方案來設置。
下面來主要闡述eMMC的設置寄存器的關鍵之處:
通常,Boot1、Boot2和User Area區的數據都沒問題,主要是EXT_CSD寄存器的設置。這里涉及到程序Boot主要有三個寄存器,分別是BOOT_BUS_WIDTH[177]、BOOT_CONFIG_PROT[178]、PARTITION_CONFIG[179],這三個寄存器常常相互配合。
下面我們簡要介紹下這個寄存器:
1、BOOT總線位寬寄存器BOOT_BUS_WIDTH[177]:設置Boot總線寬度和單雙邊沿。

2、BOOT配置保護寄存器BOOT_CONFIG_PROT[178]:Boot設置位的保護使能。

3、分區寄存器PARTITION_CONFIG[179]:分區配置。
