TWI603265B - 積體電路射頻 - Google Patents

積體電路射頻 Download PDF

Info

Publication number
TWI603265B
TWI603265B TW102122333A TW102122333A TWI603265B TW I603265 B TWI603265 B TW I603265B TW 102122333 A TW102122333 A TW 102122333A TW 102122333 A TW102122333 A TW 102122333A TW I603265 B TWI603265 B TW I603265B
Authority
TW
Taiwan
Prior art keywords
firmware module
software application
memory
supervisor call
firmware
Prior art date
Application number
TW102122333A
Other languages
English (en)
Other versions
TW201401169A (zh
Inventor
喬爾 大衛 斯特普爾頓
Original Assignee
北歐半導體公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北歐半導體公司 filed Critical 北歐半導體公司
Publication of TW201401169A publication Critical patent/TW201401169A/zh
Application granted granted Critical
Publication of TWI603265B publication Critical patent/TWI603265B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44557Code layout in executable memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/0003Software-defined radio [SDR] systems, i.e. systems wherein components typically implemented in hardware, e.g. filters or modulators/demodulators, are implented using software, e.g. by involving an AD or DA conversion stage such that at least part of the signal processing is performed in the digital domain

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Transceivers (AREA)

Description

積體電路射頻
本發明係關於積體電路射頻通訊裝置以及設定該等裝置的該等方法。
傳統的積體電路通訊裝置係整合一處理器、記憶體以及射頻通訊邏輯於一個矽晶片上。一天線可以被製造在該矽晶片上或是由外部連結。該裝置將具有數個腳位用於連結一電源供應、時脈來源以及任何外部周邊,例如感應器、計時器、數位轉類比轉換器以及輸出裝置。該處理器界接該射頻通訊邏輯用以監督射頻訊息的傳送及/或接收。
該等射頻通訊裝置或晶片可以被廣泛使用在無線產品上,例如無線滑鼠及鍵盤、遊戲控制器、腳踏車變速馬達、遠端遙控、車庫開啟器、無線擴音器等。
在此一裝置上的該處理器可以直接地從非揮發性記憶體上執行軟體,以根據一個預設的射頻協定,例如藍芽(Bluetooth)或無線射頻識別技術(ZigBee),而控制該射頻通訊邏輯。
在一個例如為無線滑鼠且合併此一射頻通訊 晶片的完整產品之製程上,通常涉及該射頻晶片的製造者,其提供該晶片給產品製造者,該產品製造者再將該晶片整合至該產品上。該晶片製造者也可提供一個開發套件和文件讓該產品製造者可以對用於該射頻裝置的自訂應用軟體進行開發、安裝及除錯,該開發套件包含多種工具,例如一個交互編譯器、載入器及除錯器。在一個例子裡,該自訂應用軟體可以包括數個常用程式用於接收來自於無線滑鼠的移動感應器的輸入以及根據所需的協定傳送合適的射頻訊息。
一個開發套件可額外包含來源程式碼用於軟體資料庫及/或操作系統,該來源程式碼由該晶片製造者寫入。接著該產品製造者可編譯並連結該被提供的來源程式碼至其自訂的軟體應用,用以創造一個單一目標檔案用於載入每一晶片的記憶體裡的一個預設位址。
該資料庫或操作系統可以包含數個指令用於執行一個特定的射頻協定。其可包括其他功能函數,例如記憶體管理、處理器排程、內部處理器通訊…等。該應用開發者可以從應用程式碼呼叫這些被提供的功能函數,而不需從頭開始將其寫入。故可使應用軟體的開發更加簡單和快速。且亦可有益於該射頻晶片的不同模組間的可攜性。
然而,本發明人已了解該等傳統的方法尚可以被進一步改進。
本發明之一目的係在提供一種設定一積體電路射頻通訊裝置的方法,其中:該裝置包括一處理器、記憶體以及射頻通訊邏輯;該記憶體具有一韌體模組被儲存於一韌體記憶體位址,該韌體模組包括多個指令用於根據一預設的射頻協定來控制該射頻通訊邏輯;以及該處理器被設定用以接收多個監督者呼叫指令,每一監督者呼叫指令具有一關聯的監督者呼叫號碼,並藉由(1)調用韌體模組裡的一監督者呼叫操作器,以及(2)使該監督者呼叫號碼可用於該呼叫操作器,而回應一監督者呼叫指令,該方法包括載入一個軟體應用至該裝置的記憶體,使該應用被儲存在一預設的應用記憶體位址,其中該軟體應用被配置藉由發出一個監督者呼叫指令而從該韌體模組中調用一射頻通訊功能函數,該監督者呼叫指令具有一關聯的預設監督者呼叫號碼對應於該被調用的功能函數。
因此所屬領域具通常知識者根據本發明可以得知,一個軟體應用可以被載入至一個射頻通訊晶片,以經由監督者呼叫指令而界接一個提供射頻控制功能函數的韌體模組。
此方法移除了該軟體應用開發者將該應用程式碼與該晶片製造者所提供的一個資料庫或操作系統連結的必要性,藉此產生一個更簡易且更有效率的開發過程。藉由避免該用於連結-時間依賴關係的必要性,在該軟體開 發時期之錯誤增加的機會將可以被減少。由於在相繼的開發階段其不用與該提供射頻控制功能函數的韌體模組維持重複連結,該記憶體的各單元目標的位址在該開發過程裡可以被維持不改變。該記憶體位址裡的連續性可以避免錯誤發生,並且在錯誤增加時加強除錯。
在較佳的實施例裡,儲存於韌體記憶體位址的該韌體模組是一個連結的二進位。因此該韌體模組與該軟體應用之間沒有連結是需要、或甚至是可能的。在此假設該韌體模組通常將是被編譯的二進位模組(例如由C程式語言編譯),儘管其也可能直接由機器語言所組合。
為了開發該軟體應用,該應用開發者所需要知道的非標準資訊(即不藉由該處理器或裝置結構決定)僅係:該預設的軟體-應用記憶體位址;關於任何可使用於該軟體應用的資料記憶體(例如在隨機記憶體裡)數量的資訊,以及監督者呼叫號碼和該韌體模組裡的射頻通訊功能函數間的預設對應關係。此資訊可足夠來用於寫入、編譯及載入一個軟體應用於該裝置上。其假設該應用開發者可以傳統地具有一個包含該資訊的標頭檔案(例如在C程式語言裡)。(當然,該一標頭檔案可以選擇地包含其他、增加的要素用以提供更多協助給該應用開發者。)
本發明用以設定一裝置的方法之其他優點是該裝置製造者不需要在其韌體模組裡揭露機密的來源程式碼給該應用開發者。
該積體電路裝置可以提供已預先載入該裝置 的該韌體模組給該軟體應用的一開發者。其可以更增加任何被包含在該韌體模組裡的機密資訊的安全性。然而,這並非是基本的。該應用該發者可反而接收該韌體模組為預先編譯的指令之一個二進位影像,並且載入該韌體模組於該裝置上。
因此,根據進一步之觀點,本發明係提供一個用以設定一個積體電路射頻通訊裝置的方法,其中該裝置包含一個處理器、記憶體,以及射頻通訊邏輯,該方法包括:載入一軟體應用至該裝置的記憶體,以使該應用被儲存於一預設的應用記憶體位址;以及載入一韌體模組至該裝置的記憶體,以使該韌體模組被儲存於一預定的韌體記憶體位址,該韌體模組包括多個指令用於根據一預設的射頻協定來控制該射頻通訊邏輯,其中:該處理器被設定用以接收多個監督者呼叫指令,每一監督者呼叫指令具有一關聯的監督者呼叫號碼,並藉由(1)調用韌體模組裡的一監督者呼叫操作器,以及(2)使該監督者呼叫號碼可用於該呼叫操作器,而回應一監督者呼叫指令;以及該軟體應用被配置來藉由發出一個監督者呼叫指令,而從該韌體模組中調用一射頻通訊功能函數,該監督者呼叫指令具有一關聯的預設監督者呼叫號碼對應於該欲被調用的功能函數。
該韌體模組和該軟體應用可以任何順序或實質地同時被載入於該裝置上。由此可知將兩者同時載入仍然係本質上不同於載入單、連結的軟體應用和資料庫,如該技術領域者已在過去所完成的。如同先前,該韌體模組較佳地係一個編譯和連結的二進位模組(但沒有被連結於該軟體應用)。
本發明也可擴展至一個積體電路射頻裝置本身。
因此,依據本發明的第三觀點,係提供一種積體電路射頻通訊裝置,其中:該裝置包括一處理器、記憶體以及射頻通訊邏輯;該記憶體具一韌體模組被儲存在一韌體記憶體位址,該韌體模組包括多個指令用於根據一預定的射頻協定來控制該射頻通訊邏輯;以及該處理器被設定用以接收多個監督者呼叫指令,每一監督者呼叫指令具有一關聯的監督者呼叫號碼,並藉由(1)調用韌體模組裡的一監督者呼叫操作器,(2)使該監督者呼叫號碼可用於該呼叫操作器,而回應一監督者呼叫指令;該記憶體具有一軟體應用儲存於一預設的應用記憶體位址,該軟體應用被配置用以藉由發出一監督者呼叫指令而從該韌體模組中調用一射頻通訊功能函數,該監督者呼叫指令具有一關聯的預設監督者呼叫號碼對應於該被調用的功能函數。
根據本發明更進一步之觀點,係提供一韌體模 組以及一儲存該韌體模組之暫存或非暫存媒體,用於載入一積體電路射頻通訊裝置於一韌體記憶體位址,該裝置包括一處理器、記憶體、以及射頻通訊邏輯,該韌體模組包括:多數個指令,用於根據一預定的射頻協定來控制該射頻通訊邏輯;一監督者呼叫操作器,被配置用以回應一軟體應用所發出的監督者呼叫指令,其係藉由執行一對應於一關聯於該監督者呼叫指令的監督者呼叫號碼之射頻通訊功能函數。
該韌體模組較佳地係一連結的二進位模組。
根據本發明再進一步之觀點,係提供一軟體應用以及一儲存該軟體應用之暫存或非暫存媒體,用於載入一積體電路射頻通訊裝置於一軟體應用記憶體位址,該軟體應用被配置用以調用一射頻通訊功能函數,係藉由發出一具有一關聯之預設監督者呼叫號碼的監督者呼叫指令,該監督者呼叫號碼係對應於該被調用的功能函數。
在任何前述觀點的較佳實施例裡,該韌體模組被配置以使得由該韌體模組所提供之所有射頻通訊功能函數被具有各自監督者呼叫號碼的多個監督者呼叫指令所調用,其係根據該等號碼與功能函數間的一預設相對應關係。在這個方法下,該裝置無須提供其它用於調用該等功能函數的機制,藉此避免實質靜態連結或執行-時間連結,並且簡化該裝置和該軟體應用的開發。
由此將得知該韌體模組可以提供其它無須與射頻通訊相關的功能函數,該功能函數可被該軟體應用所調用;舉例來說,一個加密的演算法。較佳地係該裝置被設定使得所有該等功能函數的調用係藉由該等監督者呼叫指令的發出而被執行。
由於該裝置的實施例不需包含一個傳統、完全的操作系統,該裝置開發者可以自由開發該軟體應用,如一個原生的應用於該處理器架構上,而無須學習如何界接該晶片製造者所提供的一個適當的操作系統。特別是當該處理器已是該領域所熟知的,此對於該應用開發者而言係一個特別具吸引力的特色。
假如該裝置除了該韌體模組外尚具有一硬體抽象層,該軟體應用可以直接地界接於該層。應用-特定驅動器也可以被載入至該裝置。
設定該裝置可包含在編譯該軟體應用時使用數個監督者呼叫號碼和射頻通訊功能函數之間的對應關係。編譯或載入該軟體應用可以利用該預設軟體-應用記憶體位址。在一些實施例裡,設定該裝置可以包括接收該數個監督者呼叫號碼和射頻通訊功能函數之間的對應關係及/或接收該預設軟體-應用記憶體位址,例如一個標頭檔案。當編譯該軟體應用時,該資訊可以接著被使用。
該裝置被較佳地設定,以使得當執行該軟體應用於該裝置上時沒有執行-時間連結被需要。
該處理器可用任何合適的方法執行該等監督 者呼叫指令。在一組較佳實施例裡,該處理器係一個ARM Ltd.(RTM)處理器,如一個來自該Cortex-M系列的處理器,並且該等監督者呼叫指令為由該處理器所支援的SVC指令。
該軟體應用可藉由執行一個專用的SVC處理器指令而發出一個監督者呼叫指令。該指令可以藉由一個編譯器在編譯該等軟體應用時發出,例如藉由包括該軟體應用之來源程式碼裡一個特定前處理器指令的該開發者。
關聯於該監督者呼叫的號碼可以經由一個暫存器或經由該呼叫堆疊或經由任何其它合適的機制而可用於該呼叫操作器。
較佳地,該處理器及/或軟體應用被設定用以使該一或多個參數值可用於該監督者呼叫操作器。在此方法下,該軟體應用可以傳送該等參數至一個射頻通訊功能函數,正如資料被轉移。該呼叫操作器可用於從該射頻通訊功能函數傳送一個回傳值給該軟體應用。
該處理器較佳地被設定用以處理一個來自該軟體應用的監督者呼叫指令,例如一個例外(軟體中斷)。在此方法下,當一個時間-關鍵射頻通訊功能函數需要被調用時,該軟體應用可中斷較少的時間-關鍵處理。
該處理器較佳地提供數個中斷優先順序。在一些實施例裡,一些該韌體模組裡的事件-驅動功能函數被分配一相對較高的優先順序,而其他的則被分配一相對較低的優先順序。較佳的情況係為時間-關鍵射頻通訊操作相關 的功能函數被分配一相對較高的優先順序。
該軟體應用可以被配置用以處理數個中斷(藉由該韌體模組傳遞,如先前所述)並且可以具有一相對較高的優先順序用於一些事件-驅動功能函數而其他具有相對較低的優先順序。該等軟體應用優先順序較佳地被插入於該等韌體模組中。較佳地,該最高的韌體優先順序等級係高於該最高的軟體-應用優先順序,以至於被實作在該韌體模組裡的射頻通訊操作總是可以優先於該軟體應用。此情況可以提供保護以對付該軟體應用中之疏忽的規劃。
該韌體模組較佳地被設定用以調用一個該軟體裡的功能函數,以回應該韌體模組接收到一個中斷。舉例來說,該中斷可發生於一個周邊,例如一個移動感應器。
該韌體模組與該軟體應用可分別具有一個別的中斷向量表。該兩個表較佳地互相使用該相同中斷-向量-位址偏移。在該韌體模組的向量表裡的該等中斷向量位址的偏移(也可視為該軟體應用的向量表,假如兩者使用相同的偏移)傳統上被該處理器結構所固定。該裝置較佳地被設定以當處理一個中斷時(即該系統中斷向量表)時使用該韌體模組的向量表。
然而,該韌體模組被較佳地設定,使得該韌體模組沒有被程式化以自行處理的所有中斷被傳送至該軟體應用。此可藉由該韌體模組所實現,造成執行分岔至該軟體應用的向量表裡所包含對應偏移的位址,於每當其不被設定用以處理一特定的中斷之時。這是有可能的,因為該 軟體應用被載入一預設的記憶體位址,使得一旦該應用被載入在該裝置上時,該韌體模組可以預先知道由何處找出該軟體應用的向量表。
舉例來說,在一些實施例裡,該重置中斷操作器位址總是被該編譯器設置在偏移=0。因此,在該韌體模組的向量表裡,該重置操作器位址將位於記憶體中的0x0000 0000+0=0x0000 0000位址。在該軟體應用的向量表裡,該重置操作器位址係CLENR0+0=CLENR0,此處CLENR0係該預設基本記憶體位址,即該軟體應用被放置的位址。
此中斷轉送機制方便地允許該軟體應用被程式化以利用實質相同的方法來處理該等硬體中斷,如同沒有韌體模組被呈現在該設置上。即該韌體模組對於該軟體應用為隱藏的,以用於接收中斷之目的。該轉送較佳地係以如此之方式來實現:相較於一個對一軟體應用之直接硬體中斷,其增加了少於30個指令的潛伏時間或少於大約3微秒(microseconds)。
該韌體模組可以被配置以實質地被禁能。該禁能可以經由一個呼叫至該韌體模組(較佳地係使用該SVC機制)而被執行。禁能該韌體模組可以造成該韌體模組用以重置該協定堆疊,並且使任何記憶體保護失效(假如有呈現),以使該等資源回歸至該軟體應用。當被禁能時,該韌體模組較佳地傳遞所有中斷至該軟體應用(即使那些已被自行處理的)。
該處理器較佳地提供從一中斷優先順序至其他中斷優先順序之無縫轉移。其有時被參照為末尾連鎖(tail-chaining)。其提供一精簡的手段以轉移該軟體應用與該韌體模組間的控制(或反之亦然),以允許時間-關鍵射頻通訊功能函數在需要時有優先順序。
該裝置較佳地包括記憶體保護邏輯,其係配置用以攔截記憶體存取指令。此邏輯可以被放置在該處理器與該記憶體間。其可以使用一記憶體-存取指令的位置(即該處理器讀取該指令之處),以決定是否允許存取。該記憶體保護邏輯較佳地被設定用以避免該體應用讀取或覆寫該韌體模組(或兩者皆是)。
如此之記憶體保護可以提供好處,以保護該韌體模組裡的敏感資訊被該軟體應用的開發者所讀取。此也可以使該軟體應用裡的潛在錯誤最小化,同時增加該軟體應用裡的錯誤的偵測與保護。
該記憶體保護邏輯可以被設定用以保護關聯於該韌體模組的RAM被該軟體應用所讀取或寫入(或兩者皆是)。
該處理器、記憶體以及射頻通訊邏輯較佳地係被整合在一個單一矽晶片上。然而,亦或它們也可以被整合於一個多晶片模組上。
該記憶體較佳地係一個非揮發性記憶體,例如EEPROM或快閃記憶體。其較佳地支援隨機-存取讀取,使得該韌體模組與軟體應用可以直接地從該記憶體中被執 行。
該技術領域者將可得知該裝置典型地也包括揮發性記憶體。其可以附加地包括一或多個周邊。其可具有連結以用於接收電源和一個時脈信號。其可以具有一連結用於一個天線。其可以具有一或多個輸入及/或輸出介面,例如一個串列連結。
本發明較佳地實施例之特點在此被描述,但不限定於此。
1‧‧‧積體電路微控制器
3‧‧‧時脈邏輯
5‧‧‧電源管理電路
7‧‧‧處理器
9‧‧‧記憶體保護邏輯
23‧‧‧韌體模組
25‧‧‧驅動器
27‧‧‧軟體應用
29‧‧‧應用程式介面(API)
31‧‧‧射頻協定區塊
11‧‧‧隨機存取記憶體(RAM)
13‧‧‧非揮發性快閃記憶體
15‧‧‧周邊
17‧‧‧射頻通訊邏輯
19‧‧‧輸入/輸出電路
21‧‧‧硬體抽象層
33‧‧‧射頻事件管理器
35‧‧‧資料庫
37‧‧‧韌體管理器
41‧‧‧中斷等級
43‧‧‧中斷等級
圖1係本發明實施例之一微控制器之示意圖。
圖2係一主要軟體元件於該微控制器架構裡的示意圖。
圖3係該微控制器記憶體映射之示意圖。
圖4係不同處理器中斷優先順率等級之表示圖。
圖5a-5c係各種中斷情形說明之表示圖。
圖6係來源程式碼元素展示該軟體應用呼叫該韌體模組裡的一個功能函數之表示圖。
圖7係來源程式碼元素展示該軟體應用使用一系統呼叫以調用一個內部的功能函數之表示圖。
圖8係來源程式碼元素展示該軟體應用接收一硬體中斷之表示圖。
本發明的一些較佳實施例將在此被描述,但僅 是舉例,並參考所附圖式,其中:
圖1顯示一積體電路微控制器1,有時稱之為一晶片系統,其包含時脈邏輯3、電源管理電路5、一處理器7(例如一個ARM(RTM)Cortex-M0)、記憶體保護邏輯9、RAM 11、非揮發性快閃記憶體13、一或多個周邊15、射頻通訊邏輯17、以及輸入/輸出電路19,該時脈邏輯3可包括一電阻-電容振盪器及/或可從一非晶片上(off-chip)之晶體振盪器(圖未顯示)接收一輸入。
這些元件以一傳統的方式而互相連結,例如使用線路或匯流排(圖未顯示)。該記憶體保護邏輯9係用來攔截從該處理器7至該RAM 11和該快閃記憶體13的指令。當安裝於一個產品時,該微控制器1可以被連結至數個外部的元件,例如一個電源供應器、射頻天線、晶體振盪器、數個感應器、數個輸出裝置等。
圖2顯示該微控制器1,位於其上方的是一個可選擇的硬體抽象層21,例如該ARM(RTM)Cortex微處理器軟體介面標準。該結構也包括韌體模組23、驅動單元25以及軟體應用27。該驅動單元25可特定用於該軟體應用27。
該韌體模組23係一個二進位應用包含數個內嵌的軟體區塊。一個射頻協定區塊31實現一或多個無線協定堆疊。一個射頻事件管理器33提供存取排程用於該射頻通訊邏輯17以及事件多工。一個資料庫35提供分享的硬體資源管理與數個功能函數,如隨機數字之產生、設定中斷 以及優先順序、電源管理(例如致能及禁能周邊)、加密功能函數等。一個韌體模組管理器37支援致能及禁能該韌體模組,及致能及禁能該無線協定堆疊。
該韌體模組23具有該系統向量表,且係為該程式的進入點在所有重置上。
一個用於該韌體模組23的應用程式介面(API)29允許該軟體應用27用以調用該韌體模組裡的功能函數。此係可完全使用系統呼叫來實現。當使用一個ARM(RTM)處理器,每個API功能函數原型在編譯時間上經由一關聯的監督者呼叫單元而映射至一個韌體功能函數。此映射可被提供至該軟體應用27的開發者,以允許該等功能函數被正確地呼叫。
該韌體模組23可以傳遞事件至該軟體應用27作為軟體中斷,其內容被緩衝直到被該軟體應用27所讀取(輪詢)。該讀取經由一個API呼叫(例如event_get())所完成。
該軟體應用27可以直接地存取該微處理器(1)硬體、或經由一個硬體抽象層21來存取該微處理器(1)硬體,例如藉由應用-特定驅動器25,除了可使用該韌體模組23來間接地使用該硬體之外。
圖3顯示該在該韌體模組23和該軟體應用27(包括任何應用-特定驅動器25)之間的RAM11和快閃13如何被分享。當使用一個ARM(RTM)Cortex-M0處理器7,該快閃13被分配數個由零(0x0000 0000)上升的位址至其容量SizeOfProgMen,以及該RAM11被分配數個位址從0x2000 0000上升至(0x2000 0000+SizeOfRAM)。假如一個不同型態的處理器被使用,將可使用不同的位址的值。
該快閃13包含由位址CLEAR0(程式碼長度區域0)區分成兩個區域。位於零和CLEAR0之間的區域0,係該韌體模組23被載入之處。其中斷向量表被儲存在位址零處。由CLEAR0向上延伸的區域1,係該軟體應用27被載入之處。其也具有一中斷向量表,該表位在CLEAR0處,在軟體應用27之下。由此可以得知該裝置1可具有其他非揮發性記憶體(圖未顯示)可被使用於其他目的,例如儲存設定資訊或數個旗標。
該RAM11相似地具有一從該基本位址0x2000 0000至RLENR0的區域0,以及由RLENR0向上延伸的一個區域1。RAM區域0提供資料儲存用於該韌體模組23,而該區域1提供資料儲存用於該軟體應用27。一個呼叫堆疊被分享於該韌體模組23及該軟體應用27之間及向下發展,例如從0x2000 0000+SizeOfRAM。分配至該呼叫堆疊的該記憶體必須足夠大以供該軟體應用27和該韌體模組23之所需。
該韌體模組23呼叫-堆疊使用需求可以藉由該晶片製造者被發佈用於該裝置1。該軟體應用的開發者必須接著定義一個起始的堆疊指標以及預留足夠堆疊記憶體以用於該韌體模組23與其軟體應用27。在重置時韌體模組23將起始該主要堆疊指標。
該記憶體保護邏輯9被配置用以攔截從該處理 器7至該快閃13和該RAM11的所有記憶體存取需求(例如讀取需求)。其決定該存取需求指令之來源(例如是否該需求係來自該韌體模組23或來自該軟體應用27)。其也存取記憶體保護設定資料(例如儲存在一或多個專屬暫存器),其係為各種來源而特定個別存取許可,並且依此允許或拒絕該存取需求。
在一些本發明較佳的實施例裡,該軟體應用27被拒絕讀取及/或寫入存取至快閃區域0和至RAM區域0。此保護該韌體模組23之機密性,並且可以避免該軟體應用27不注意地或惡意地寫入至分配給該韌體模組23的記憶體位置,藉此增加可靠性和安全性。該軟體應用快閃區域1也可以由讀取存取被保護,例如經由一個外部除錯介面以保護被讀回。
此意味該起始堆疊指標不可以位於RAM區域0裡,此係由於該軟體應用27不具寫入存取至此區域。在本發明的其他實施例裡,該呼叫堆疊可位於兩部分裡,該韌體模組23呼叫堆疊係位於RAM區域0裡以及該軟體應用27呼叫堆疊係位於RAM區域1裡。
圖4顯示一ARM(RTM)Cortex-M0處理器所提供之不同的中斷等級41,其隨著箭頭方向增加優先順序,以及這些等級如何映射至由該韌體模組23和軟體應用27所使用的該等中斷等級43。
在主要背景內容之上的係四個優先順序,依照優先順序的增加被使用如下:軟體應用低優先順序、韌體 模組低優先順序、軟體應用高優先順序以及韌體模組高優先順序。該高-優先順序軟體應用中斷被使用於關鍵中斷上,於此需要低潛伏時間。
圖5a至5c顯示數種優先順序等級裡可能的改變的範例。
圖5a說明一背景主要處理被該軟體應用於低優先順序而予以中斷,例如藉由一串列驅動器。該軟體應用27接著使一API呼叫至該韌體模組23(藉由觸發一個監督者呼叫(SVC)例外)。在回歸至該應用低-優先順序等級之前,該韌體模組23處理該呼叫於該低-優先順序韌體等級。最後,該軟體應用27完成其操作,且執行回歸至該主要背景等級。
圖5b說明一API呼叫至該韌體模組23,其係從該主要內容所做出(藉由觸發一SVC例外)。該韌體低-優先順序裡的API功能函數的執行被一個高-優先順序軟體應用例外所中斷。舉例來說,其可以用以服務一個感應器輸入。一旦該軟體應用結束其高-優先順序的執行,在最終回歸至該背景主要處理之前,該韌體API呼叫可以繼續執行於該低優先順序等級。
圖5說明藉由該韌體模組23的一個背景主要處理的一個高-優先順序中斷。其可以歸因於一個時間-關鍵射頻通訊中斷,例如一個進來的射頻封包,使得該射頻事件管理器23必須回應。該韌體模組23裡中斷服務常式設立一個低-優先順序韌體例外旗標用以發信號至該射頻協定堆 疊的較高等級。當該高-優先順序常式完成,由於該處理器7的末尾-連鎖(tail-chaining)能力(即在此之間無須回復至該背景主要等級),使該低-優先順序常式被立即執行。該低-優先順序韌體常式接著設立一個例外旗標用以通知該軟體應用27一個射頻資料封包已被接收。該例外在該低-優先順序韌體模組常式完成之後被連鎖。在此範例裡,該軟體應用27接著經由一個SVC而做出一個API呼叫至該韌體模組23,此SVC係完成與回歸從該SVC而來之內容至該軟體應用27。最後,該軟體應用低-優先順序操作完成,且執行回歸至該主要等級。
圖6至8藉由範例展示如何控制該軟體應用27和該韌體模組23間的傳送。其以未編譯的C語言程式碼之摘錄來說明。當然,在實際上,目標程式碼藉由該處理器7從該快閃記憶體13被執行。標號之箭頭指示相繼的執行步驟。
圖6顯示該軟體應用27經由該韌體模組23的API 29而呼叫一功能函數。該應用27呼叫具有一從該韌體API 29使用一韌體標頭檔案而引進之原型的一功能函數,該韌體標頭檔案係藉由該晶片製造者而被提供至該軟體-應用開發者。該_SVC(x)編譯指示(pragma)造成該編譯器將一指令插入該目標程式碼裡,以當該軟體應用23呼叫該功能函數時,造成一監督者呼叫(SVC)例外(exception)。
該處理器7經由該韌體模組的中斷向量表(其作為該系統中斷向量表)調用該SVC處理單元。關聯於被該 軟體應用27所呼叫之該功能函數的SVC號碼與任何參數一起被傳送至該SVC處理單元。該等參數係依照該處理器而可經由暫存器或經由該呼叫堆疊而被傳送。該SVC處理單元使用該SVC號碼以呼叫該正確的韌體模組功能函數。其可為一個射頻功能函數(例如一個藉由射頻來轉移資料的指令),或一個韌體管理功能函數(例如用以禁能該韌體模組),或一個資料庫功能函數(例如用以發出一隨機號碼)。該功能函數執行並接著回歸至該軟體應用27。一個回歸值可有用於一暫存器或該呼叫堆疊。
圖7顯示該軟體應用27經由一系統呼叫調用一個其自身的功能函數。此動作可用於從一個低優先順序改變至高優先順序執行等級。與圖6的情況相似,該軟體應用27觸發一SVC因而造成執行傳送至該韌體模組27裡的一個SVC處理單元。然而,在此例子裡,該指令所使用的一個SVC號碼係位於一個被預留給該軟體應用自身使用的範圍裡。該韌體模組23因此造成執行分岔至該軟體應用27裡的一個處理單元功能函數(app_systemcall_function()),潛在地對於先前操作為在不同優先順序等級。
圖8顯示一個硬體中斷如何可以藉由該軟體應用27而被接收。該韌體模組23被配置用以藉由初始設定轉送中斷至該軟體應用27,除非它們是該韌體模組23被設定用以處理的中斷。此外,假如該韌體模組23已經被該軟體應用27(例如經由一合適的API呼叫至該韌體管理器37)所禁能,接著該韌體模組將轉送所有中斷至該軟體應用27。
在接收到例如來自於一個移動感應器的一個中斷時,一個該韌體模組23裡的中斷處理單元被引導。其將檢查是否該韌體模組23被致能以及是否此為一個該韌體模組被設定用以處理的中斷。如果是,該韌體模組23處理該中斷。假如不是,其將執行分岔至該軟體應用27裡的一中斷處理單元常式。因為該軟體應用向量表的位置(於CLENR0)係為預設的,故該韌體模組23可以知道在何處找到該常式,並且至該向量表的偏移係相同於至該韌體模組的向量表之偏移。
在此方法下,一個韌體模組實現射頻控制邏輯,其被程式化至一積體射頻通訊晶片上的一個韌體記憶體位址,而可以安全並方便地被設定與使用。
上述實施例僅係為了方便說明而舉例而已,本發明所主張之權利範圍自應以申請專利範圍所述為準,而非僅限於上述實施例。
1‧‧‧積體電路微控制器
21‧‧‧硬體抽象層
23‧‧‧韌體模組
25‧‧‧驅動器
27‧‧‧軟體應用
29‧‧‧應用程式介面(API)
31‧‧‧射頻協定區塊
33‧‧‧射頻事件管理器
35‧‧‧資料庫
37‧‧‧韌體管理器

Claims (31)

  1. 一種設定一積體電路射頻通訊裝置的方法,其中:該裝置包括一處理器、記憶體以及射頻通訊邏輯;該記憶體具有一韌體模組被儲存於一韌體記憶體位址,該韌體模組包括多個指令用於根據一預設的射頻協定來控制該射頻通訊邏輯;該處理器被設定用以接收多個監督者呼叫指令,每一監督者呼叫指令具有一關聯的監督者呼叫號碼,並藉由(1)調用韌體模組裡的一監督者呼叫操作器,以及(2)使該監督者呼叫號碼可用於該呼叫操作器,而回應一監督者呼叫指令,該方法包括:載入一個軟體應用至該裝置的記憶體,使該應用被儲存在一預設的應用記憶體位址,其中該軟體應用被配置藉由發出一個監督者呼叫指令而從該韌體模組中調用一射頻通訊功能函數,該監督者呼叫指令具有一關聯的預設監督者呼叫號碼對應於該被調用的功能函數。
  2. 一種設定一積體電路射頻通訊裝置的方法,其中該裝置包括一處理器、記憶體以及射頻通訊邏輯,該方法包括:載入一軟體應用至該裝置的記憶體,以使該應用被儲存於一預設的應用記憶體位址;以及載入一韌體模組至該裝置的記憶體,以使該韌體模組被儲存於一預定的韌體記憶體位址,該韌體模組包括多個指令用於根據一預設的射頻協定來控制該射頻通訊邏輯, 其中:該處理器被設定用以接收多個監督者呼叫指令,每一監督者呼叫指令具有一關聯的監督者呼叫號碼,並藉由(1)調用韌體模組裡的一監督者呼叫操作器,以及(2)使該監督者呼叫號碼可用於該呼叫操作器,而回應一監督者呼叫指令;以及該軟體應用被配置來藉由發出一個監督者呼叫指令,而從該韌體模組中調用一射頻通訊功能函數,該監督者呼叫指令具有一關聯的預設監督者呼叫號碼對應於該欲被調用的功能函數。
  3. 如申請專利範圍第1或2項所述之方法,其中該韌體模組是一連結二進位模組,其沒有被連結於該軟體應用。
  4. 如申請專利範圍第1或2項所述之方法,其中該韌體模組被配置,以使得由該韌體模組所提供之所有射頻通訊功能函數被具有各自監督者呼叫號碼的多個監督者呼叫指令所調用,其係根據該等號碼與功能函數間的一預設相對應關係。
  5. 如申請專利範圍第1或2項所述之方法,更包括編譯該軟體應用以及使用多個監督者呼叫號碼與多個射頻通訊功能函數之間的該對應關係在該編譯上。
  6. 如申請專利範圍第1或2項所述之方法,更包括當編譯及/或載入該軟體應用時,使用該預設的軟體應用記憶體位址。
  7. 如申請專利範圍第1或2項所述之方法,其中該軟體應用被配置用以藉由執行一專屬的SVC處理器指令而發出一監督者呼叫指令。
  8. 如申請專利範圍第1或2項所述之方法,其中該韌體模組以及該軟體應用各自具有一各別的中斷向量表,其中該裝置被設定用以當處理一個中斷時使用該韌體模組的該向量表,以及其中該韌體模組被設定以使得該韌體模組未被程式化用以自行操作的所有中斷被傳遞至該軟體應用。
  9. 如申請專利範圍第8項所述之方法,其中該韌體模組的該等中斷向量表以及該軟體應用互相使用相同的中斷-向量-位址偏移。
  10. 如申請專利範圍第1或2項所述之方法,其中該裝置包括記憶體保護邏輯被配置用以截取多個記憶體存取指令,並被設定用來防止該軟體應用讀取或覆寫該韌體模組。
  11. 如申請專利範圍第1或2項所述之方法,其中該記憶體係一個非揮發性記憶體,其支援隨機-存取讀取,使得該韌體模組與軟體應用可以直接地從該記憶體中被執行。
  12. 一種積體電路射頻通訊裝置,其中:該裝置包括一處理器、記憶體以及射頻通訊邏輯;該記憶體具一韌體模組被儲存在一韌體記憶體位址,該韌體模組包括多個指令用於根據一預定的射頻協定來控制該射頻通訊邏輯;以及該處理器被設定用以接收多個監督者呼叫指令,每一監督者呼叫指令具有一關聯的監督者呼叫號碼,並藉由(1)調用韌體模組裡的一監督者呼叫操作器,(2)使該監督者呼叫號碼可用於該呼叫操作器,而回應一監督者呼叫指令;該記憶體具有一軟體應用儲存於一預設的應用記憶體位 址,該軟體應用被配置用以藉由發出一監督者呼叫指令而從該韌體模組中調用一射頻通訊功能函數,該監督者呼叫指令具有一關聯的預設監督者呼叫號碼對應於該被調用的功能函數。
  13. 如申請專利範圍第12項所述之裝置,其中該韌體模組被配置,以使得由該韌體模組所提供之所有射頻通訊功能函數被具有各自監督者呼叫號碼的多個監督者呼叫指令所調用,其係根據該等號碼與功能函數間的一預設相對應關係。
  14. 如申請專利範圍第12或13項所述之裝置,其中該韌體模組被配置以使得由該韌體模組所提供之所有功能函數係藉由該發出監督者呼叫指令而被調用。
  15. 如申請專利範圍第12或13項所述之裝置,其被配置以至於當執行該軟體應用於該裝置上時,並不需要執行-時間連結。
  16. 如申請專利範圍第12或13項所述之裝置,其中該軟體應用被配置用以藉由執行一專屬SVC處理器指令而發出一監督者呼叫指令。
  17. 如申請專利範圍第12或13項所述之裝置,其中該處理器及/或軟體應用被設定用以使一或多個參數的值可用於該監督者呼叫操作器。
  18. 如申請專利範圍第12或13項所述之裝置,其中該處理器被設定用以操作來自該軟體應用的一監督者呼叫指令作為一個例外,其中該處理器支援多個中斷優先順序,以及其中 該韌體模組中的一些功能函數被授予一相對高的優先順序,而該韌體模組中的其他功能函數具有一相對低的優先順序。
  19. 如申請專利範圍第18項所述之裝置,其中該軟體應用被配置來操作多個中斷,以授予一相對高的優先順序至一些事件-驅動功能函數,以及授予一些相對低的優先順序至其他事件-驅動功能函數。
  20. 如申請專利範圍第19項所述之裝置,其中該等高及低的軟體應用優先順序被該等高及低的韌體模組優先順序所插入。
  21. 如申請專利範圍第19項所述之裝置,其中該最高的韌體優先順序等級高過於該最高的軟體應用優先順序等級。
  22. 如申請專利範圍第12或13項所述之裝置,其中該韌體模組被設定用以調用該軟體應用裡的一功能函數,以回應該韌體模組接收到一個中斷。
  23. 如申請專利範圍第12或13項所述之裝置,其中每一韌體模組與軟體應用具有一個別的中斷向量表,其中該裝置被設定用以當處理一中斷時使用該韌體模組的該向量表,以及其中該韌體模組被設定以使得該韌體模組無法程式化自行操作的所有中斷被傳送至該軟體應用。
  24. 如申請專利範圍第23項所述之裝置,其中該韌體模組和該軟體應用的該等中斷向量表相互使用相同中斷-向量-位址偏移。
  25. 如申請專利範圍第12或13項所述之裝置,其中,經由一呼叫至該韌體模組,該韌體模組可被實質地禁能,以造成 該韌體模組來重置該協定堆疊,以及禁能任何記憶體保護,俾將資源回歸至該軟體應用,以及其中,當禁能時,該韌體模組將轉送所有中斷至該軟體應用。
  26. 如申請專利範圍第18項所述之裝置,其中該處理器支援多個無縫轉移從一個中斷優先順序等級至另一個。
  27. 如申請專利範圍第12或13項所述之裝置,包括記憶體保護邏輯被配置於截取多個記憶體存取指令,以及被設定用來防止該軟體應用讀取或覆寫該韌體模組及/或讀取或寫入關聯於該韌體模組的隨機存取記憶體。
  28. 如申請專利範圍第12或13項所述之方法,其中該記憶體係一個非揮發性記憶體,其支援隨機-存取讀取,使得該韌體模組與軟體應用可以直接地從該記憶體中被執行。
  29. 一種韌體模組,用以載入於一積體電路射頻通訊裝置的一韌體記憶體位置上,該裝置包括一處理器、記憶體,以及射頻通訊邏輯,該韌體模組包括:多個指令,用於根據一預定的射頻協定來控制該射頻通訊邏輯;以及一監督者呼叫操作器,被配置用以回應一軟體應用所發出的監督者呼叫指令,其係藉由執行一對應於一關聯於該監督者呼叫指令的監督者呼叫號碼之射頻通訊功能函數。
  30. 如申請專利範圍29所述之一韌體模組,其係為一連結二進位模組。
  31. 一種電腦程式產品,用以載入於一積體電路射頻通訊裝置的一預設的記憶體位址,該裝置包括一處理器、記憶體 以及射頻通訊邏輯,該電腦程式產品包括指令,係當執行於該積體電路射頻通訊裝置之該處理器時,使該積體電路射頻通訊裝置調用一射頻通訊功能函數,係藉由發出一具有一關聯之預設監督者呼叫號碼的監督者呼叫指令,該監督者呼叫號碼係對應於該被調用的功能函數。
TW102122333A 2012-06-27 2013-06-24 積體電路射頻 TWI603265B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB201211423A GB2503471B (en) 2012-06-27 2012-06-27 Integrated-circuit radio

Publications (2)

Publication Number Publication Date
TW201401169A TW201401169A (zh) 2014-01-01
TWI603265B true TWI603265B (zh) 2017-10-21

Family

ID=46704313

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102122333A TWI603265B (zh) 2012-06-27 2013-06-24 積體電路射頻

Country Status (8)

Country Link
US (2) US9317348B2 (zh)
EP (1) EP2867768A1 (zh)
JP (1) JP6326047B2 (zh)
KR (1) KR102088690B1 (zh)
CN (1) CN104412230B (zh)
GB (1) GB2503471B (zh)
TW (1) TWI603265B (zh)
WO (1) WO2014001801A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2515364B (en) * 2013-12-20 2015-06-17 Nordic Semiconductor Asa Updatable integrated-circuit radio
GB2521607B (en) * 2013-12-23 2016-03-23 Nordic Semiconductor Asa Integrated-Circuit Radio
WO2020240235A1 (en) * 2019-05-31 2020-12-03 Micron Technology, Inc Controller for a memory component
CN112203319B (zh) * 2020-10-23 2022-07-15 四川长虹网络科技有限责任公司 ZigBee设备的测试方法、装置、计算机设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090253384A1 (en) * 2008-04-04 2009-10-08 Stmicroelectronics, Ltd. Dual Mode Radio Frequency Front End Circuit
TW201032322A (en) * 2009-02-25 2010-09-01 Taiwan Semiconductor Mfg Dual-dielectric MIM capacitors for system-on-chip applications

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3632139A1 (de) 1986-09-22 1988-04-07 Bbc Brown Boveri & Cie Verfahren zur ausfuehrung von zwei in verschiedenen programmiersprachen geschriebenen programmen
JPS63296140A (ja) * 1987-05-28 1988-12-02 Canon Inc 割込み制御方式
US5161228A (en) * 1988-03-02 1992-11-03 Ricoh Company, Ltd. System with selectively exclusionary enablement for plural indirect address type interrupt control circuit
JPH07105124A (ja) * 1993-10-06 1995-04-21 Toshiba Corp 割込み制御装置
CA2143488C (en) * 1995-02-27 2000-01-11 Robert Paul Duncan Dynamic link libraries without linker or loader support
US6223275B1 (en) * 1997-06-20 2001-04-24 Sony Corporation Microprocessor with reduced instruction set limiting the address space to upper 2 Mbytes and executing a long type register branch instruction in three intermediate instructions
US20020073398A1 (en) * 1998-12-14 2002-06-13 Jeffrey L. Tinker Method and system for modifying executable code to add additional functionality
JP2002108625A (ja) * 2000-09-26 2002-04-12 Toshiba Corp 言語処理装置及び言語処理プログラムを格納した記録媒体
US7237121B2 (en) 2001-09-17 2007-06-26 Texas Instruments Incorporated Secure bootloader for securing digital devices
US6874069B2 (en) 2002-07-26 2005-03-29 Silicon Storage Technology, Inc. Microcontroller having an embedded non-volatile memory array with read protection for the array or portions thereof
US7120794B2 (en) * 2003-10-29 2006-10-10 Qualcomm Inc. System for invoking a privileged function in a device
US7206884B2 (en) * 2004-02-11 2007-04-17 Arm Limited Interrupt priority control within a nested interrupt system
US7318150B2 (en) * 2004-02-25 2008-01-08 Intel Corporation System and method to support platform firmware as a trusted process
JP2005242806A (ja) * 2004-02-27 2005-09-08 Renesas Technology Corp データ処理装置
US7647589B1 (en) * 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US20070112680A1 (en) * 2005-11-11 2007-05-17 Infineon Technologies Ag System and method for processing digital media content in a mobile device
EP1980032B1 (en) * 2005-12-07 2016-03-09 Freescale Semiconductor, Inc. Wireless subscriber communication unit and method of power control with back-off therefor
FR2905819B1 (fr) * 2006-09-12 2013-01-18 Wavecom Procede de gestion de l'architecture logicielle d'un circuit de radiocommunication,application,produit programme d'ordinateur et circuit correspondants.
US20090096586A1 (en) * 2007-10-12 2009-04-16 Icontrol, Inc. Radiofrequency Tracking and Communication Device and Method for Operating the Same
US8291202B2 (en) * 2008-08-08 2012-10-16 Qualcomm Incorporated Apparatus and methods for speculative interrupt vector prefetching
US20110117956A1 (en) * 2009-11-17 2011-05-19 Yosi Levi Industrial radio device with unified programming interface and methods
US8862178B2 (en) * 2010-02-24 2014-10-14 Qualcomm Incorporated Methods and systems for managing participation in multiple wireless networks
US20120255031A1 (en) * 2011-03-28 2012-10-04 Mcafee, Inc. System and method for securing memory using below-operating system trapping
US9063847B2 (en) * 2011-04-19 2015-06-23 Dell Products, Lp System and method for managing space allocation within a file system
US9563410B2 (en) * 2011-05-25 2017-02-07 Amx Llc Data-driven menuing system for providing a flexible user interface on an electronic device
US10185566B2 (en) * 2012-04-27 2019-01-22 Intel Corporation Migrating tasks between asymmetric computing elements of a multi-core processor
US20130338848A1 (en) * 2012-06-19 2013-12-19 Scott Park Method and Apparatus for Leveling Recreational Vehicles

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090253384A1 (en) * 2008-04-04 2009-10-08 Stmicroelectronics, Ltd. Dual Mode Radio Frequency Front End Circuit
TW201032322A (en) * 2009-02-25 2010-09-01 Taiwan Semiconductor Mfg Dual-dielectric MIM capacitors for system-on-chip applications

Also Published As

Publication number Publication date
US9317348B2 (en) 2016-04-19
WO2014001801A1 (en) 2014-01-03
JP6326047B2 (ja) 2018-05-16
KR102088690B1 (ko) 2020-03-16
JP2015524964A (ja) 2015-08-27
KR20150024927A (ko) 2015-03-09
GB2503471A (en) 2014-01-01
US20160196170A1 (en) 2016-07-07
GB201211423D0 (en) 2012-08-08
CN104412230B (zh) 2018-06-22
EP2867768A1 (en) 2015-05-06
TW201401169A (zh) 2014-01-01
CN104412230A (zh) 2015-03-11
US20140007141A1 (en) 2014-01-02
GB2503471B (en) 2015-05-06

Similar Documents

Publication Publication Date Title
EP3702923B1 (en) Memory protection
TWI603265B (zh) 積體電路射頻
US9891908B2 (en) Updatable integrated-circuit radio
US10496439B1 (en) Finite resource allocator with intrinsically subordinate operating system
KR102276696B1 (ko) 집적 회로 무선장치
CN106922189B (zh) 设备代理装置及其控制方法
EP3502887B1 (en) Interrupt handling for multiple virtual machines
CN117272412B (zh) 中断控制寄存器保护方法、装置、计算机设备及存储介质
JP2011150457A (ja) 情報処理装置およびメモリアクセス制御方法
Dibble et al. Programming embedded systems: interacting with the embedded platform
WO2014204363A1 (en) Method and an integrated circuit for executing a trusted application within a trusted runtime environment