国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種智能卡及訪問智能卡閃存的方法

      文檔序號:6585419閱讀:176來源:國知局
      專利名稱:一種智能卡及訪問智能卡閃存的方法
      技術領域
      本發(fā)明涉及智能卡領域,尤其涉及一種智能卡及訪問智能卡閃存的方法。
      背景技術
      智能卡硬件結構一般包括中央處理器(CPU)、隨機存儲器(RAM)、可編程只讀存儲 器(EEPR0M)和只讀存儲器(ROM)。EEPR0M是非易失存儲單元,因其成本高,存儲空間小等原 因逐漸被技術趨于成熟、成本較低、存儲空間較大的NOR FLASH和NAND FLASH所取代。NOR FLASH和NAND FLASH都是閃存芯片,它們是非易失性存儲器,以塊為單位進行擦除和再編程。在實際的程序編寫過程中,需要對閃存進行訪問時,對它的讀寫操作需要按塊進 行擦除,然后再進行寫入,一般這個過程是通過在所編寫的主程序中調用特定的閃存接口 函數(shù)來完成。特別是,如果程序只需要讀寫閃存的某個字節(jié),則需要先將目標字節(jié)所在的塊 讀到RAM空間中,在RAM空間中對目標字節(jié)修改后,再將RAM空間的數(shù)據(jù)寫回到閃存中。通 過這種方式達到修改某個字節(jié)的目的,對于一些程序設計來說十分不便。再如,在C語言程序中要修改結構體中的某個變量,則需要在程序中調用大量的 閃存接口函數(shù)來進行修改。首先,要在RAM中創(chuàng)建結構體的緩沖,計算出結構體的大小,然 后通過閃存接口函數(shù)從閃存中讀取結構體的數(shù)據(jù)到RAM中的緩沖,再對結構體中需要修改 的變量進行修改,最后,再由閃存接口函數(shù)將結構體數(shù)據(jù)寫回到閃存中。如果程序經(jīng)常需要 通過結構體的方式來修改保存在閃存中的結構體數(shù)據(jù),那么就需要頻繁的在RAM空間中創(chuàng) 建結構體的緩沖,將數(shù)據(jù)修改完成后還需要釋放這部分RAM空間。如果RAM空間管理不善, 很容易生成RAM空間碎片,同時對于代碼的可讀性、精簡性都會帶來很大的影響。特別是對于一些移植項目,如果在原開發(fā)平臺程序采用C語言編寫,選取按字節(jié) 采用指針的方式訪問RAM中的結構體空間,而目標開發(fā)平臺程序如果需要將結構體數(shù)據(jù)保 存在閃存中,那么按字節(jié)采用指針方式訪問閃存空間的結構體數(shù)據(jù),就要多次調用閃存接 口函數(shù),并且大量修改原程序代碼,會給程序的移植帶來很大的不利,而且容易產生錯誤。綜上所述,現(xiàn)有訪問智能卡閃存的方法需要在主程序體中調用大量的閃存接口函 數(shù),造成對閃存的訪問繁瑣并且易出現(xiàn)錯誤的問題。

      發(fā)明內容
      本發(fā)明提供一種訪問智能卡閃存的方法,能夠簡化對智能卡閃存訪問的過程。為解決上述技術問題,本發(fā)明提供了一種訪問智能卡閃存的方法,所采用的技術 方案,包括在地址保護單元中設置閃存地址的訪問權限為不可讀寫;當指令代碼訪問受 保護的閃存地址時,進行數(shù)據(jù)異常處理,獲取指令代碼的指令類型及其對應的指令信息;根 據(jù)指令類型及其對應的指令信息,訪問智能卡閃存。采用本發(fā)明技術方案所提供的訪問智能卡閃存的方法,能通過地址保護單元的功 能對閃存進行訪問,編程人員不必考慮閃存讀取程序接口和閃存寫入程序接口的問題,簡化了閃存讀取和寫入的過程,為程序編寫帶來方便。本發(fā)明還提供了一種智能卡,能夠簡化對智能卡閃存訪問的過程。為解決上述技術問題,本發(fā)明還提供了一種智能卡,采用的技術方案包括地址保 護單元,用于設定閃存地址的訪問權限為不可讀寫;數(shù)據(jù)異常處理單元,用于當指令代碼訪 問地址保護單元中閃存地址時,進行數(shù)據(jù)異常處理,獲取指令代碼的指令類型及其對應的 指令信息;訪問單元,用于根據(jù)指令類型及其對應的指令信息,訪問智能卡閃存。采用本發(fā)明技術方案所提供的智能卡,能通過地址保護單元的功能對閃存進行訪 問,編程人員不必考慮閃存讀取程序接口和閃存寫入程序接口的問題,簡化了閃存讀取和 寫入的過程,為程序編寫帶來方便。


      圖1為本發(fā)明實施例訪問智能卡閃存的方法流程圖;圖2為本發(fā)明實施例ARM匯編指令代碼的典型格式;圖3為本發(fā)明實施例智能卡的系統(tǒng)框圖。
      具體實施例方式下面結合附圖對本發(fā)明實施例訪問智能卡閃存的方法進行詳細描述。如圖1所示,本發(fā)明實施例訪問智能卡閃存的方法,包括S1、在地址保護單元中設置閃存地址的訪問權限為不可讀寫。具體地,本實施例以目前業(yè)界廣泛使用的采用ARM芯片的智能卡為例。ARM芯片的 地址保護單元為內存保護單元(MPU),在內存保護單元地址保護設定程序中設定需要進行 讀寫保護的閃存地址空間,本實施例將閃存地址OxAOOOO到OxBFFFF設定為不可讀寫。S2、當指令代碼訪問受保護的閃存地址時,進行數(shù)據(jù)異常處理,獲取指令代碼的指 令類型及其對應的指令信息。本實施例中,如果需要對閃存中OxAOOOO到OxBFFFF這段地址空間進行讀取或寫 入操作,那么在智能卡應用系統(tǒng)中進行程序代碼編寫時,利用C語言指針,指針指向需要訪 問的閃存地址,本實施例中編寫的C語言代碼如下u32*p = (u32*) OxAOOOO ;*p = 0X100 ;C語言代碼經(jīng)過ARM編譯器編譯之后會生成ARM匯編指令代碼,匯編指令代碼的具 體形式與所用的編譯器有關,本實施例中編譯生成的匯編指令代碼如下MOV R0, #0xA0000MOV Rl, #0X100STR Rl, [R0]ARM匯編指令代碼的典型格式如圖2所示,opcode表示指令操作符編碼,cond表 示指令執(zhí)行的條件,S表示決定指令的操作是否影響CPSR的值,Rd表示目標寄存器編碼, Rn表示包含第一個操作數(shù)的寄存器編碼,Shifter_operand表示移位操作數(shù)。智能卡應用 系統(tǒng)執(zhí)行匯編指令代碼,當執(zhí)行到STR Rl,[R0]這條指令時,鏈接寄存器LR獲取引起異常 的指令STR Rl,[R0],進行數(shù)據(jù)異常處理。數(shù)據(jù)異常處理步驟由智能卡應用系統(tǒng)中的數(shù)據(jù)異常中斷處理程序執(zhí)行。進一步地,提取指令代碼和智能卡所有寄存器的值,將指令碼按照指令格式和所 有寄存器的值寫入全局變量數(shù)組中。具體地,是由智能卡應用系統(tǒng)中數(shù)據(jù)異常中斷處理程序獲取引起中斷的指令碼 STR Rl, [R0],并且將指令碼按照圖2所示的32位指令格式寫入全局變量數(shù)組中,同時獲取 智能卡芯片的所有寄存器的值寫入全局變量數(shù)組中。其中,全局變量數(shù)組是與指令碼等位長的線性數(shù)組,所含單 元的個數(shù)與智能卡芯片所具 有寄存器個數(shù)相同。進一步地,從全局變量數(shù)組中獲取指令代碼的指令類型及其對應的指令信息。具體地,智能卡應用系統(tǒng)中的指令分析程序對產生中斷的指令代碼進行分析,獲 取指令代碼的指令類型及其對應的指令信息。具體地,從指令碼格式中opcode處獲取指令類型。S3、根據(jù)指令類型及其對應的指令信息,訪問智能卡閃存。進一步地,指令類型包括寫入指令,與其對應的指令信息包括要寫入閃存的目標 地址和待寫入閃存的數(shù)據(jù)。具體地,本實施例中STR Rl, [R0]為寫入指令。進一步地,根據(jù)指令類型及其對應的指令信息,訪問智能卡閃存,具體為從智能 卡應用系統(tǒng)中調用閃存寫入接口函數(shù),將待寫入閃存的數(shù)據(jù)寫入到要寫入閃存的目標地址 在閃存中對應的位置。進一步地,除寫入指令外,指令類型還包括讀取指令,與其對應的指令信息包括數(shù) 據(jù)存放的目標地址和數(shù)據(jù)存放的目標寄存器。具體地,在匯編指令中LDR為讀取指令。進一步地,所述根據(jù)指令類型及其對應的指令信息,訪問所述智能卡閃存,具體 為從智能卡應用系統(tǒng)中調用閃存讀取接口函數(shù),從數(shù)據(jù)存放的目標地址在閃存中對 應的位置讀取目標數(shù)據(jù)。進一步地,在從數(shù)據(jù)存放的目標地址在閃存中對應的位置讀取目標數(shù)據(jù)之后,該 方法還包括將目標數(shù)據(jù)賦給全局變量數(shù)組中的數(shù)據(jù)存放的目標寄存器,更新全局變量數(shù) 組;由數(shù)據(jù)異常中斷處理程序將更新的全局變量數(shù)組寫回指令代碼所在程序段中。采用本發(fā)明技術方案所提供的訪問智能卡閃存的方法,能通過地址保護單元的功 能以指針地址的形式對閃存進行訪問,編程人員不必考慮閃存讀取程序接口和閃存寫入程 序接口的問題,簡化了閃存讀取和寫入的過程,為程序編寫帶來方便。如圖3所示,本發(fā)明實施例還提供了一種智能卡1,包括地址保護單元2,用于設 定閃存地址的訪問權限為不可讀寫;數(shù)據(jù)異常處理單元3,用于當指令代碼訪問地址保護 單元中閃存地址時,進行數(shù)據(jù)異常處理,獲取指令代碼的指令類型及其對應的指令信息;訪 問單元4,用于根據(jù)指令類型及其對應的指令信息,訪問智能卡閃存。具體地,本實施例的地址保護單元為ARM芯片的內存保護單元(MPU)。進一步地, 本實施例智能卡,數(shù)據(jù)異常處理單元3包括,指令提取模塊301,用于提取指令代碼和智能 卡所有寄存器的值,將指令代碼按照指令格式和所有寄存器的值寫入全局變量數(shù)組中;指令分析模塊302,用于從全局變量數(shù)組中獲取指令代碼的指令類型及其對應的指令信息。具體地,本實施例的數(shù)據(jù)異常處理單元3包括鏈接寄存器,其中鏈接寄存器用于獲取指令代碼的指令類型及其對應的指令信息。進一步地,本實施例智能卡,指令類型包括讀取指令,與其對應的指令信息包括數(shù) 據(jù)存放的目標地址和數(shù)據(jù)存放的目標寄存器。進一步地,本實施例智能卡,指令類型包括寫入指令,與其對應的指令信息包括要 寫入閃存的目標地址和待寫入閃存的數(shù)據(jù)。進一步地,本實施例智能卡,訪問單元4包括閃存讀取接口函數(shù)模塊401,用于 從數(shù)據(jù)存放的目標地址在閃存中對應的位置讀取目標數(shù)據(jù);賦值模塊403,用于將目標數(shù) 據(jù)賦給全局變量數(shù)組中的數(shù)據(jù)存放的目標寄存器,更新所述全局變量數(shù)組;數(shù)據(jù)寫回模塊 404,用于將更新的全局變量數(shù)組寫回指令代碼所在程序段。 進一步地,本實施例智能卡,訪問單元4還包括閃存寫入接口函數(shù)模塊402,用于 調用閃存寫入接口函數(shù),將待寫入閃存的數(shù)據(jù)寫入到要寫入閃存的目標地址在閃存中對應 的位置。采用本發(fā)明技術方案所提供的智能卡,能通過地址保護單元功能以指針地址的形 式對閃存進行訪問,編程人員不必考慮閃存讀取程序接口和閃存寫入程序接口的問題,簡 化了閃存讀取和寫入的過程,為程序編寫帶來方便。以上所述,僅為本發(fā)明的具體實施方式
      ,但本發(fā)明的保護范圍并不局限于此,任何 熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到變化或替換,都應涵 蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應以所述權利要求的保護范圍為準。
      權利要求
      一種訪問智能卡閃存的方法,其特征在于,該方法包括在地址保護單元中設置閃存地址的訪問權限為不可讀寫;當指令代碼訪問受保護的閃存地址時,進行數(shù)據(jù)異常處理,獲取指令代碼的指令類型及其對應的指令信息;根據(jù)所述指令類型及其對應的指令信息,訪問所述智能卡閃存。
      2.按照權利要求1所述的訪問智能卡閃存的方法,其特征在于,所述進行數(shù)據(jù)異常處 理,獲取指令代碼的指令類型及其對應的指令信息,包括提取所述指令代碼和智能卡所有寄存器的值,將所述指令代碼按照指令格式和所述所 有寄存器的值寫入全局變量數(shù)組中;從所述全局變量數(shù)組中獲取指令代碼的指令類型及其對應的指令信息。
      3.按照權利要求1或2所述的訪問智能卡閃存的方法,其特征在于,所述指令類型包括 讀取指令,與其對應的所述指令信息包括數(shù)據(jù)存放的目標地址和數(shù)據(jù)存放的目標寄存器。
      4.按照權利要求3所述的訪問智能卡閃存的方法,其特征在于,所述根據(jù)所述指令類 型及其對應的指令信息,訪問所述智能卡閃存,包括調用閃存讀取接口函數(shù),從所述數(shù)據(jù)存放的目標地址在閃存中對應的位置讀取目標數(shù)據(jù)。
      5.按照權利要求4所述的訪問智能卡閃存的方法,所述調用閃存讀取接口函數(shù),從所 述數(shù)據(jù)存放的目標地址在閃存中對應的位置讀取目標數(shù)據(jù)之后,該方法還包括將所述目標數(shù)據(jù)賦給所述全局變量數(shù)組中的所述數(shù)據(jù)存放的目標寄存器,更新所述全 局變量數(shù)組;將更新的全局變量數(shù)組寫回指令代碼所在程序段。
      6.按照權利要求1或2所述的訪問智能卡閃存的方法,其特征在于,所述指令類型包括 寫入指令,與其對應的所述指令信息包括要寫入閃存的目標地址和待寫入閃存的數(shù)據(jù)。
      7.按照權利要求6所述的訪問智能卡閃存的方法,其特征在于,所述根據(jù)所述指令類 型及其對應的指令信息,訪問所述智能卡閃存,包括調用閃存寫入接口函數(shù),將所述待寫入閃存的數(shù)據(jù)寫入到所述要寫入閃存的目標地址 在閃存中對應的位置。
      8.按照權利要求1所述的訪問智能卡閃存的方法,其特征在于所述獲取指令代碼的 指令類型及其對應的指令信息具體為采用鏈接寄存器獲取所述指令代碼的指令類型及其 對應的指令信息。
      9.一種智能卡,其特征在于,包括地址保護單元,用于設定閃存地址的訪問權限為不可讀寫;數(shù)據(jù)異常處理單元,用于當指令代碼訪問所述地址保護單元中所述閃存地址時,進行 數(shù)據(jù)異常處理,獲取指令代碼的指令類型及其對應的指令信息;訪問單元,用于根據(jù)所述指令類型及其對應的指令信息,訪問智能卡閃存。
      10.按照權利要求9所述的智能卡,其特征在于,所述數(shù)據(jù)異常處理單元包括指令提取模塊,用于提取所述指令代碼和智能卡所有寄存器的值,將所述指令代碼按 照指令格式和所述所有寄存器的值寫入全局變量數(shù)組中;指令分析模塊,用于從所述全局變量數(shù)組中獲取指令代碼的指令類型及其對應的指令信息。
      11.按照權利要求9或10所述的智能卡,其特征在于,所述指令類型包括讀取指令,與 其對應的所述指令信息包括數(shù)據(jù)存放的目標地址和數(shù)據(jù)存放的目標寄存器。
      12.按照權利要求11所述的智能卡,其特征在于,所述訪問單元包括閃存讀取接口函數(shù)模塊,用于從所述數(shù)據(jù)存放的目標地址在閃存中對應的位置讀取目 標數(shù)據(jù)。
      13.按照權利要求12所述的智能卡,其特征在于,所述訪問單元還包括賦值模塊,用于將所述目標數(shù)據(jù)賦給所述全局變量數(shù)組中的所述數(shù)據(jù)存放的目標寄存 器,更新所述全局變量數(shù)組;數(shù)據(jù)寫回模塊,用于將更新的全局變量數(shù)組寫回指令代碼所在程序段。
      14.按照權利要求9或10所述的智能卡,其特征在于,所述指令類型包括寫入指令,與 其對應的所述指令信息包括要寫入閃存的目標地址和待寫入閃存的數(shù)據(jù)。
      15.按照權利要求14所述的智能卡,其特征在于,所述訪問單元包括閃存寫入接口函數(shù)模塊,用于調用閃存寫入接口函數(shù),將所述待寫入閃存的數(shù)據(jù)寫入 到所述要寫入閃存的目標地址在閃存中對應的位置。
      16.按照權利要求9所述的智能卡,其特征在于所屬智能卡包括嵌入式芯片,所述地 址保護單元為所述嵌入式芯片的內存保護單元。
      17.按照權利要求9所述的智能卡,其特征在于所述數(shù)據(jù)異常處理單元包括鏈接寄存 器,其中鏈接寄存器用于獲取所述指令代碼的指令類型及其對應的指令信息。
      全文摘要
      本發(fā)明公開了一種智能卡及訪問智能卡閃存的方法,涉及智能卡領域,為解決現(xiàn)有技術中訪問智能卡時需要在主程序體中調用大量的閃存接口函數(shù)帶來的問題。本發(fā)明訪問智能卡閃存的方法包括在地址保護單元中設置閃存地址的訪問權限為不可讀寫;當指令代碼訪問受保護的閃存地址時,進行數(shù)據(jù)異常處理,獲取指令代碼的指令類型及其對應的指令信息;根據(jù)指令類型及其對應的指令信息,訪問智能卡閃存。本發(fā)明還公開了一種利用此方法訪問智能卡內存的智能卡。本發(fā)明用于智能卡對存儲空間的訪問。
      文檔編號G06K19/073GK101840520SQ200910244079
      公開日2010年9月22日 申請日期2009年12月28日 優(yōu)先權日2009年12月28日
      發(fā)明者賈慶剛 申請人:北京握奇數(shù)據(jù)系統(tǒng)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1