專利名稱:一種對(duì)存儲(chǔ)設(shè)備進(jìn)行訪問(wèn)權(quán)限限制的方法及存儲(chǔ)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)設(shè)備,尤其涉及一種對(duì)存儲(chǔ)設(shè)備進(jìn)行訪問(wèn)權(quán)限限制 的方法及存儲(chǔ)設(shè)備。
背景技術(shù):
以下為幾種常用的存儲(chǔ)器
RAM (Random Access Memory ,隨機(jī)訪問(wèn)存儲(chǔ)器),用戶可以對(duì)其進(jìn)行
隨時(shí)讀寫操作;
ROM (Read Only Memory,只讀存儲(chǔ)器),其中的數(shù)據(jù)寫入后不能進(jìn)行 修改;
PROM (Programmable ROM,可編程ROM),用戶可以用專用的編程 器將數(shù)據(jù)資料寫入PROM,但是只能寫一次, 一旦寫入后也無(wú)法修改;
EPROM (Erasable Programmable ROM,可擦除可編程ROM)芯片可重 復(fù)擦除和寫入,解決了 PROM只能寫入一次的弊端,但向EPROM內(nèi)寫入數(shù) 據(jù)要用專用的編程器,完成芯片中數(shù)據(jù)擦除也要用到EPROM擦除器;
EEPROM (Electrically Erasable Programmable ROM,電可擦除可編禾呈 ROM),可用電信號(hào)寫入數(shù)據(jù),也可用電信號(hào)擦除數(shù)據(jù);而且寫入和擦除的 數(shù)據(jù)以字節(jié)(Byte)為最小單位,不必將其中數(shù)據(jù)全部擦除完再寫入,徹底 擺脫了 EPROM擦除器和編程器的束縛;EPROM在寫入數(shù)據(jù)時(shí),仍要利用 一定的編程電壓;其中,EEPROM只有一個(gè)寫保護(hù)引腳,且此引腳一旦^f皮置 高電平,EEPROM內(nèi)所有地址中的數(shù)據(jù)都是只讀的,無(wú)法對(duì)特定地址的訪問(wèn) 權(quán)限進(jìn)行控制。
如果能夠?qū)崿F(xiàn)對(duì)存儲(chǔ)器中特定地址空間的訪問(wèn)權(quán)限限制,這樣就能更加 合理的對(duì)存儲(chǔ)器的信息進(jìn)行保護(hù)。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是提供一種對(duì)存儲(chǔ)設(shè)備進(jìn)行訪問(wèn)權(quán)限限制的方 法及存儲(chǔ)設(shè)備,能夠?qū)崿F(xiàn)對(duì)存儲(chǔ)設(shè)備中特定地址的保護(hù)。
為了解決上述問(wèn)題,本發(fā)明提供了 一種對(duì)存儲(chǔ)設(shè)備進(jìn)行訪問(wèn)權(quán)限限制的
方法,包括在信息存儲(chǔ)器中保存存儲(chǔ)設(shè)備的只讀地址空間信息和/或只寫地 址空間信息;根據(jù)所述只讀地址空間信息和/或只寫地址空間信息,對(duì)所述 存儲(chǔ)設(shè)備中只讀地址空間只進(jìn)行讀操作,對(duì)所述存儲(chǔ)設(shè)備中只寫地址空間只 進(jìn)行寫操作。
進(jìn)一步地,所述信息存儲(chǔ)器為所述存儲(chǔ)設(shè)備或外部設(shè)備。
進(jìn)一步地,所述信息存儲(chǔ)器為所述存儲(chǔ)設(shè)備時(shí),將只讀地址空間信息和 只寫地址空間信息所占用的地址空間設(shè)置為只讀。
進(jìn)一步地,將所述信息存儲(chǔ)器中保存的只讀地址空間信息和/或只寫地址 空間信息讀入隨機(jī)訪問(wèn)存儲(chǔ)器中,在對(duì)存儲(chǔ)設(shè)備進(jìn)行讀寫操作時(shí),查詢所述 隨機(jī)訪問(wèn)存儲(chǔ)器獲取所述只讀地址空間信息和/或只寫地址空間信息。
進(jìn)一步地,在對(duì)所述存儲(chǔ)設(shè)備進(jìn)行讀或?qū)懖僮鲿r(shí),直接查詢所述信息存 儲(chǔ)器,獲取只讀地址空間信息或只寫地址空間信息。
進(jìn)一步地,微處理器對(duì)所述存儲(chǔ)設(shè)備以通用方式進(jìn)行讀操作時(shí),將當(dāng)前 操作地址寫入地址寄存器中,將讀操作標(biāo)志寫入讀寫標(biāo)志寄存器中,根據(jù)所 述讀寫標(biāo)志寄存器中的讀操作標(biāo)識(shí)和地址寄存器中當(dāng)前操作地址,判斷當(dāng)前 操作地址是否處于所述只寫地址空間信息指示的只寫地址空間中,如果是, 不對(duì)當(dāng)前操作地址進(jìn)行讀操作,否則,對(duì)當(dāng)前才喿作地址進(jìn)行讀操作;
微處理器對(duì)所述存儲(chǔ)設(shè)備以通用方式進(jìn)行寫操作時(shí),將當(dāng)前操作地址寫 入地址寄存器中,將寫操作標(biāo)志寫入讀寫標(biāo)志寄存器中,根據(jù)所述讀寫標(biāo)志 寄存器中的寫操作標(biāo)識(shí)和地址寄存器中當(dāng)前操作地址,判斷當(dāng)前操作地址是 否處于所述只讀地址空間信息指示的只讀地址空間中,如果是,不對(duì)當(dāng)前操 作地址進(jìn)行寫操作,否則,對(duì)當(dāng)前操作地址進(jìn)行寫操作。進(jìn)一步地,微處理器對(duì)所述存儲(chǔ)設(shè)備以直接內(nèi)存存取方式進(jìn)行讀操作時(shí), 根據(jù)讀操作起始地址和長(zhǎng)度,確定讀操作的地址范圍,根據(jù)所述只寫地址空 間信息判斷是否有只寫空間處于所述讀操作的地址范圍內(nèi),如果是,以當(dāng)前 讀操作地址開始處到其下一個(gè)只寫地址空間開始處為界,進(jìn)行直接內(nèi)存存取 方式的讀操作,并以此只寫地址空間結(jié)束處作為下一次讀操作的起始地址, 否則,進(jìn)行正常的直接內(nèi)存存取方式的讀操作;
微處理器對(duì)所述存儲(chǔ)設(shè)備以直接內(nèi)存存取方式進(jìn)行寫操作時(shí),根據(jù)寫操 作起始地址和長(zhǎng)度,確定寫操作的地址范圍,根據(jù)所述只讀地址空間信息判 斷是否有只讀空間處于所述寫操作的地址范圍內(nèi),如果是,以當(dāng)前寫操作地 址開始處到其下一個(gè)只讀地址空間開始處為界,進(jìn)行直接內(nèi)存存取方式的寫 操作,并以此只讀地址空間結(jié)束處作為下一次寫操作的起始地址,否則,進(jìn) 行正常的直接內(nèi)存存取方式的寫操作。
進(jìn)一步地,以一個(gè)或多個(gè)只讀表的方式將所述只讀地址空間信息保存在
存儲(chǔ)設(shè)備中,所述只讀表包括只讀表的長(zhǎng)度,只讀表的類型,該只讀表的
序號(hào), 一對(duì)或多對(duì)只讀地址和只讀長(zhǎng)度,其中一對(duì)只讀地址和只讀長(zhǎng)度表示
一個(gè)只讀地址空間,所述只讀表的類型用于表示此表為只讀表;
以 一個(gè)或多個(gè)只寫表的方式將所述只寫地址空間信息保存在存儲(chǔ)設(shè)備 中,所述只寫表包括只寫表的長(zhǎng)度,只寫表的類型,該只寫表的序號(hào),一 對(duì)或多對(duì)只寫地址和只寫長(zhǎng)度,其中一對(duì)只寫地址和只寫長(zhǎng)度表示一個(gè)只寫 地址空間,所述只寫表的類型用于表示此表為只寫表。
進(jìn)一步地,所述只讀表和只寫表包括在屬性表中,所述屬性表中依次包 括信息表,只讀表和/或只寫表,所述信息表包括信息表的長(zhǎng)度;表的類型, 用于表明此表為信息表;保護(hù)地址的類型,即此存儲(chǔ)設(shè)備中的只讀地址或只 寫地址所占用的比特?cái)?shù);只讀表的個(gè)數(shù);只寫表的個(gè)數(shù);當(dāng)前有效的只讀表 序號(hào);當(dāng)前有效的只寫表序號(hào)。
進(jìn)一步地,所述存儲(chǔ)設(shè)備為電可擦除可編程只讀存儲(chǔ)器。 本發(fā)明還提供了一種可進(jìn)行訪問(wèn)權(quán)限限制的存儲(chǔ)設(shè)備,所述存儲(chǔ)設(shè)備中包含只讀地址空間信息和/或只寫地址空間信息,對(duì)所述存儲(chǔ)設(shè)備中只讀地址 空間只進(jìn)行讀操作,對(duì)所述存儲(chǔ)設(shè)備中只寫地址空間只進(jìn)行寫操作。
進(jìn)一步地,對(duì)所述存儲(chǔ)設(shè)備進(jìn)行讀或?qū)懖僮鲿r(shí),根據(jù)待讀或待寫地址, 查詢所述只讀地址空間信息或只寫地址空間信息,如果所述待讀地址包含在
所述只寫地址空間信息中,阻塞所述讀操作;如果所述待寫地址包含在所述
只讀地址空間信息中,阻塞所述寫操作。
進(jìn)一步地,所述只讀地址空間信息以一個(gè)或多個(gè)只讀表的方式保存在所
述存儲(chǔ)設(shè)備中,所述只讀表包括只讀表的長(zhǎng)度,只讀表的類型,該只讀表 的序號(hào), 一對(duì)或多對(duì)只讀地址和只讀長(zhǎng)度,其中一對(duì)只讀地址和只讀長(zhǎng)度表 示一個(gè)只讀地址空間,所述只讀表的類型用于表示此表為只讀表;
所述只寫地址空間信息以 一個(gè)或多個(gè)只寫表的方式保存在所述存儲(chǔ)設(shè)備 中,所述只寫表包括只寫表的長(zhǎng)度,只寫表的類型,該只寫表的序號(hào),一 對(duì)或多對(duì)只寫地址和只寫長(zhǎng)度,其中一對(duì)只寫地址和只寫長(zhǎng)度表示一個(gè)只寫 地址空間,所述只寫表的類型用于表示此表為只寫表;
所述只讀表和只寫表包括在屬性表中,所述屬性表中依次包括信息表, 只讀表和/或只寫表,所述信息表包括信息表的長(zhǎng)度;表的類型,用于表明 此表為信息表;保護(hù)地址的類型,即此存儲(chǔ)設(shè)備中的只讀地址或只寫地址所 占用的比特?cái)?shù);只讀表的個(gè)數(shù);只寫表的個(gè)數(shù);當(dāng)前有效的只讀表序號(hào);當(dāng) 前有效的只寫表序號(hào)。
該方法典型應(yīng)用于EEPROM,能夠?qū)崿F(xiàn)對(duì)存儲(chǔ)介質(zhì)中特定地址的保護(hù), 從而能有效的防止重要信息在用戶操作中被破壞,并能兼容MCU ( Micro Controller Unit,微控制器)在I2C總線上的兩種讀寫操作才莫式。
圖1是本發(fā)明中對(duì)存儲(chǔ)設(shè)備進(jìn)行訪問(wèn)權(quán)限限制的方法流程圖2是實(shí)施例中MCU以通用讀寫方式對(duì)已進(jìn)行訪問(wèn)權(quán)限限制的存儲(chǔ)器 進(jìn)行讀寫的方法流程圖;圖3是實(shí)施例中MCU以直接內(nèi)存存取方式對(duì)已進(jìn)行訪問(wèn)權(quán)限限制的存 儲(chǔ)器進(jìn)行讀l喿作的方法流程圖。
具體實(shí)施例方式
本文中,受保護(hù)地址是指只讀地址或只寫地址。
受保護(hù)地址是在存儲(chǔ)設(shè)備中要進(jìn)行只讀保護(hù)或只寫保護(hù)的數(shù)據(jù)的地址。
本發(fā)明中,對(duì)存儲(chǔ)設(shè)備進(jìn)行訪問(wèn)權(quán)限限制的方法包括以下步驟
步驟101,在信息存儲(chǔ)器中保存存儲(chǔ)設(shè)備的只讀地址空間信息和只寫地 址空間信息;
其中,信息存儲(chǔ)器和所述存儲(chǔ)設(shè)備可以是同一個(gè)存儲(chǔ)器,也可以是不同 的存儲(chǔ)器,即信息存儲(chǔ)器為上述存儲(chǔ)設(shè)備或外部設(shè)備。
將只讀地址空間信息和只寫地址空間信息分別以列表的方式包含在一屬 性表中,并將屬性表存儲(chǔ)在信息存儲(chǔ)器中。將此屬性表存放在信息存儲(chǔ)器的 一個(gè)固定位置中,也可以由系統(tǒng)確定其存;^文的位置,并將其首地址存;^文于一 寄存器中。MCU通過(guò)讀取該寄存器的值,得到屬性表首地址,進(jìn)一步根據(jù)該 首地址得到屬性表。
屬性表的信息組織方式可以有多種, 一種方式是,屬性表中包括信息表、 一個(gè)或多個(gè)只讀表、 一個(gè)或多個(gè)只寫表;
信息表包括如下字段信息表長(zhǎng)度、表的類型、保護(hù)地址類型、只讀表 的個(gè)數(shù)、只寫表的個(gè)數(shù)、當(dāng)前有效的只讀表序號(hào)和當(dāng)前有效的只寫表序號(hào)字 段,其中
表的類型,用于表明此表為信息表;
保護(hù)地址的類型,即此存儲(chǔ)器中的保護(hù)地址所占用的比特?cái)?shù) (8bit/16bit/32bit);如果此地址需占用32bit,則信息存儲(chǔ)器需要使用2個(gè)字 節(jié)存儲(chǔ)此地址;
當(dāng)前有效的只讀表序號(hào)和只寫表序號(hào)可以用bit位來(lái)表示。 上述有效的只讀表序號(hào)和只寫表序號(hào)主要是用于在一些應(yīng)用場(chǎng)合下某些地址是只讀的,而做另一些應(yīng)用場(chǎng)合下,這些地址可能又要求是可讀可寫的。
這樣通過(guò)信息表中的只讀只寫表是否有效(enable )功能可以比較方便的進(jìn)行 切換。
只讀表中可包括多個(gè)只讀空間,每個(gè)只讀表包括如下字段只讀表的長(zhǎng) 度、表的類型、該只讀表序號(hào)、若干個(gè)只讀空間字段,其中
表的類型表示此表為只讀表;
只讀空間字段進(jìn)一 步包含只讀地址和只讀長(zhǎng)度;
其中只讀地址1和只讀長(zhǎng)度1對(duì)應(yīng)的是一段只讀的地址空間,如只讀地 址l為0X00010,只讀長(zhǎng)度為200,則其指示的是0X00010-0X0210段地址空 間為只讀。只寫表的4各式和只讀表的格式相同。
當(dāng)然,本發(fā)明屬性表的形式不限于上述實(shí)施例,其他方式的屬性表,只 要能表示除只讀地址信息和只寫地址信息均包含在本發(fā)明中。例如,可以根 據(jù)具體應(yīng)用需要,省略一些字段,在本發(fā)明一實(shí)施例中,屬性表的信息表可 以只包含表的類型和保護(hù)地址類型字段,只包含一個(gè)只讀表,該只讀表包含 只讀表的長(zhǎng)度、表的類型、若干個(gè)只讀空間字段;只包含一個(gè)只寫表,該只 寫表只包含表的長(zhǎng)度、表的類型和若干個(gè)只寫空間字段。在本發(fā)明另一實(shí)施 例中,屬性表中可以只包含信息表和只讀表,或只包含信息表和只寫表。也 可以省略信息表,將只讀表或只寫表的首地址存入寄存器中,根據(jù)該首地址 直接得到只讀/寫表,只讀/寫表中包含表的長(zhǎng)度、地址類型、若干個(gè)只讀/寫 空間,等等,此處不再舉例。
上述信息存儲(chǔ)器與上述存儲(chǔ)設(shè)備是同一個(gè)存儲(chǔ)器時(shí),將屬性表占用的地 址段設(shè)定為只讀(即將屬性表占用的地址空間信息寫入屬性表的只讀表中), 由于只讀只寫保護(hù)只是針對(duì)用戶操作而言,可以通過(guò)設(shè)定MCU流程在系統(tǒng) 初始化之前(即所有的用戶進(jìn)行讀寫操作之前),對(duì)屬性表進(jìn)行解析,從而 得知屬性表所在的地址段是只讀地址空間。
其中,只讀表和只寫表中不包含相同的地址。
步驟102, 在對(duì)存儲(chǔ)設(shè)備進(jìn)行讀寫操作時(shí),根據(jù)待讀寫的地址查找只讀地址空間信息和/或只寫地址空間信息,根據(jù)只讀地址空間信息對(duì)其指示的只 讀地址空間進(jìn)行只讀操作,根據(jù)只寫地址空間信息對(duì)其指示的只寫地址空間 進(jìn)行只寫操作,對(duì)不能進(jìn)行讀或?qū)懙牡刂纷枞鄳?yīng)的讀寫操作,即如果待讀 地址包含在只寫地址空間信息中,則阻塞該讀操作,如果待寫地址包含在只 讀地址空間信息中,則阻塞該寫操作。
只讀地址空間信息和只寫地址空間信息以屬性表方式存儲(chǔ),系統(tǒng)初始化 時(shí),可通過(guò)讀取寄存器中屬性表的首地址,進(jìn)一步根據(jù)所述首地址在信息存 儲(chǔ)器中讀取屬性表中相應(yīng)的值。
對(duì)存儲(chǔ)設(shè)備進(jìn)行讀寫操作時(shí),可以先把只讀地址空間信息和只寫地址空
間信息讀入RAM中,再通過(guò)RAM查詢只讀地址或只寫地址,以加快查詢速 度,其中,可以通過(guò)DMA (Direct Memory Access ,直接內(nèi)存存取)讀寫方 式將只讀或只寫地址信息讀入RAM中;
也可以在需要對(duì)存儲(chǔ)設(shè)備進(jìn)行讀寫操作時(shí),直接在信息存儲(chǔ)器中查詢只 讀地址信息和只寫地址信息,保證數(shù)據(jù)的安全性。
實(shí)施例一中,MCU以通用讀寫General方式對(duì)已進(jìn)行訪問(wèn)權(quán)限限制的存 儲(chǔ)器進(jìn)行讀寫操作時(shí),在讀寫信號(hào)發(fā)送之前,配置需要進(jìn)行操作的存儲(chǔ)器地 址的寄存器,再配置讀寫標(biāo)志位的寄存器,根據(jù)操作地址和讀寫標(biāo)志來(lái)查詢 只讀或只寫表,如該地址在只讀表或只寫表內(nèi)則阻塞其相應(yīng)操作,否則,進(jìn) 行正常操作。
如圖2所示,MCU以通用讀寫方式對(duì)已進(jìn)行訪問(wèn)權(quán)限限制的存儲(chǔ)器進(jìn)行 讀寫的方法,具體包括以下步驟
步驟201,從存放屬性表首地址的寄存器中讀取屬性表的首地址;
步驟202,從屬性表的首地址中,讀取信息表,確定表長(zhǎng)和保護(hù)地址類
型;
步驟203, MCU將屬性表以DMA讀寫方式讀入內(nèi)部RAM中;
步驟204,根據(jù)屬性表中信息表的信息解析屬性表;
步驟205,配置操作存儲(chǔ)器的地址寄存器和讀寫標(biāo)志寄存器;即把當(dāng)前要進(jìn)行讀寫操作的地址寫入地址寄存器,把當(dāng)前要進(jìn)行的操作 類型即讀操作或?qū)懖僮鲗懭胱x寫標(biāo)志寄存器;
步驟206,判斷讀寫標(biāo)志寄存器中的讀寫標(biāo)志類型,如果是讀操作,執(zhí) 行下一步,如果是寫操作,轉(zhuǎn)到步驟211;
步驟207,根據(jù)當(dāng)前地址查詢屬性表中只寫列表;
步驟208,判斷當(dāng)前地址是否處于只寫列表指示的只寫地址空間;如果 是,執(zhí)行下一步,否則,轉(zhuǎn)到步驟210;
步驟209, MCU不發(fā)送讀信號(hào),不對(duì)當(dāng)前地址進(jìn)行讀操作,流程結(jié)束。
步驟210, MCU發(fā)送讀信號(hào),對(duì)當(dāng)前地址進(jìn)行讀操作,流程結(jié)束。
步驟211,根據(jù)當(dāng)前地址查詢屬性表中只讀列表;
步驟212,判斷當(dāng)前地址是否處于只讀列表指示的只讀地址空間;如果 是,執(zhí)行下一步,否則,轉(zhuǎn)到步驟214;
步驟213, MCU不發(fā)送寫信號(hào),不對(duì)當(dāng)前地址進(jìn)行寫操作,流程結(jié)束。
步驟214, MCU發(fā)送寫信號(hào),對(duì)當(dāng)前地址進(jìn)行寫操作,流程結(jié)束。
其中,步驟206-214可防止用戶在操作存儲(chǔ)設(shè)備時(shí)把重要的信息誤操作。
實(shí)施例二中,MCU以直接內(nèi)存存取方式對(duì)已進(jìn)行訪問(wèn)權(quán)限限制的存儲(chǔ)器 進(jìn)行讀寫操作時(shí),在MCU進(jìn)行讀寫操作之前,就根據(jù)起始地址和長(zhǎng)度確定 進(jìn)行訪問(wèn)的地址范圍,然后再查詢讀寫屬性表,做分段DMA讀寫,跳過(guò)受 保護(hù)地址,從而實(shí)現(xiàn)DMA模式下的只讀只寫限制。
如圖3所示,MCU以直接內(nèi)存存取方式對(duì)已進(jìn)行訪問(wèn)權(quán)限限制的存儲(chǔ)器 進(jìn)行讀操作的方法具體包括以下步驟
步驟301,讀取存儲(chǔ)介質(zhì)中設(shè)定地址中的值,確定屬性表首地址;
步驟302,在屬性表的首地址中,讀取表信息,確定表長(zhǎng)和定義地址類
型;
步驟303,根據(jù)DMA起始地址和長(zhǎng)度,確定DMA讀操作地址范圍; 步驟304,在存儲(chǔ)器中查詢屬性表中只寫列表;步驟305,查表判斷是否有只寫地址在此范圍中;如果是,進(jìn)行下一步, 否則轉(zhuǎn)到步驟308;
步驟306,以當(dāng)前操作地址開始到其下一個(gè)只寫地址空間開始處為界, 進(jìn)行DMA讀操作;
步驟307,以此只寫地址空間結(jié)束處作為DMA讀操作的起始地址;轉(zhuǎn)到 步驟303;
步驟308,進(jìn)行正常DMA讀操作,流程結(jié)束。
在其它實(shí)施例中,MCU以直接內(nèi)存存取方式對(duì)已進(jìn)行訪問(wèn)權(quán)限限制的存 儲(chǔ)器進(jìn)行寫操作的方法與上述讀操作的步驟同理。
上述方法是一種以軟件方式針對(duì)MCU以I2C (Inter - Integrated Circuit, 內(nèi)部集成電路)總線讀寫存儲(chǔ)介質(zhì)的一種方法,能夠?qū)崿F(xiàn)對(duì)存儲(chǔ)器中特定地 址的保護(hù),從而能有效的防止重要信息在用戶操作中被破壞,并能兼容MCU 在I2C總線上的兩種讀寫操作模式即General模式讀寫方式和DMA讀寫方式。 如果存儲(chǔ)器中需保護(hù)的地址較多,使用上述方法會(huì)占據(jù)存儲(chǔ)器一定量的存儲(chǔ) 空間。
本發(fā)明中還提供了 一種存儲(chǔ)設(shè)備,此存儲(chǔ)設(shè)備中包含只讀地址空間信息 和/或只寫地址空間信息,對(duì)上述存儲(chǔ)設(shè)備中只讀地址空間只進(jìn)行讀操作,對(duì) 上述存儲(chǔ)設(shè)備中只寫地址空間只進(jìn)行寫操作。且對(duì)此存儲(chǔ)設(shè)備進(jìn)行讀或?qū)懖艈?作時(shí),根據(jù)待讀或待寫地址,查詢只讀地址空間信息或只寫地址空間信息, 如果待讀地址包含在只寫地址空間信息中,阻塞讀操作;如果待寫地址包含 在只讀地址空間信息中,阻塞寫操作。其中,只讀地址空間信息和/或只寫地 址空間信息以上述方法中提到的屬性表的方式表示,此處不在贅述。
本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下, 熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明做出各種相應(yīng)的改變和變形,這些相 應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1、一種對(duì)存儲(chǔ)設(shè)備進(jìn)行訪問(wèn)權(quán)限限制的方法,其特征在于,在信息存儲(chǔ)器中保存存儲(chǔ)設(shè)備的只讀地址空間信息和/或只寫地址空間信息;根據(jù)所述只讀地址空間信息和/或只寫地址空間信息,對(duì)所述存儲(chǔ)設(shè)備中只讀地址空間只進(jìn)行讀操作,對(duì)所述存儲(chǔ)設(shè)備中只寫地址空間只進(jìn)行寫操作。
2、 如權(quán)利要求l所述的方法,其特征在于, 所述信息存儲(chǔ)器為所述存儲(chǔ)設(shè)備或外部設(shè)備。
3、 如權(quán)利要求2所述的方法,其特征在于,所述信息存儲(chǔ)器為所述存儲(chǔ)設(shè)備時(shí),將只讀地址空間信息和只寫地址空 間信息所占用的地址空間設(shè)置為只讀。
4、 如權(quán)利要求l所述的方法,其特征在于,將所述信息存儲(chǔ)器中保存的只讀地址空間信息和/或只寫地址空間信息 讀入隨機(jī)訪問(wèn)存儲(chǔ)器中,在對(duì)存儲(chǔ)設(shè)備進(jìn)行讀寫操作時(shí),查詢所述隨機(jī)訪問(wèn) 存儲(chǔ)器獲取所述只讀地址空間信息和/或只寫地址空間信息。
5、 如權(quán)利要求l所述的方法,其特征在于,在對(duì)所述存儲(chǔ)設(shè)備進(jìn)行讀或?qū)懖僮鲿r(shí),直接查詢所述信息存儲(chǔ)器,獲取 只讀地址空間信息或只寫地址空間信息。
6、 如權(quán)利要求1所述的方法,其特征在于,微處理器對(duì)所述存儲(chǔ)設(shè)備以通用方式進(jìn)行讀操作時(shí),將當(dāng)前操作地址寫 入地址寄存器中,將讀操作標(biāo)志寫入讀寫標(biāo)志寄存器中,根據(jù)所述讀寫標(biāo)志 寄存器中的讀操作標(biāo)識(shí)和地址寄存器中當(dāng)前操作地址,判斷當(dāng)前操作地址是 否處于所述只寫地址空間信息指示的只寫地址空間中,如果是,不對(duì)當(dāng)前操 作地址進(jìn)行讀操作,否則,對(duì)當(dāng)前操作地址進(jìn)行讀操作;微處理器對(duì)所述存儲(chǔ)設(shè)備以通用方式進(jìn)行寫操作時(shí),將當(dāng)前操作地址寫 入地址寄存器中,將寫操作標(biāo)志寫入讀寫標(biāo)志寄存器中,根據(jù)所述讀寫標(biāo)志寄存器中的寫操作標(biāo)識(shí)和地址寄存器中當(dāng)前操作地址,判斷當(dāng)前操作地址是 否處于所述只讀地址空間信息指示的只讀地址空間中,如果是,不對(duì)當(dāng)前操 作地址進(jìn)行寫操作,否則,對(duì)當(dāng)前操作地址進(jìn)行寫操作。
7、 如權(quán)利要求]所述的方法,其特征在于,微處理器對(duì)所述存儲(chǔ)設(shè)備以直接內(nèi)存存取方式進(jìn)行讀操作時(shí),根據(jù)讀操 作起始地址和長(zhǎng)度,確定讀操作的地址范圍,根據(jù)所述只寫地址空間信息判 斷是否有只寫空間處于所述讀操作的地址范圍內(nèi),如果是,以當(dāng)前讀操作地 址開始處到其下一個(gè)只寫地址空間開始處為界,進(jìn)行直接內(nèi)存存取方式的讀 操作,并以此只寫地址空間結(jié)束處作為下一次讀操作的起始地址,否則,進(jìn)行正常的直接內(nèi)存存取方式的讀操作;微處理器對(duì)所述存儲(chǔ)設(shè)備以直接內(nèi)存存取方式進(jìn)行寫操作時(shí),根據(jù)寫操 作起始地址和長(zhǎng)度,確定寫操作的地址范圍,根據(jù)所述只讀地址空間信息判 斷是否有只讀空間處于所述寫操作的地址范圍內(nèi),如果是,以當(dāng)前寫操作地 址開始處到其下一個(gè)只讀地址空間開始處為界,進(jìn)行直接內(nèi)存存取方式的寫 操作,并以此只讀地址空間結(jié)束處作為下一次寫操作的起始地址,否則,進(jìn) 行正常的直接內(nèi)存存取方式的寫操作。
8、 如權(quán)利要求l所述的方法,其特征在于,以一個(gè)或多個(gè)只讀表的方式將所述只讀地址空間信息保存在存儲(chǔ)設(shè)備 中,所述只讀表包括只讀表的長(zhǎng)度,只讀表的類型,該只讀表的序號(hào),一 對(duì)或多對(duì)只讀地址和只讀長(zhǎng)度,其中 一對(duì)只讀地址和只讀長(zhǎng)度表示一個(gè)只讀 地址空間,所述只讀表的類型用于表示此表為只讀表;以 一個(gè)或多個(gè)只寫表的方式將所述只寫地址空間信息保存在存儲(chǔ)設(shè)備 中,所述只寫表包括只寫表的長(zhǎng)度,只寫表的類型,該只寫表的序號(hào),一 對(duì)或多對(duì)只寫地址和只寫長(zhǎng)度,其中 一對(duì)只寫地址和只寫長(zhǎng)度表示一個(gè)只寫 地址空間,所述只寫表的類型用于表示此表為只寫表。
9、 如權(quán)利要求8所述的方法,其特征在于,所述只讀表和只寫表包括在屬性表中,所述屬性表中依次包括信息表, 只讀表和/或只寫表,所述信息表包括信息表的長(zhǎng)度;表的類型,用于表明此表為信息表;保護(hù)地址的類型,即此存儲(chǔ)設(shè)備中的只讀地址或只寫地址所占用的比特?cái)?shù);只讀表的個(gè)數(shù);只寫表的個(gè)數(shù);當(dāng)前有效的只讀表序號(hào);當(dāng) 前有效的只寫表序號(hào)。
10、 如權(quán)利要求l所述的方法,其特征在于, 所述存儲(chǔ)設(shè)備為電可擦除可編程只讀存儲(chǔ)器。
11、 一種可進(jìn)行訪問(wèn)權(quán)限限制的存儲(chǔ)設(shè)備,其特征在于,所述存儲(chǔ)設(shè)備中包含只讀地址空間信息和/或只寫地址空間信息,對(duì)所述 存儲(chǔ)設(shè)備中只讀地址空間只進(jìn)行讀操作,對(duì)所述存儲(chǔ)設(shè)備中只寫地址空間只 進(jìn)行寫操作。
12、 如權(quán)利要求11所述的存儲(chǔ)設(shè)備,其特征在于,對(duì)所述存儲(chǔ)設(shè)備進(jìn)行讀或?qū)懖僮鲿r(shí),根據(jù)待讀或待寫地址,查詢所述只 讀地址空間信息或只寫地址空間信息,如果所述待讀地址包含在所述只寫地 址空間信息中,阻塞所述讀操作;如果所述待寫地址包含在所述只讀地址空 間信息中,阻塞所述寫操作。
13、 如權(quán)利要求11所述的存儲(chǔ)設(shè)備,其特征在于,所述只讀地址空間信息以 一個(gè)或多個(gè)只讀表的方式保存在所述存儲(chǔ)設(shè)備 中,所述只讀表包括只讀表的長(zhǎng)度,只讀表的類型,該只讀表的序號(hào),一 對(duì)或多對(duì)只讀地址和只讀長(zhǎng)度,其中 一對(duì)只讀地址和只讀長(zhǎng)度表示一個(gè)只讀 地址空間,所述只讀表的類型用于表示此表為只讀表;所述只寫地址空間信息以 一個(gè)或多個(gè)只寫表的方式保存在所述存儲(chǔ)設(shè)備 中,所述只寫表包括只寫表的長(zhǎng)度,只寫表的類型,該只寫表的序號(hào),一 對(duì)或多對(duì)只寫地址和只寫長(zhǎng)度,其中一對(duì)只寫地址和只寫長(zhǎng)度表示一個(gè)只寫 地址空間,所述只寫表的類型用于表示此表為只寫表;所述只讀表和只寫表包括在屬性表中,所述屬性表中依次包括信息表, 只讀表和/或只寫表,所述信息表包括信息表的長(zhǎng)度;表的類型,用于表明 此表為信息表;保護(hù)地址的類型,即此存儲(chǔ)設(shè)備中的只讀地址或只寫地址所 占用的比特?cái)?shù);只讀表的個(gè)數(shù);只寫表的個(gè)數(shù);當(dāng)前有效的只讀表序號(hào);當(dāng) 前有效的只寫表序號(hào)。
全文摘要
本發(fā)明公開了一種對(duì)存儲(chǔ)設(shè)備進(jìn)行訪問(wèn)權(quán)限限制的方法及存儲(chǔ)設(shè)備,所述方法包括在信息存儲(chǔ)器中保存存儲(chǔ)設(shè)備的只讀地址空間信息和/或只寫地址空間信息;根據(jù)所述只讀地址空間信息和/或只寫地址空間信息,對(duì)所述存儲(chǔ)設(shè)備中只讀地址空間只進(jìn)行讀操作,對(duì)所述存儲(chǔ)設(shè)備中只寫地址空間只進(jìn)行寫操作。所述存儲(chǔ)設(shè)備中包含只讀地址空間信息和/或只寫地址空間信息,對(duì)所述存儲(chǔ)設(shè)備中只讀地址空間只進(jìn)行讀操作,對(duì)所述存儲(chǔ)設(shè)備中只寫地址空間只進(jìn)行寫操作。采用本發(fā)明的方法能夠?qū)崿F(xiàn)對(duì)存儲(chǔ)介質(zhì)中特定地址的保護(hù),從而能有效的防止重要信息在用戶操作中被破壞,并能兼容MCU在I2C總線上的兩種讀寫操作模式。
文檔編號(hào)G06F12/14GK101295281SQ20081011443
公開日2008年10月29日 申請(qǐng)日期2008年6月5日 優(yōu)先權(quán)日2008年6月5日
發(fā)明者馮備戰(zhàn), 蔣亞誠(chéng), 韜 謝 申請(qǐng)人:北京中星微電子有限公司