對spi flash的寫保護(hù)方法和控制器的制造方法
【專利摘要】本發(fā)明實(shí)施例公開了一種對SPI FLASH的寫保護(hù)方法和控制器。本發(fā)明實(shí)施例方法包括:控制器獲取將要訪問的SPI FLASH的訪問地址范圍,其中所述控制器內(nèi)配置有預(yù)置SPI FLASH的保護(hù)地址范圍,所述訪問包括寫或者擦除;所述控制器判斷所述將要訪問的SPI FLASH的訪問地址范圍與所述預(yù)置SPI FLASH的保護(hù)地址范圍是否至少部分重疊;若至少部分重疊,則所述控制器觸發(fā)對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPIFLASH的保護(hù)地址范圍重疊的部分地址的保護(hù)機(jī)制。本發(fā)明實(shí)施例提供了對SPI FLASH的寫保護(hù)方法和控制器能夠避免SPI FLASH被保護(hù)的空間被誤寫的問題,且可以兼容不同廠或者不同型號的SPI FLASH。
【專利說明】對SPI FLASH的寫保護(hù)方法和控制器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,尤其涉及一種對SPI FLASH的寫保護(hù)方法和控制器。
【背景技術(shù)】
[0002]現(xiàn)有的通信設(shè)備或者電子設(shè)備中一般使用FLASH來存放關(guān)鍵數(shù)據(jù)。在大多數(shù)場景下,這些關(guān)鍵數(shù)據(jù)不能被改寫或者丟失,否則會導(dǎo)致整個設(shè)備無法逆轉(zhuǎn)的損壞。隨著技術(shù)的發(fā)展,通信設(shè)備或電子設(shè)備的一個重要的發(fā)展方向是產(chǎn)品小型化。在產(chǎn)品設(shè)計(jì)時,器件選型更傾向于選擇管腳數(shù)少,PCB面積占用小的器件。因此,通用設(shè)備或電子設(shè)備中逐漸采用串行接口的FLASH (SPI FLASH)替代并行FLASH,以減少讀寫FLASH的管腳數(shù),減小硬件PCB面積。
[0003]現(xiàn)有的SPI FLASH器件中本身提供有寫保護(hù)功能。然而,該寫保護(hù)功能均為在每一次軟件啟動后才配置到SPI(Serial Peripheral Interface,串行外設(shè)接口)FLASH中。在這個過程中,SPI FLASH中待保護(hù)的空間容易被誤寫。而且,不同廠商的FLASH器件的寫保護(hù)的配置流程和配置方法之間有差異,在配置時軟件需要區(qū)分,這增加了軟件處理的復(fù)雜度。另外,SPI FLASH提供的寫保護(hù)功能只能從該SPI FLASH的地址空間的頭或者尾開始,以固定的空間單位的倍數(shù)來進(jìn)行保護(hù),而且保護(hù)的地址空間是必須連續(xù)的。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供了一種對SPI FLASH的寫保護(hù)方法和控制器,用于避免SPIFLASH被保護(hù)的空間被誤寫的問題,且可以兼容不同廠或者不同型號的SPI FLASH。
[0005]本發(fā)明實(shí)施例第一方面提供一種對SPI FLASH的寫保護(hù)方法,包括:
[0006]控制器獲取將要訪問的SPI FLASH的訪問地址范圍,其中所述控制器內(nèi)配置有預(yù)置SPI FLASH的保護(hù)地址范圍,所述訪問包括寫或者擦除;
[0007]所述控制器判斷所述將要訪問的SPI FLASH的訪問地址范圍與所述預(yù)置SPIFLASH的保護(hù)地址范圍是否至少部分重疊;
[0008]若至少部分重疊,則所述控制器觸發(fā)對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的保護(hù)機(jī)制。
[0009]結(jié)合本發(fā)明實(shí)施例的第一方面,本發(fā)明實(shí)施例的第一方面的第一種實(shí)現(xiàn)方式中,所述控制器觸發(fā)對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的保護(hù)機(jī)制具體包括:
[0010]所述控制器丟棄對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPIFLASH的保護(hù)地址范圍重疊的部分地址的訪問命令。
[0011]結(jié)合本發(fā)明實(shí)施例的第一方面,本發(fā)明實(shí)施例的第一方面的第二種實(shí)現(xiàn)方式中,所述方法還包括:
[0012]當(dāng)所述控制器檢測到所述保護(hù)機(jī)制被觸發(fā)時,所述控制器向CPU上報(bào)錯誤中斷以及所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址,其中所述錯誤中斷用于指示對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的訪問中斷。
[0013]結(jié)合本發(fā)明實(shí)施例的第一方面,本發(fā)明實(shí)施例的第一方面的第三種實(shí)現(xiàn)方式中,所述方法還包括:
[0014]當(dāng)所述控制器檢測到所述保護(hù)機(jī)制被觸發(fā)時,所述控制器向CPU屏蔽錯誤中斷,其中所述錯誤中斷用于指示對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的訪問中斷。
[0015]結(jié)合本發(fā)明實(shí)施例的第一方面,本發(fā)明實(shí)施例的第一方面的第四種實(shí)現(xiàn)方式中,所述控制器為SPI總線主機(jī)。
[0016]本發(fā)明實(shí)施例第二方面提供一種控制器,包括:
[0017]獲取單元,用于獲取將要訪問的SPI FLASH的訪問地址范圍,其中所述控制器內(nèi)配置有預(yù)置SPI FLASH的保護(hù)地址范圍,所述訪問包括寫或者擦除;
[0018]判斷單元,用于判斷所述將要訪問的SPI FLASH的訪問地址范圍與所述預(yù)置SPIFLASH的保護(hù)地址范圍是否至少部分重疊;
[0019]保護(hù)單元,用于當(dāng)所述將要訪問的SPI FLASH的訪問地址范圍與所述預(yù)置SPIFLASH的保護(hù)地址范圍至少部分重疊時,觸發(fā)對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的保護(hù)機(jī)制。
[0020]結(jié)合本發(fā)明實(shí)施例的第二方面,本發(fā)明實(shí)施例的第二方面的第一種實(shí)現(xiàn)方式中,所述保護(hù)單元具體用于當(dāng)所述將要訪問的SPI FLASH的訪問地址范圍與所述預(yù)置SPIFLASH的保護(hù)地址范圍至少部分重疊時,丟棄對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的訪問命令。
[0021]結(jié)合本發(fā)明實(shí)施例的第二方面,本發(fā)明實(shí)施例的第二方面的第二種實(shí)現(xiàn)方式中,所述控制器還包括:
[0022]上報(bào)單元,用于向CPU上報(bào)錯誤中斷以及所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址,其中所述錯誤中斷用于指示對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的訪問中斷。
[0023]結(jié)合本發(fā)明實(shí)施例的第二方面,本發(fā)明實(shí)施例的第二方面的第三種實(shí)現(xiàn)方式中,所述控制器還包括:
[0024]屏蔽單元,用于當(dāng)所述控制器檢測到所述保護(hù)機(jī)制被觸發(fā)時,所述控制器向CPU屏蔽錯誤中斷,其中所述錯誤中斷用于指示對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的訪問中斷。
[0025]結(jié)合本發(fā)明實(shí)施例的第二方面,本發(fā)明實(shí)施例的第二方面的第四種實(shí)現(xiàn)方式中,所述控制器為SPI總線主機(jī)。
[0026]從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):
[0027]本發(fā)明中,通過在SPI FLASH外設(shè)有控制器來過濾對該SPI FLASH的訪問,以篩選出對存放有關(guān)鍵數(shù)據(jù)的預(yù)置SPI FLASH的保護(hù)地址范圍的訪問,進(jìn)而對該預(yù)置SPI FLASH的保護(hù)地址范圍進(jìn)行保護(hù),相比采用每個SPI FLASH本身內(nèi)部的寫保護(hù)功能,本發(fā)明能夠避免【背景技術(shù)】中提到的SPI FLASH被保護(hù)的空間被誤寫的問題,且可以兼容不同廠或者不同型號的SPI FLASH。另外,由于通過在控制器內(nèi)配置預(yù)置SPI FLASH的保護(hù)地址范圍,而在控制器內(nèi)配置保護(hù)地址范圍并不受限,因此本發(fā)明中預(yù)置SPI FLASH的保護(hù)地址范圍可以是該預(yù)置SPI FLASH的任意地址范圍。
【專利附圖】
【附圖說明】
[0028]圖1為本發(fā)明的對SPI FLASH的寫保護(hù)方法的一個實(shí)施例的流程圖;
[0029]圖2為本發(fā)明的控制器的一個實(shí)施例的結(jié)構(gòu)示意圖;
[0030]圖3為本發(fā)明實(shí)施例中的SPI BUS MASTER的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0031]本發(fā)明實(shí)施例提供了一種對SPI FLASH的寫保護(hù)方法和控制器,用于避免SPIFLASH被保護(hù)的空間被誤寫的問題,且可以兼容不同廠或者不同型號的SPI FLASH。
[0032]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
[0033]本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“包括”和“具有”以及它們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0034]請參閱圖1,本發(fā)明的一個實(shí)施例中對SPI FLASH的寫保護(hù)方法包括:
[0035]101、控制器獲取將要訪問的SPI FLASH的訪問地址范圍,其中所述控制器位于內(nèi)配置有預(yù)置SPI FLASH的保護(hù)地址范圍,所述訪問包括寫或者擦除;
[0036]控制器與至少一個SPI FLASH相連,在CPU (Central Processing Unit,中央處理器)對與該控制器相連的SPI FLASH訪問時需通過控制器來對該SPI FLASH進(jìn)行訪問,以便該控制器對對該SPI FLASH的訪問進(jìn)行過濾。本實(shí)施例中,控制器具體為SPI總線主機(jī)(英文:SPI BUS MASTER),當(dāng)然,實(shí)際運(yùn)用中控制器也可以為位于SPI FLASH外的用于對該SPI FLASH的訪問進(jìn)行過濾的其他模塊,在此不作限制。
[0037]在與控制器連接的至少一個SPI FLASH中,其中部分SPI FLASH中的至少部分地址中存放有關(guān)鍵數(shù)據(jù),這些關(guān)鍵數(shù)據(jù)不能被改寫或者丟失。稱存放有該關(guān)鍵數(shù)據(jù)的SPIFLASH為預(yù)置SPI FLASH,預(yù)置SPI FLASH中存放關(guān)鍵數(shù)據(jù)的地址為預(yù)置SPI FLASH的保護(hù)地址范圍。其中,該預(yù)置SPI FLASH的數(shù)量不限于一個。
[0038]控制器內(nèi)預(yù)先配置有預(yù)置SPI FLASH的保護(hù)地址范圍。具體的,本實(shí)施例中,控制器內(nèi)提供有至少一組寄存器,該寄存器用于設(shè)置預(yù)置SPI FLASH的片選以及保護(hù)地址范圍的起始地址和空間長度。具體舉例來說,控制器與兩個SPI FLASH(分別對應(yīng)片選O和片選I)相連,其中片選I下的SPI FLASH中IMB到16MB的地址中存放有關(guān)鍵數(shù)據(jù)。那么控制器提供的一組寄存器中配置有:保護(hù)片選為1,保護(hù)起始地址為1MB,保護(hù)長度為15MB。
[0039]由于CPU在對預(yù)置SPI FLASH的保護(hù)地址范圍的訪問操作為寫操作或者擦除操作時會導(dǎo)致預(yù)置SPI FLASH的保護(hù)地址范圍中的關(guān)鍵數(shù)據(jù)被改寫或者丟失,因此,控制器在實(shí)現(xiàn)對預(yù)置SPI FLASH的保護(hù)地址范圍進(jìn)行保護(hù)時,需獲取將要訪問的SPI FLASH的訪問地址范圍,其中,該訪問包括寫或者擦除。當(dāng)然,實(shí)際運(yùn)用中,該訪問操作也可以包括其他操作,在此不作限制。具體的,控制器可在通過設(shè)置可配置寄存器,用于設(shè)置待獲取的訪問操作命令。
[0040]102、所述控制器判斷所述將要訪問的SPI FLASH的訪問地址范圍與所述預(yù)置SPIFLASH的保護(hù)地址范圍是否至少部分重疊;若是,則所述控制器觸發(fā)對所述訪問地址范圍中的保護(hù)地址范圍的保護(hù)機(jī)制。
[0041]控制器在獲取到將要訪問的SPI FLASH的訪問地址范圍后,先判斷該將要訪問的SPI FLASH的訪問地址范圍是否與預(yù)置SPI FLASH的保護(hù)地址范圍至少部分重疊。具體來說,控制器首先判斷將要訪問的SPI FLASH的片選是否與預(yù)置SPI FLASH的片選一致,如果不一致,那么可以確定將要訪問的SPI FLASH中沒有要保護(hù)的地址范圍,因此繼續(xù)走正常流程;如果一致,那么進(jìn)一步判斷將要訪問的SPI FLASH的訪問地址范圍與預(yù)置SPIFLASH的保護(hù)地址范圍是否至少部分重疊,如果是部分重疊,那么控制器觸發(fā)對將要訪問的SPI FLASH的訪問地址范圍中該部分重疊的地址范圍的保護(hù)機(jī)制;如果是將要訪問的SPIFLASH的訪問地址范圍完全落入預(yù)置SPI FLASH的保護(hù)地址范圍內(nèi),那么控制器觸發(fā)對該將要訪問的SPI FLASH的訪問地址范圍的保護(hù)機(jī)制。
[0042]具體的,本實(shí)施例中,控制器在觸發(fā)對訪問地址范圍的保護(hù)機(jī)制時,該控制器丟棄對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的訪問命令。
[0043]優(yōu)選的,本實(shí)施例中,當(dāng)控制器檢測到保護(hù)機(jī)制被觸發(fā)時,該控制器還向CPU上報(bào)錯誤中斷以及所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址,其中所述錯誤中斷用于指示對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的訪問中斷。這樣,可以方便記錄錯誤操作,以對問題進(jìn)行定位,以便后續(xù)追蹤該中斷的訪問的來源或者對該中斷進(jìn)行其他處理。
[0044]或者,本實(shí)施例中,當(dāng)所述控制器檢測到所述保護(hù)機(jī)制被觸發(fā)時,該控制器也可以向CPU屏蔽錯誤中斷,其中所述錯誤中斷用于指示對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的訪問中斷。
[0045]本實(shí)施例中,通過在SPI FLASH外設(shè)有控制器來過濾對該SPI FLASH的訪問,以篩選出對存放有關(guān)鍵數(shù)據(jù)的預(yù)置SPI FLASH的保護(hù)地址范圍的訪問,進(jìn)而對該預(yù)置SPI FLASH的保護(hù)地址范圍進(jìn)行保護(hù),相比采用每個SPI FLASH本身內(nèi)部的寫保護(hù)功能,本發(fā)明能夠避免【背景技術(shù)】中提到的SPI FLASH被保護(hù)的空間被誤寫的問題,且可以兼容不同廠或者不同型號的SPI FLASH。另外,由于通過在控制器內(nèi)配置預(yù)置SPI FLASH的保護(hù)地址范圍,而在控制器內(nèi)配置保護(hù)地址范圍并不受限,因此本發(fā)明中預(yù)置SPI FLASH的保護(hù)地址范圍可以是該預(yù)置SPI FLASH的任意地址范圍。
[0046]優(yōu)選的,本實(shí)施例中,控制器中還可以設(shè)有SPI FLASH寫保護(hù)使能寄存器,其中SPI FLASH寫保護(hù)功能是默認(rèn)為使能的。
[0047]為便于理解,下面以一個實(shí)際應(yīng)用場景對本發(fā)明實(shí)施例的對SPI FLASH的寫保護(hù)方法進(jìn)行描述。
[0048]SPI BUS MASTER提供有至少一組可配置寄存器,該寄存器內(nèi)設(shè)置有待丟棄的命令字,具體的,本實(shí)施例中,該待丟棄的命令字為寫命令和擦除命令。SPI總線主機(jī)與多個SPIFLASH相連,其中片選I下的SPI FLASH中IMB到16MB的地址中存放有關(guān)鍵數(shù)據(jù),片選3下的SPI FLASH中2MB到15MB的地址中存放有關(guān)鍵數(shù)據(jù)。
[0049]SPI BUS MASTER還提供兩組配置有待保護(hù)SPI FLASH的保護(hù)地址范圍的寄存器。具體的,其中一組寄存器中待保護(hù)的片選配置為1,保護(hù)起始地址配置為1MB,保護(hù)長度配置為15MB ;另一組寄存器中待保護(hù)的片選配置為3,保護(hù)起始地址配置為2MB,保護(hù)長度配置為13MB。
[0050]SPI BUS MASTER還提供SPI FLASH寫保護(hù)使能寄存器,其中SPI FLASH寫保護(hù)功能默認(rèn)為使能。
[0051]在CPU要通過SPI BUS MASTER對SPI FLASH進(jìn)行寫操作或者擦除操作時,SPI BUSMASTER首先確認(rèn)SPI FLASH寫保護(hù)是否使能。若否,則走正常流程。若是,則進(jìn)一步確認(rèn)CPU將要寫入或者擦除的SPI FLASH是否是片選I或者片選3下的SPI FLASH。若否,則走正常流程。
[0052]若是片選I下的SPI FLASH,則進(jìn)一步確認(rèn)CPU將要寫入或者擦除的地址是否與片選I下的SPI FLASH中IMB到16MB的地址至少部分重疊,若否,則走正常流程。若是,則丟棄對CPU將要寫入或者擦除的地址中與片選I下的SPI FLASH中IMB到16MB的地址重疊的部分地址的寫入命令或者擦除命令。
[0053]若是片選3下的SPI FLASH,則進(jìn)一步確認(rèn)CPU將要寫入或者擦除的地址是否與片選3下的SPI FLASH中2MB到15MB的地址至少部分重疊,若否,則走正常流程。若是,則丟棄對CPU將要寫入或者擦除的地址中與片選3下的SPI FLASH中2MB到15MB的地址重疊的部分地址的寫入命令或者擦除命令。
[0054]上面對本發(fā)明實(shí)施例中的對SPI FLASH的寫保護(hù)方法進(jìn)行了描述,下面對本發(fā)明實(shí)施例中的控制器進(jìn)行描述,請參閱圖2,本發(fā)明實(shí)施例中控制器200包括:
[0055]獲取單元201,用于獲取將要訪問的SPI FLASH的訪問地址范圍,其中所述控制器內(nèi)配置有預(yù)置SPI FLASH的保護(hù)地址范圍,所述訪問包括寫或者擦除;
[0056]判斷單元202,用于判斷所述將要訪問的SPI FLASH的訪問地址范圍與所述預(yù)置SPI FLASH的保護(hù)地址范圍是否至少部分重疊;
[0057]保護(hù)單元203,用于當(dāng)所述將要訪問的SPI FLASH的訪問地址范圍與所述預(yù)置SPIFLASH的保護(hù)地址范圍至少部分重疊時,觸發(fā)對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的保護(hù)機(jī)制。
[0058]優(yōu)選的,本實(shí)施例中,保護(hù)單元203具體用于當(dāng)所述將要訪問的SPI FLASH的訪問地址范圍與所述預(yù)置SPI FLASH的保護(hù)地址范圍至少部分重疊時,丟棄對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的訪問命令。
[0059]優(yōu)選的,本實(shí)施例中,控制器200還包括:
[0060]上報(bào)單元204,用于向CPU上報(bào)錯誤中斷以及所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址,其中所述錯誤中斷用于指示對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的訪問中斷。
[0061]或者,優(yōu)選的,本實(shí)施例中,控制器200還包括:
[0062]屏蔽單元(圖未示),用于當(dāng)所述控制器檢測到所述保護(hù)機(jī)制被觸發(fā)時,所述控制器向CPU屏蔽錯誤中斷,其中所述錯誤中斷用于指示對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的訪問中斷。
[0063]優(yōu)選的,本實(shí)施例中,所述控制器為SPI總線主機(jī)。
[0064]本實(shí)施例中,通過在SPI FLASH外設(shè)有控制器來過濾對該SPI FLASH的訪問,以篩選出對存放有關(guān)鍵數(shù)據(jù)的預(yù)置SPI FLASH的保護(hù)地址范圍的訪問,進(jìn)而對該預(yù)置SPI FLASH的保護(hù)地址范圍進(jìn)行保護(hù),相比采用每個SPI FLASH本身內(nèi)部的寫保護(hù)功能,本發(fā)明能夠避免【背景技術(shù)】中提到的SPI FLASH被保護(hù)的空間被誤寫的問題,且可以兼容不同廠或者不同型號的SPI FLASH。另外,由于通過在控制器內(nèi)配置預(yù)置SPI FLASH的保護(hù)地址范圍,而在控制器內(nèi)配置保護(hù)地址范圍并不受限,因此本發(fā)明中預(yù)置SPI FLASH的保護(hù)地址范圍可以是該預(yù)置SPI FLASH的任意地址范圍。
[0065]上面從單元化功能實(shí)體的角度對本發(fā)明實(shí)施例中的控制器進(jìn)行了描述,下面從硬件處理的角度對本發(fā)明實(shí)施例中的控制器進(jìn)行描述,請參閱圖3,本發(fā)明實(shí)施例中的SPIBUS MASTER 300 包括:
[0066]第一寄存器301,用于配置待丟棄的訪問操作;
[0067]第二寄存器302,用于配置待保護(hù)的SPI FLASH的保護(hù)地址范圍;
[0068]處理器303,用于判斷將要對SPI FLASH的訪問操作是否為所述第一寄存器中配置的訪問操作,若是,則進(jìn)一步判斷將要對SPI FLASH的訪問地址范圍與所述第二寄存器中的配置的待保護(hù)的SPI FLASH的保護(hù)地址范圍是否至少部分重合,若是,則觸發(fā)對所述將要訪問的SPI FLASH的訪問地址范圍中與所述待保護(hù)的SPI FLASH的保護(hù)地址范圍重疊的部分地址的保護(hù)機(jī)制。
[0069]優(yōu)選的,本實(shí)施例中,處理器303還用于向CPU上報(bào)錯誤中斷以及所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址,其中所述錯誤中斷用于指示對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPIFLASH的保護(hù)地址范圍重疊的部分地址的訪問中斷。
[0070]或者,優(yōu)選的,本實(shí)施例中,處理器303還用于當(dāng)所述控制器檢測到所述保護(hù)機(jī)制被觸發(fā)時,所述控制器向CPU屏蔽錯誤中斷,其中所述錯誤中斷用于指示對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的訪問中斷。
[0071]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。
[0072]在本申請所提供的幾個實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
[0073]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
[0074]另外,在本發(fā)明各個實(shí)施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
[0075]所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計(jì)算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-OnlyMemory)、隨機(jī)存取存儲器(RAM, Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0076]以上所述,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【權(quán)利要求】
1.一種對SPI FLASH的寫保護(hù)方法,其特征在于,包括: 控制器獲取將要訪問的SPI FLASH的訪問地址范圍,其中所述控制器內(nèi)配置有預(yù)置SPIFLASH的保護(hù)地址范圍,所述訪問包括寫或者擦除; 所述控制器判斷所述將要訪問的SPI FLASH的訪問地址范圍與所述預(yù)置SPI FLASH的保護(hù)地址范圍是否至少部分重疊; 若至少部分重疊,則所述控制器觸發(fā)對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的保護(hù)機(jī)制。
2.根據(jù)權(quán)利要求1所述的對SPIFLASH的寫保護(hù)方法,其特征在于,所述控制器觸發(fā)對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的保護(hù)機(jī)制具體包括: 所述控制器丟棄對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPIFLASH的保護(hù)地址范圍重疊的部分地址的訪問命令。
3.根據(jù)權(quán)利要求1所述的對SPIFLASH的寫保護(hù)方法,其特征在于,所述方法還包括: 當(dāng)所述控制器檢測到所述保護(hù)機(jī)制被觸發(fā)時,所述控制器向CPU上報(bào)錯誤中斷以及所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPIFLASH的保護(hù)地址范圍重疊的部分地址,其中所述錯誤中斷用于指示對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的訪問中斷。
4.根據(jù)權(quán)利要求1所述的對SPIFLASH的寫保護(hù)方法,其特征在于,所述方法還包括: 當(dāng)所述控制器檢測到所述保護(hù)機(jī)制被觸發(fā)時,所述控制器向CPU屏蔽錯誤中斷,其中所述錯誤中斷用于指示對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPIFLASH的保護(hù)地址范圍重疊的部分地址的訪問中斷。
5.根據(jù)權(quán)利要求1所述的對SPIFLASH的寫保護(hù)方法,其特征在于,所述控制器為SPI總線主機(jī)。
6.—種控制器,其特征在于,包括: 獲取單元,用于獲取將要訪問的SPI FLASH的訪問地址范圍,其中所述控制器內(nèi)配置有預(yù)置SPI FLASH的保護(hù)地址范圍,所述訪問包括寫或者擦除; 判斷單元,用于判斷所述將要訪問的SPI FLASH的訪問地址范圍與所述預(yù)置SPI FLASH的保護(hù)地址范圍是否至少部分重疊; 保護(hù)單元,用于當(dāng)所述將要訪問的SPI FLASH的訪問地址范圍與所述預(yù)置SPI FLASH的保護(hù)地址范圍至少部分重疊時,觸發(fā)對所述將要訪問的SPIFLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的保護(hù)機(jī)制。
7.根據(jù)權(quán)利要求6所述的控制器,其特征在于,所述保護(hù)單元具體用于當(dāng)所述將要訪問的SPI FLASH的訪問地址范圍與所述預(yù)置SPI FLASH的保護(hù)地址范圍至少部分重疊時,丟棄對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的訪問命令。
8.根據(jù)權(quán)利要求6所述的控制器,其特征在于,所述控制器還包括: 上報(bào)單元,用于向CPU上報(bào)錯誤中斷以及所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址,其中所述錯誤中斷用于指示對所述將要訪問的SPI FLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的訪問中斷。
9.根據(jù)權(quán)利要求6所述的控制器,其特征在于,所述控制器還包括: 屏蔽單元,用于當(dāng)所述控制器檢測到所述保護(hù)機(jī)制被觸發(fā)時,所述控制器向CPU屏蔽錯誤中斷,其中所述錯誤中斷用于指示對所述將要訪問的SPIFLASH的訪問地址范圍中與所述預(yù)置SPI FLASH的保護(hù)地址范圍重疊的部分地址的訪問中斷。
10.根據(jù)權(quán)利要求6所述的控制器,其特征在于,所述控制器為SPI總線主機(jī)。
【文檔編號】G06F12/14GK104317743SQ201410513961
【公開日】2015年1月28日 申請日期:2014年9月29日 優(yōu)先權(quán)日:2014年9月29日
【發(fā)明者】王明亮, 雷震 申請人:上海華為技術(shù)有限公司