TWI640869B - 配置一積體電路無線電通訊裝置的方法及積體電路無線電通訊裝置 - Google Patents

配置一積體電路無線電通訊裝置的方法及積體電路無線電通訊裝置 Download PDF

Info

Publication number
TWI640869B
TWI640869B TW103140369A TW103140369A TWI640869B TW I640869 B TWI640869 B TW I640869B TW 103140369 A TW103140369 A TW 103140369A TW 103140369 A TW103140369 A TW 103140369A TW I640869 B TWI640869 B TW I640869B
Authority
TW
Taiwan
Prior art keywords
interrupt
software application
firmware module
radio communication
logic
Prior art date
Application number
TW103140369A
Other languages
English (en)
Other versions
TW201527976A (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 TW201527976A publication Critical patent/TW201527976A/zh
Application granted granted Critical
Publication of TWI640869B publication Critical patent/TWI640869B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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
    • 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
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一種積體電路無線電通訊裝置包括處理器,具有硬體中斷輸入線;記憶體;無線電通訊邏輯;及中斷介面邏輯。該記憶體內含韌體模組,其包括(i)指令用於根據預定無線電通訊協定來控制該無線電通訊邏輯及(ii)中斷常式包括指令用於接收在該韌體模組中的無線電通訊函式識別並用於調用該辨識無線電通訊函式。該中斷介面邏輯包括用於接收執行於該裝置上的軟體所產生信號的輸入邏輯及安排來斷言該處理器的硬體中斷輸入線以回應在該輸入邏輯處接收的軟體產生信號的輸出邏輯;該裝置係配置來調用該中斷常式以回應對該處理器的硬體中斷輸入線的斷言。

Description

配置一積體電路無線電通訊裝置的方法及積體電路無線電通訊裝置
本發明係關於積體電路無線電通訊裝置及配置這類裝置的方法。
積體電路無線電通訊裝置係典型地將一處理器、記憶體及無線電通訊邏輯整合在一矽晶片上,一天線可被製造在該矽晶片上或可以連接在外,該裝置一般會具有接腳以將它連接至一電源供應器、時脈來源、以及任何外部周邊裝置,例如感測器、計時器、數位至類比轉換器和輸出裝置,該處理器介接該無線電通訊邏輯,用以管理由該裝置傳送及/或接收的無線電訊息。
這類無線電通訊裝置可被使用於廣泛範圍的無線產品中,例如:無線滑鼠和鍵盤、遊戲機的控制器、腳踏車速率計、遙控器、車庫門開啟裝置、無線揚聲器等等。
這類裝置上的處理器可執行儲存於該裝置上之非揮發性記憶體的軟體,據以根據一預定無線電通訊協定,例如:藍芽(BluetoothTM)或群蜂(ZigBeeTM),來控制該無線電通訊邏輯。
例如一無線滑鼠的成品典型地係由得自一獨立無線電晶片製造商的無線電通訊晶片的產品製造商來組裝,該晶片製造商也可提供該產品製造商一開發工具箱,內含例如:一跨平台編譯器、載入器、除錯器和說明文件之工具以允許該產品製造商開發、安裝並除錯用於該無線電裝置的客製軟體應用,該客製應用軟體可例如:包含用於接收來自一無線滑鼠上的移動感測器輸入和用於根據一要求通訊協定來傳送合適無線電訊息至一相關USB傳輸埠的常式。
並不需要該產品製造商來直接介接著該晶片上的無線電邏輯,該晶片製造商典型地會隨著該晶片備有一開發工具箱,該開發工具箱可包含由該晶片製造商所撰寫軟體程式庫或作業系統的來源碼,其包含用於控制該無線電邏輯的函式,例如:配置如藍芽低能量(Bluetooth Low EnergyTM)的特定無線電通訊協定。它也可包含其它函式,例如:用於記憶體管理、處理器排序、程序間通訊等等的函式,該應用開發者可自它的應用程式碼中呼叫這些供應函式,而不必從頭撰寫,這樣可使得該應用軟體的開發更簡單且更快速,它在不同無線電裝置模組間也可自在攜帶。
該產品製造商典型地會編譯並連結來自該晶 片製造商的來源碼與它自己客製的軟體應用以產生用於載入至每一個裝置的記憶體預定位址的單一二位元影像。
然而,本申請人已認知可改善有關這類的傳統方式。
由一觀點中,本發明提供一種配置一積體電路無線電通訊裝置的方法,其中:該裝置包括記憶體、無線電通訊邏輯、中斷介面邏輯及具有一硬體中斷輸入線的一處理器;該中斷介面邏輯包括用於接收執行於該裝置上的軟體所產生一信號的輸入邏輯及安排來斷言該處理器的硬體中斷輸入線以回應在該輸入邏輯處接收的軟體產生信號的輸出邏輯;該記憶體內含一韌體模組,包括(i)指令用於根據一預定無線電通訊協定來控制該無線電通訊邏輯及(ii)一中斷常式包括指令用於接收在該韌體模組中的一無線電通訊函式識別並用於調用該辨識無線電通訊函式;及該裝置係配置來調用該中斷常式以回應至該處理器的硬體中斷輸入線的斷言,該方法包括將一軟體應用載入至該裝置的記憶體中,其中,該軟體應用包括指令用於藉由(i)產生一信號至該中斷介面邏輯以引起該中斷介面邏輯電路斷言該處理器的硬體中斷輸入線並(ii)辨識欲調用至該中斷常式的無線電通訊函式,來調用該韌體模組中的無線電通訊函式。
因此,熟悉本發明相關技術領域人員可以看出 一軟體應用可被載入至其透過硬體中斷來調用來自一韌體模組的無線電通訊函式的一無線電通訊裝置上。
本機制免除該軟體應用開發者連結該軟體應用碼與該裝置製造商所供應程式庫或作業系統的需求,該軟體應用開發者不需要知道該無線電通訊函式被載入記憶體何處以便能夠撰寫程式碼來調用它們。這個可導致一更穩定、較簡單且更安全的開發程序。
在較佳實施例中,該韌體模組係一預先連結二位元影像或模組,較佳地,在該韌體模組和該軟體應用之間未產生連結,可設想該韌體模組通常會是一編譯二位元影像(例如:編譯自該C程式語言),雖然有可能它的部分或全部很可能係直接由機器碼所組譯。
藉由移除對該韌體模組和該軟體應用間的連結時間相依性的需求,在該軟體應用開發期間產生錯誤之機會可被降低,此不需在該軟體應用開發期間保持該韌體模組的重新編譯和重新連結,本連續性可避免程式錯誤發生且若程式錯誤真的發生,也有助於該除錯程序。
相當少量資訊需要由該裝置製造商提供給該軟體應用開發者,為了開發該軟體應用,該應用開發者可備有關於辨識欲調用無線電通訊函式之機制的細節,例如,在隨機存取記憶體中的一預定位置或在該軟體應用中放置一呼叫回傳函式的所在位址,及如下所更加詳細說明的任何函式識別字和可能函式參數的細節。該應用開發者可備有應載入該軟體應用至其中的一預定軟體記憶體位址,該 應用開發者也可備有關於可用於該軟體應用的記憶體量資訊(例如:程式碼空間及/或資料空間),至少在一些實施例中,本資訊(除了該處理器或裝置構造的標準細節外)會足以供一應用開發者撰寫、編譯和載入用於該裝置的一軟體應用。
設想該應用開發者可便利地備有內含本資訊之一些或全部的標頭檔或來源檔(例如:以該C程式語言形式)。(當然,這類標頭或來源檔可選擇性地內含其它額外特性以提供該應用程式開發者進一步協助。)
這樣避免對一裝置製造商供應任何目的檔或該些無線電通訊函式的來源檔給該軟體應用開發者的需求,這樣可簡化該裝置製造商的版本控制,其可改變該韌體模組中的函式內容和位置而不必通知該應用開發者。
它也意謂著該裝置製造商不需將它的韌體模組的機密來源碼揭露給該應用開發者。
藉由利用預先載入在該裝置上的韌體模組來提供該積體電路裝置至該軟體應用開發者,內含於該韌體模組的任何機密資訊安全性可藉由讓它更難以存取該目的碼而增加,尤指若該裝置內含阻止未授權讀取該韌體模組的記憶體保護時。
因為該韌體模組不需連結至該軟體應用,它有可能取代該韌體模組和該軟體應用(例如:以一更新版本)中之一者或另一者,即使在該裝置係為一末端使用者擁有後亦然。
於一進一步觀點中,本發明提供一積體電路無線電通訊裝置,包括:一處理器,具有一硬體中斷輸入線;記憶體;無線電通訊邏輯;及中斷介面邏輯,其中:該記憶體內含一韌體模組,包括(i)指令用於根據一預定無線電通訊協定來控制該無線電通訊邏輯及(ii)一中斷常式包括指令用於接收在該韌體模組中的一無線電通訊函式識別並用於調用該辨識無線電通訊函式;該中斷介面邏輯包括用於接收執行於該裝置上的軟體所產生信號的輸入邏輯及安排來斷言該處理器的硬體中斷輸入線以回應在該輸入邏輯處接收的軟體產生信號的輸出邏輯;及該裝置係配置來調用該中斷常式以回應至一處理器的硬體中斷輸入線的斷言。
一軟體應用可被載入至這類裝置的記憶體中且接著可藉由產生一信號至該中斷介面邏輯並辨識調用至該中斷常式的一無線電通訊函式來調用無線電通訊函式。
因此,在一些實施例中,該記憶體另內含一軟體應用,包括指令藉由產生一信號至該中斷介面邏輯以引起該中斷介面邏輯斷言該處理器的硬體中斷輸入線並辨識欲調用至該中斷常式的無線電通訊函式來調用該韌體模組中的無線電通訊函式。
該韌體模組可內含於讀取及/或寫入限制施加的記憶體區域中,該韌體模組可位於唯讀記憶體中,然而,更特別地,該韌體模組係位在執行於該裝置上的未授權碼不可讀取及/或寫入的非揮發性記憶體(例如,電子可抹除可程式化唯讀記憶體或快閃記憶體)區域中,讀取保護可進一 步增加機密性保護,寫入保護可在它已被載入該裝置(例如:因為在該軟體應用中的錯誤)上後,降低該韌體模組的意外或惡意誤用風險。
然而,也可能該應用開發者可備有一二位元影像的韌體模組並在該製造程序期間將該韌體模組和任何軟體應用兩者載入至該裝置上,這個相較於提供來源碼給該應用開發者,對該裝置製造商而言還是較安全的,它也可讓該應用開發者免於必須編譯該韌體模組並將它連結至該軟體應用。
因此,於一進一步觀點中,本發明提供一種配置一積體電路無線電通訊裝置的方法,其中:該裝置包括記憶體、無線電通訊邏輯、中斷介面邏輯及具有一硬體中斷輸入線的一處理器;該中斷介面邏輯包括用於接收執行於該裝置上的軟體所產生信號的輸入邏輯及安排來斷言該處理器的硬體中斷輸入線以回應在該輸入邏輯電路處接收的軟體產生信號的輸出邏輯;及該裝置係配置來調用一中斷常式以回應對該處理器的硬體中斷輸入線的斷言,該方法包括:載入一韌體模組至該裝置的記憶體中,其中,該韌體模組包括(i)指令用於根據一預定無線電通訊協定來控制該無線電通訊邏輯和(ii)一中斷常式包括指令用於接收在該韌體模組中的無線電通訊函式識別並用於調用該已辨識無線電通訊函式;及載入一軟體應用至該裝置的記憶體中,其中,該軟體應用包括指令用於藉由產生一信號至該中斷介面邏輯以引起該中斷介面邏輯斷言該處理器的硬體中斷 輸入線並辨識欲調用至該中斷常式的無線電通訊函式來調用該韌體模組中的無線電通訊函式。
該韌體模組和該軟體應用可以任何順序或實際上同時載入至該裝置上,會理解到同時載入該二者仍是基本上不同於載入單一連結軟體應用和程式庫(例如,如同單一二位元影像)。
該韌體模組較佳地係載入至一預定韌體記憶體位址,該軟體應用較佳地係載入至一預定應用記憶體位址。
在本發明全部觀點中,該韌體模組較佳地係一編譯且連結二位元影像,類似地,該軟體應用較佳地係一編譯且連結之二位元影像;該韌體模組和該軟體應用較佳地係彼此間未連結,該韌體模組較佳地未內含有關該軟體應用的記憶體位址資料(具有的可能例外為在該軟體應用中的一或更多呼叫回傳函式位址,例如詳述於下的傳送無線電通訊函式參數至該韌體模組),該軟體應用較佳地未內含有關該韌體模組的記憶體位址資料;然而,在一些實施例中,該軟體應用可內含該韌體模組內的一或更多函式入口點位址,例如登錄一呼叫回傳函式或傳送資料做為一函式參數,然而,即使如此,該軟體應用較佳地未內含該韌體模組內的任何無線電通訊函式位址。
本發明實施例之進一步優點在於該處理器支援複數個中斷優先權之時,因為該無線電通訊函式係經由一中斷來調用,相較於引起它的召喚函式,以一較高優先 權執行該無線電通訊函式係可能的。
該處理器可採用任何形式,但在一些較佳實施例中,它係由ARMTM所設計的處理器,且可以來自ARMTM CortexTM-M系列(例如:CortexTM-M0),該中斷介面邏輯較佳地係實體上及/或邏輯上獨立於該處理器,它較佳地包括該處理器未使用的邏輯閘。
該中斷介面邏輯的輸入邏輯較佳地係安排來偵測一信號以回應該處理器寫至一預定記憶體位址或暫存器,例如,與該中斷介面邏輯有關的一暫存器或隨機存取記憶體內的一預定位置,該輸入邏輯可被配置來偵測一預定位置處的資料位元或其它值的改變時之信號,它可被安排來間隔地監視該位置或輪詢它,用以偵測該處理器所引起的改變。
該輸入邏輯較佳地係安排來偵測該信號,其係以該信號可由一或更多標準處理器指令所產生的方式進行該指令係例如來自一ARMTM Thumb指令集(例如,該ARMv7-M Thumb指令集),這樣允許一標準處理器核心未經修改地使用於該些裝置中,其對於極小化額外工程努力而言係可高度地期待的;在一些較佳實施例中,軟體可藉由指示該裝置的處理器將一值寫入至一預定記憶體位置(例如,使用一STORE或MOVE指令)來產生該信號,該軟體應用無須內含任何系統呼叫或監控者呼叫,而仍可以較執行中的軟體應用更高的優先權位準及/或特權位準來調用無線電通訊函式。
該裝置可包括複數個處理器,例如,二或更多個,在一些實施例中,執行於一第一處理器上的軟體可產生一信號至該中斷介面邏輯,而該中斷介面邏輯的輸出邏輯可被安排來宣示擁有不同於該第一處理器的一第二處理器的硬體中斷輸入線,在其它實施例中,那裡可以只是單一處理器。
該中斷常式可調用一或更多獨立函式或副程式,在一些實施例中,這類函式或副程式可被視為該中斷常式構件,或者它們可被視為獨立於該中斷程式,在一些實施例中,該中斷常式可如下所述地藉由引用一呼叫回傳函式來呼叫或跳至該軟體應用的指令:該中斷常式或其一部分可位於一特定記憶體位址,且本記憶體位址可被儲存於該裝置上的一中斷向量表中,使得該處理器直接跳到該中斷常式以回應該硬體中斷輸入線的斷言:另外,該中斷常式可藉由唯讀記憶體或一開機啟動程式中的中斷處理程式或獨立於該韌體模組的其它二位元模組來直接調用。
該軟體應用可使用任何適當機制來辨識欲調用至該中斷常式的無線電通訊函式,在一些實施例中,該軟體應用可在產生一信號至該中斷介面邏輯前辨識該無線電通訊函式,在其它實施例中,它可在產生該信號後辨識該無線電通訊函式。
較佳地,該軟體應用傳送一函式識別字至該中斷常式,其辨識欲調用的無線電通訊函式,該函式識別字可採用任何合適形式,它可例如包括一二位元數字、文字 串、記憶體位址或根據一預定關聯性或映射來獨一無二地辨識該韌體模組中的一無線電通訊函式的其它值。該韌體模組中的複數個無線電通訊函式可與各自不同的函式識別字有關,該應用開發者可備有無線電通訊函式和函式識別字(例如:在撰寫的說明文件或一標頭檔中)間的聯結性以使用於開發該軟體應用之時。
在一組實施例中,該軟體應用藉由將該函式識別字寫至該裝置上的共享記憶體位置來傳送該函式識別字至該中斷常式;例如,一處理器暫存器或其它硬體暫存器,或一記憶體位址(例如,在隨機存取記憶體中),該中斷常式可接著自該共享記憶體位置中讀取該函式識別字並調用與那個函式識別字相關的無線電通訊函式,本聯結性可被編譯成該中斷常式(例如,一編譯切換敘述),或著它可被儲存成一資料物件,例如,該中斷常式可讀取的查詢表,用以決定與一接收函式識別字有關之無線電通訊函式位址。
進一步共享記憶體位置可致能該軟體應用以不是直接就是間接透過該中斷常式來傳送參數至該辨識無線電通訊函式;因此,該軟體應用可包括指令用於將一或更多參數寫至一或更多共享記憶體位置,且該中斷常式或無線電通訊函式可包括指令用於自該一或更多共享記憶體位置中讀取該一或更多參數。
每一個這類共享記憶體位置的位址可被硬編碼成該韌體模組或該軟體應用兩者,或者它可被硬編碼成該韌體模組和該軟體應用中之一者或另一者(例如:在該韌 體模組中),並透過該堆疊或藉由將它儲存於一不同共享記憶體位址來傳送至另一者;例如,硬編碼成兩元件的單一共享記憶體位置可藉由將該些位置位址寫至該單一共享記憶體位置而被使用於傳送複數個進一步共享記憶體位置,這個可因極小化支援該軟體應用所需記憶體佈局的限制而增加該裝置製造商的彈性,在一記憶體位置被硬編碼成該軟體應用之處,這個可藉由提供該應用開發者一內含該記憶體位置的標頭檔而得。
在另一組實施例中,該軟體應用傳送該函式識別字至一呼叫堆疊上的中斷常式,該軟體應用可將該函式識別字推至該堆疊上,且該中斷常式可讀取離開該堆疊的函式識別字,該中斷常式只可經由該軟體應用(即不是來自該韌體模組或任何其它軟體元件)所產生的信號來調用,其有助於確保於進入至該中斷常式的呼叫堆疊狀態係可預測;這個致能該中斷常式預先知道在該堆疊上的何處找到該函式識別字,該軟體應用也可藉由將它們寫入至堆疊來傳送用於該無線電通訊函式的參數至該中斷常式,該中斷常式可被安排自該堆疊中讀取這類參數並傳送它們至該無線電通訊函式,該中斷常式可依需要重新安排或另外處理該些參數,它可在呼叫該無線電通訊函式前,將該些參數中的一些或全部推回該堆疊上。
本組實施例係特別具優點,因為它可允許該軟體應用調用該韌體模組的函式而不需將任何隨機存取記憶體或程式記憶體位置共享於該軟體應用和該韌體模組之間 (儘管這情形並未被排除)。
在一些實施例中,該韌體模組可內含該軟體應用中的一呼叫回傳函式位址,在此使用該術語"呼叫回傳"來描述該韌體模組能夠自該軟體應用中呼叫的任何函式,在該軟體應用已透過一中斷傳送控制至該韌體模組後,一指到該函式的指標係動態地傳送至該韌體模組並非必要;例如,該位址已給予該應用開發者,其可以當該軟體應用被載入至該裝置上時,該呼叫回傳函式係位於該預定位址的這類方式(例如,使用合適連結器指令)來編譯及/或連結該軟體應用;另外,該軟體應用可傳送該呼叫回傳函式位址至該韌體模組,它可如上述地藉由將該位址寫至一記憶體位置或將它傳送至該堆疊上而執行,或者該韌體模組可將一呼叫回傳登錄函式內含於該軟體應用可傳送該呼叫回傳函式位址至其中的一預定位址;在本例中,該呼叫回傳登錄函式位址可以例如連結該軟體應用時所使用的一存根(stub)形式來提供給該軟體應用的開發者,提供一呼叫回傳登錄函式位址給該應用開發者較佳的還可提供該些無線電通訊函式全部位址,因為它仍允許該韌體開發者在未來自由重新安置該韌體模組內的無線電通訊函式。
該中斷常式可被配置來呼叫該軟體應用(例如:這類呼叫回傳函式)中的函式,其可提供一函式識別字及/或無線電通訊函式參數給該中斷常式,這個可經由該中斷常式傳送一或更多記憶體位址(例如:指標)至該呼叫回傳函式,並經由該呼叫回傳函式將一函式識別字及/或參數寫至 該些記憶體位址而完成;該中斷常式接著可存取該些位址處的資料以決定該函式識別字及/或參數,它可在呼叫該無線電通訊函式前,將該些參數中的一些或全部推回至該堆疊上,使用一呼叫回傳以擷取參數可允許一般“C”語言參數格式化成一函式原型,以取代必須語法剖析一記憶體位置成為使用一包封結構的類型,因此,相較於傳送一預定共享記憶體位置中或在該堆疊上的參數,本方法可讓編碼更容易。
可理解到如何配置呼叫一函式並自一函式中回傳的概念會視該處理器構造而定,在一些實施例中,該處理器可支援特定呼叫及/或回傳指令,而在一些實施例中,不同控制流程及/或堆疊操作可被使用於配置這些較高階概念。
在上面觀點之任一者的較佳實施例中,該韌體模組係安排使得該韌體模組所提供至該軟體應用的全部無線電通訊函式可藉由產生一信號至該中斷介面邏輯而被引用,在本方式中,沒有其它用於調用韌體無線電函式的機制需要由該韌體模組或該裝置來支援,藉此避開真實靜電或執行時連結相依性並簡化該裝置和該軟體應用的開發。
會理解到該韌體模組可提供不一定關於無線電通訊的其它函式,其中,該軟體應用可調用例如一加密演算法;較佳地,該裝置係配置使得該軟體應用調用的全部這類函式係藉由產生一信號至該中斷介面邏輯而被完成。
因為該裝置實施例不須內含一傳統式完整作業系統,該應用開發者可如同用於該處理器構造的原應用般地自在的開發該軟體應用,而不必學習如何介接該裝置製造商所供應的私人作業系統,這個對於該應用開發者係特別有吸引力的特性,尤指在該處理器係熟知於習知技術中之時。
若該裝置除了該韌體模組外還具有一硬體抽象化層,該軟體應用可直接介接這層,特殊應用驅動器也可被載入至該裝置上。
配置該裝置可包括在編譯該軟體應用時,使用無線電通訊函式識別字和無線電通訊函式間的對應性,編譯或載入該軟體應用可進行該預定軟體應用記憶體位址的使用;在一些實施例中,配置該裝置可包括接收監控者呼叫號碼和無線電通訊函式間之對應性及/或接收該預定的軟體應用記憶體位址,例如作為一標頭檔,這類資訊接著可被使用於編譯該軟體應用之時。
該處理器較佳地支援複數個中斷優先權,在一些實施例中,在該韌體模組中的一些函式係指定一相當高優先權,而其餘係指定一相當低優先權,較佳地,與特定時間通訊操作有關的函式係指定該相當高優先權。
在較佳實施例中,該軟體應用包括一向量表,其允許該韌體模組來調用在該軟體應用內的函式,而不必預先知道它們位在那裡,該韌體模組較佳地係配置來調用該軟體應用中的函式以對應該韌體模組所接收的中斷,這 類中斷可例如由一移動感測器之類的周邊裝置所引起,該韌體模組可被配置來調用該軟體應用中的函式以對應該裝置接收一無線電資料封包。
該軟體應用較佳地係安排來如下所更加詳述地處理該韌體模組所傳送的中斷。
該軟體應用可以一相當高優先權來執行一些事件驅動函式並以一相當低優先權來執行某些其它函式,該軟體應用所使用的優先權位準較佳地係與該軟體模組所使用的優先權位準交錯,該最高韌體優先權位準較佳地係高於該最高軟體應用優先權位準,使得配置於該韌體模組中的關鍵性無線電通訊操作總是可優先於該軟體應用,這樣可提供保護以避免該軟體應用中的不小心程式化。
該韌體模組和該軟體應用可各具有一相對中斷向量表,該二表格彼此間較佳地使用相同中斷向量位址位移,該韌體模組的向量表(和因此在該二者使用相同位移時,該軟體應用的向量表)中的中斷向量位址位移典型地係經由該處理器構造所固定,該裝置較佳地係配置來在處理一中斷時使用該韌體模組的向量表(即做為該系統中斷向量表)。
然而,在一些實施例中,該韌體模組較佳地係配置以使得該韌體模組未被程式化來自行處理的全部中斷係傳送至該軟體應用,無論何時當該韌體模組未被配置來處理一特定中斷時,這個可藉由引起跳至內含於該軟體應用的向量表中之相對應位移的位址的執行來配置於該韌體 模組中,在允許該韌體模組預先知道在那裡找到該軟體應用的向量表時,一旦該軟體應用已被載入至該裝置,則在該軟體應用被載入至一預定記憶體位址時,此係為可行的。
例如,在一些實施例中,該編譯器總是將該RESET中斷處理器位址置於位移=0處,因此,在該韌體模組向量表中的RESET中斷處理器位址會在該記憶體位址0x0000 0000+0=0x0000 0000處,在該軟體應用向量表中的RESET中斷處理器位址係在位址CLENR0+0=CLENR0處,其中,CLENR0係該軟體應用所在的基底記憶體位址。
若無韌體模組存在於該裝置時,本中斷傳送機制便利地允許程式化該軟體應用以實際上相同方式來處理硬體中斷,基於接收中斷目的,該韌體模組和它的編譯可不被該軟體應用開發者看見,相較於一直接硬體中斷,該中斷傳送較佳地係以添加少於約30個指令或小於約3微秒延遲的方式來配置。
在一些實施例中,該韌體模組包括用於實際上禁能該韌體模組的機制,這類禁能可透過對該韌體模組的呼叫來實行(較佳地,使用該中斷介面邏輯機制),禁能該韌體模組可引起該韌體模組重置該通訊協定堆疊並禁能任何記憶體保護(若存在時),用以將資源還給該軟體應用,當禁能時,該韌體模組較佳地傳送全部中斷至該軟體應用(甚至在其它方面已自行處理者)。
該處理器較佳地支援自一中斷優先權位準至 另一者的無縫轉換,這個有時係稱之為尾鏈(tail-chaining),這個在該軟體應用和該韌體模組之間提供一精確傳送控制意義(且反之亦然),用以在需要時允許特定時間無線電通訊函式取得優先權。
該裝置較佳地包括安排來截取記憶體存取指令的記憶體保護邏輯,本邏輯可位於該處理器和該記憶體之間,它可使用一記憶體存取指令位置(即該處理器已自其中讀取該指令)來決定是否允許存取,該記憶體保護邏輯較佳地係配置來阻止該軟體應用讀取及/或覆寫該韌體模組。
這類記憶體保護可提供保護該韌體模組中的敏感性資訊不被該軟體應用開發者所讀取的利益,它也可極小化該軟體應用中的程式錯誤潛在損失並協助該軟體應用中的錯誤偵測和校正,該記憶體保護邏輯可被配置來保護該韌體模組相關隨機存取記憶體不被該軟體應用所讀取及/或寫入。
該處理器、記憶體和無線電通訊邏輯較佳地係整合於單一半導體層上,例如一矽晶片,然而,它們可替代性地整合於一多層模組中。
該記憶體較佳地係一非揮發性記憶體,例如電子可抹除可程式化唯讀記憶體或快閃記憶體,它較佳地支援隨機存取讀取,使得該韌體模組和軟體應用可從該記憶體中直接執行。
熟悉本發明相關技術領域人員會理解到該裝 置典性地也會包括揮發性記憶體,例如隨機存取記憶體,它可額外包括一或更多周邊裝置,它可具有用於接收電力和一時脈信號的連接,它可具有用於一天線的連接,它可具有例如一串列式連接的一或更多輸入及/或輸出介面。
在此所述觀點或實施例的選擇或較佳特性可在任何適當的地方施用至任何其它觀點或實施例。
1‧‧‧積體電路微控制器
3‧‧‧時脈邏輯
5‧‧‧電力管理電路
7‧‧‧處理器
8‧‧‧中斷介面邏輯
9‧‧‧記憶體保護邏輯
11‧‧‧隨機存取記憶體
13‧‧‧非揮發快閃記憶體
15‧‧‧周邊裝置
17‧‧‧無線電通訊邏輯
19‧‧‧輸入/輸出電路
21‧‧‧硬體抽象化層
23‧‧‧韌體模組
25‧‧‧驅動器
27‧‧‧軟體應用
29‧‧‧應用程式介面
31‧‧‧無線電通訊協定區塊
35‧‧‧程式庫
37‧‧‧韌體管理者
41‧‧‧不同中斷位準
43‧‧‧中斷位準
本發明之較佳實施例現在參考該些附圖來描述,只是舉例說明,其中:圖1係實施本發明之一微控制器之示意圖。
圖2係顯示該微控制器架構內之主要軟體元件示意圖。
圖3係該微控制器的記憶體圖之示意圖。
圖4係不同處理器中斷優先權位準的象徵圖。
圖5a-5c係說明各種中斷方案的象徵圖。
圖6係說明該軟體應用呼叫該韌體模組中的一函式之來源碼構件象徵圖。
圖7係說明該軟體應用使用一系統呼叫以調用一內部函式的來源碼構件象徵圖。
圖8係說明該軟體應用接收一硬體中斷的來源碼構件象徵圖。
圖9係用於調用一無線電通訊函式的另一機制示意圖。
圖10係用於調用一無線電通訊函式的再一機制示意圖。
圖11係用於調用一無線電通訊函式的又一機制示意圖。
圖1顯示一積體電路微控制器1,有時稱為一晶片上無線電(radio-on-a-chip)。它包括時脈邏輯3,其可包含一電阻電容振盪器及/或可接收一輸入係來自一晶片外晶體振盪器(圖未示)、電力管理電路5、一處理器7(例如,一ARMTM CortexTM-M0)、中斷介面邏輯8、記憶體保護邏輯9、隨機存取記憶體11、非揮發性快閃記憶體13、一或更多周邊裝置15、無線電通訊邏輯17及輸入/輸出電路19。
該處理器7、隨機存取記憶體11和快閃記憶體13係以例如使用接線和匯流排(圖未示)的傳統方式互連之。該記憶體保護邏輯9被安置,用以截取自該處理器7至該隨機存取記憶體11和快閃記憶體13的指令。該中斷介面邏輯8係連接至該處理器7的一備用硬體中斷輸入和一記憶體匯流排。當被安置於一產品中時,該微控制器1可被連接至一些外部元件,例如,一電源供應器、無線電天線、晶體振盪器、電容器、感測器、音訊/視訊輸出裝置等等(圖未示)。
圖2顯示該軟體構造的主要元件,包含一選用的硬體抽象化層21,例如該ARMTM CortexTM微控制器軟體介 面標準、一韌體模組23、驅動器25和一軟體應用27。該些驅動器25可以專屬於該軟體應用27。
該韌體模組23係一包括多個嵌入式軟體區塊的連結二元應用,一無線電通訊協定區塊31實現一或更多無線通訊協定堆疊,例如藍芽低能量(Bluetooth Low EnergyTM)。一程式庫35提供分享硬體資源管理和函式,例如,亂數產生、配置中斷和優先權、電力管理(例如,用於致能和禁能周邊裝置)、加密函式等等。一韌體管理者37支援致能和禁能該韌體模組並致能和禁能該無線電通訊協定堆疊。
該韌體模組23擁有該系統向量表且為全部重置後的入口點。
一用於該韌體模組23的應用程式介面(API)29允許該軟體應用27調用該韌體模組23中的函式。它係完全使用輸入至該中斷介面邏輯8的信號來配置。每一個韌體函式係與一獨一無二函式數有關,本映射可被提供給該軟體應用27的開發者以允許該些函式被正確地呼叫。可在編譯每一個時,將它的內容整合至該韌體模組23和該軟體應用27兩者中,在該隨機存取記憶體11中的一預定分享位址係可由該軟體應用27寫入並可由該韌體模組23讀取,使用本位址允許該軟體應用27傳送一函式數至該韌體模組23。
該韌體模組23可使用軟體中斷對該軟體應用27來通訊事件,其內容被暫存直到該軟體應用27來讀取(輪詢)。該讀取係透過一應用程式介面呼叫(例如,event_get())而完成。
除了能夠使用該韌體模組23來間接使用該硬體外,該軟體應用27可直接或透過一硬體抽象化層21來存取該微控制器1的硬體,例如藉由特定應用驅動器25。
圖3顯示該隨機存取記憶體11和快閃記憶體13如何共享於該韌體模組23和該軟體應用27(包含任何特定應用驅動器25)之間。當使用一ARMTM CortexTM-M0處理器7時,該快閃記憶體13係指定位址從0(0x0000 0000)往上至程式記憶體容量(SizeOfProgMem),且該隨機存取記憶體11係指定位址從0x2000 0000往上至(0x2000 0000+SizeOfRAM),當然可在其它實施例中使用不同的位址值。
該快閃記憶體13包括位址CLENR0(程式碼長度範圍0)任一側之兩個不同區域,在零至CLENR0之間的區域0係該韌體模組23載入處,它的中斷向量表係儲存於位址零。自CLENR0向上延伸之區域1係該軟體應用27載入處。它也具有一中斷向量表位於位址CLENR0處,其目的係說明於下。會理解到該裝置1可具有其它非揮發性記憶體(圖未示),其可用於其它目的,例如儲存組態資訊或旗標。
該隨機存取記憶體11類似地具有自該基底位址0x2000 000至RLENR0的區域0和自RLENR0向上延伸的區域1。隨機存取記憶體區域0提供用於該韌體模組23的資料儲存,而隨機存取記憶體區域1提供用於該軟體應用27的資料儲存。一呼叫堆疊係共享於該韌體模組23和該軟體應用27之間,例如自位址0x2000 0000+SizeOfRAM向下 增長。分配給該呼叫堆疊的記憶體必須大到足以符合該韌體模組23和該軟體應用27的需求,該預定共享記憶體位址可為該隨機存取記憶體11的區域1或可位於該隨機存取記憶體11的區域0和1之外的其它地方。
該韌體模組23呼叫回傳用法需求可由該裝置製造商公開給該裝置1,該軟體應用27開發者接著必須定義一初始堆疊指標並保留足夠堆疊記憶體給該韌體模組23和該軟體應用27兩者,該韌體模組23會初始化該主堆疊指標為重置狀態。
該記憶體保護邏輯9係安排來截取自該處理器7至該快閃記憶體體13和該隨機存取記憶體11的全部記憶體存取要求(例如:讀取要求),它決定該存取要求指令來源(例如:該要求係來自該韌體模組23或該軟體應用27)。它也存取記憶體保護組態資料(例如:儲存於一或更多專屬暫存器),其表示用於各種來源的各自存取許可並據此允許或拒絕該存取要求。
在本發明一些較佳實施例中,拒絕該軟體應用27係拒絕讀取及/或寫入存取快閃區域0及隨機存取記憶體區域0,此保護該韌體模組23的私密性並可防止該軟體應用27無意或惡意寫入至分配給該韌體模組23的記憶體位址從而增加堅固性和安全性。該軟體應用快閃區域1也可以防止讀取存取,例如防止經由一外部除錯介面之回讀。
此意謂著當該軟體應用27沒有寫入存取至隨機存取記憶體區域0時,該初始堆疊指標不能位於本區域。 在本發明其它實施例中,該呼叫堆疊可分成二部分,其中該韌體模組23呼叫堆疊係位於隨機存取記憶體區域0中,且該軟體應用27呼叫堆疊係位於隨機存取記憶體區域1中。
該中斷介面邏輯8內含一單一位元暫存器(圖未示),其可由該處理器7定址,它係安排為,當在偵測該暫存器改變(例如:一反轉值或改變一預定值)時,該中斷介面邏輯8斷言(assert)該硬體中斷線至該處理器7。
圖4顯示由一ARMTM CortexTM-M0處理器所提供的不同中斷位準41,具有隨箭頭方向增加的優先權,以及這些位準係如何映射至該韌體模組23和軟體應用27所使用的中斷位準43。
上面該軟體應用27的主背景內文係四個中斷指標,其係以優先權漸增順序使用如下:軟體應用低優先權、韌體模組低優先權、軟體應用高優先權和韌體模組高優先權。該高優先權軟體應用中斷係使用於需要低時間延遲的關鍵性中斷。
圖5a-5c顯示可能優先權改變的各種範例。
圖5a說明由該軟體應用的低優先權所中斷的軟體應用27中的背景主程序,例如一序列式驅動器。該軟體應用27接著調用一在該韌體模組23的函式,係藉由寫入與該函式有關的函式數至該預定分享記憶體位址並接著將一可定址單位元暫存器寫入該中斷介面邏輯8中,用以引起該中斷介面邏輯8發出一硬體中斷信號至該處理器7。在 該韌體模組23中的中斷處理器以該低優先權韌體位準(其係本特定中斷處理器選取的預設位準),藉由讀取來自該預定分享記憶體位址的函式數並呼叫(仍以該低優先權韌體位準)該指示函式來回應該中斷。一旦完成這個,執行回到該應用低優先權位準,且控制回到該軟體應用27。最後,該軟體應用27完成它的操作且執行回到該主背景階層。
圖5b說明該軟體應用27的主內文所執行對該韌體模組23的一應用程式介面呼叫,這個可使用該軟體應用27發訊該中斷介面邏輯8來觸發一中斷而完成。在本範例中,以韌體低優先權所執行的該應用程式介面函式接著被一高優先權軟體應用例外程序所中斷,例如這個可提供一感測器輸入。它可涉及該韌體模組23傳送一自該感測器輸入的中斷至該軟體應用27。一旦該軟體應用27完成它的高優先權執行,在最終回到該背景主程序之前,該韌體應用程式介面呼叫可以該較低優先權韌體位準持續進行。
圖5c說明以該韌體模組23在該軟體應用27中之一背景主程序的一高優先權中斷,此可能是因為該裝置1必須回應例如一來到無線電封包的臨界時間無線電通訊中斷。在該韌體模組23中的該中斷服務常式可發訊該中斷介面邏輯8以觸發一低優先權韌體中斷(藉由寫入一函式數至該預定共享記憶體位址並在該中斷介面邏輯8中寫入一可定址單位元暫存器),以發訊某一函式所需無線電通訊協定堆疊至該較高位準。在完成該高優先權常式時,因為該處理器7的尾鏈能力(即不必回復至其間的背景主階層) 該低優先權常式係馬上執行。該低優先權韌體常式接著觸發一中斷以發訊至已接收(透過中斷傳送)一無線電資料封包的軟體應用27,本中斷係鏈接於完成該低優先權韌體模組常式之後。本範例中,該軟體應用27接著如圖5a般地藉由發訊該中斷介面邏輯8對該韌體模組23進行一應用程式介面呼叫。最後,該軟體應用低優先權操作完成且執行回到該主階層。
圖6-8說明可在該軟體應用27和該韌體模組23之間傳送控制的不同方式,類C虛擬碼擷取係用於說明,實務上,來自該快閃記憶體13的機器碼指令係由該處理器所執行,該些圖中的編號箭頭指示連續執行步驟。
圖6顯示該軟體應用27透過該韌體模組23的應用程式介面29來呼叫一函式"radio_transmit",該應用27先將用於該radio_transmit函式(ID_RADIO_TRANSMIT)的獨一無二函式識別字寫至隨機存取記憶體11中的共享記憶體位置(FUNCTION_TO_INVOKE),該識別字和共享記憶體位置的位址係使用由該裝置製造商製供應給該軟體應用27開發的韌體標頭檔來輸入;接下來,該應用27藉由寫入至該位址INTERRUPT_INTERFACE_REGISTER(也定義於該標頭檔中)來反轉該中斷介面邏輯8的一暫存器內的二位元旗標。
該中斷介面邏輯8斷言一硬體中斷,且該處理器7透過該韌體模組中斷向量表(其充當該系統中斷向量表)來調用該相關中斷處理器,該中斷處理器自該共享記憶體 位置中讀取與該軟體應用27所呼叫函式有關的識別字;它也可以一類似方式自該軟體應用27中接收使用進一步共享記憶體位置的引數或參數,另外,這類引數可透過硬體記憶體暫存器或透過該呼叫堆疊來傳送。
該中斷處理器呼叫該radio_transmit韌體函式。其它韌體函式可替代調用,例如,其它無線電控制函式(例如:一經由無線電發送資料的指令)、韌體管理函式(例如:禁能該韌體模組)或程式庫函式(例如:產生一亂數)。一旦該函式執行,該中斷結束且控制回到該軟體應用27,一暫存器中或該呼叫堆疊上的回傳值可供該軟體應用使用。
圖7顯示該軟體應用27透過一硬體中斷來調用它自己函式之一,它可執行此以將一低優先權改變成一較高優先權執行位準。類似於圖6中的情形,該軟體應用27使用該中斷介面邏輯8來觸發一硬體中斷並引起用以傳送至該韌體模組23的中斷處理器的執行。然而,在本例中該指令傳送一範圍內之函式識別字,其係保留給該軟體應用自己使用,該韌體模組因此引起用以跳至該軟體應用27的一處理器函式(app_systemcall_function())的執行,潛在性地以一不同優先權位準進行前面的操作。
圖8顯示一不同硬體中斷(例如:來自該無線電通訊邏輯17或一周邊裝置15)如何由該軟體應用27所接收。在接收該中斷時,一在該韌體模組23的中斷處理器被導向之,此檢查是否該韌體模組23被致能且它是否係該韌體模組23被安排來處理的中斷。若是如此,該韌體模組23 處理該中斷;若非如此,如在此所示地,該韌體模組23傳送控制至該軟體應用27中的中斷處理器常式。因為該軟體應用向量表(在CLENR0處)係預先決定,故該韌體模組23已知在那裡找到這個常式,且進入本向量表的位移係相同於進入該韌體模組向量表的位移。
該韌體模組23係預設安排來傳送中斷至該軟體應用27,除非它們係該韌體模組23所配置來處理的中斷;此外,若該韌體模組23已由該軟體應用禁能(例如:透過一對該韌體管理者37的合適應用程式介面呼叫),接著該韌體模組會傳送全部中斷至該軟體應用27。
圖9顯示用於調用一無線電通訊函式的另一機制,其不需使用隨機存取記憶體中的一共享記憶體位置,一些實施例可使用本機制以代之,或如參考至圖6所述同樣機制,該軟體應用27內含位於該快閃記憶體13中的一預定位址的呼叫回傳函式,因為在該韌體模組23被編譯和連結時,該預定位址係已知,故該韌體模組23可跳至本呼叫回傳函式。
為了調用該韌體模組23中的一無線電通訊函式,該軟體應用27先藉由將一可定址單位元暫存器寫入該中斷介面邏輯8來觸發一中斷。該韌體模組23中的中斷處理器接著呼叫該軟體應用27中的呼叫回傳函式並將一指標傳送至一functionID變數且將一指標傳送至一參數資料區塊或資料結構;該呼叫回傳函式接著將該要求無線電通訊函式識別字寫至該functionID指標所指記憶體位址並寫入 該Params指標所指位址的任何參數,控制接著回到該韌體模組23中的中斷處理器,其使用該函式識別字來決定調用該韌體模組23中的什麼無線電通訊函式,它依需要(例如:將它們自該Params記憶體移動至該堆疊)來語法分析該些參數並調用該無線電通訊函式。
圖10顯示又一替代機制,其中一些實施例可使用相同於在此所述其它機制或取代之,此係類似於圖9,除了該函式識別字未使用一指標來傳送,而是代之以由該軟體應用27推至該呼叫堆疊上。
在本範例中,該軟體應用27先將一要求無線電通訊函式識別字寫至該堆疊並接著藉由將一可定址單位元暫存器寫入該中斷介面邏輯8來觸發一中斷,該韌體模組23中的中斷處理器自該呼叫堆疊讀出該函式識別字,它接著呼叫該軟體應用27中的呼叫回傳函式,其中,它將一指標傳送至一參數資料區塊,該呼叫回傳函式將任何無線電通訊函式參數寫至該指標所指位址,該中斷處理器接著利用該些指示參數來調用該無線電通訊函式。
圖11顯示又一替代機制,其中一些實施例可使用相同於在此所述其它機制或取代之;在本機制中,不需一分享隨機存取記憶體位置,也不需任何呼叫回傳函式,既然它們可潛在性地免除在該韌體模組23和該軟體應用27(可能排除該軟體應用27欲載入的基底位址)開發者之間的任何記憶體位置(隨機存取記憶體或快閃記憶體)共享,使用本機制的實施例會較佳。
該軟體應用27將一要求無線電通訊函式和欲傳送至該無線電通訊函式的任何參數推至該呼叫堆疊上,它接著藉由將一可定址單位元暫存器寫入該中斷介面邏輯8來觸發一中斷。該韌體模組23中的中斷處理器接著自該堆疊中讀取該識別字和該些參數,它依需要(例如:若需要時,重新安排它們並將它們推回到該呼叫堆疊上)處理該些參數並呼叫由該識別字所識別出的無線電通訊函式。
在全部這些各種方式中,一整合式無線電通訊裝置可被安全且便利地配置和使用。

Claims (34)

  1. 一種配置一積體電路無線電通訊裝置的方法,其中:該裝置包括一記憶體、一無線電通訊邏輯、一中斷介面邏輯、及具有一硬體中斷輸入線的一處理器;該中斷介面邏輯包括用於接收執行於該裝置上的軟體所產生一信號的輸入邏輯及安排來斷言該處理器的硬體中斷輸入線以回應在該輸入邏輯處接收一軟體產生信號的輸出邏輯;該記憶體內含一韌體模組,包括(i)指令用於根據一預定無線電通訊協定來控制該無線電通訊邏輯及(ii)一中斷常式包括指令用於接收在該韌體模組中的一無線電通訊函式識別並用於調用該辨識無線電通訊函式;及該裝置係配置來調用該中斷常式以回應至該處理器的硬體中斷輸入線的一斷言,該方法包括將載入一軟體應用至該裝置的記憶體中,其中,該軟體應用包括指令用於藉由(i)產生一信號至該中斷介面邏輯以引起該中斷介面邏輯斷言該處理器的硬體中斷輸入線並(ii)辨識欲調用至該中斷常式的無線電通訊函式,來調用該韌體模組中的無線電通訊函式,其中該韌體模組和該軟體應用各具有一相對應中斷向量表,其中該裝置係配置來在處理一中斷時使用該韌體模組的向量表,且其中該韌體模組係配置使得該韌體模組未被程式化來自行處理的全部中斷係傳送至該軟體應用。
  2. 一種配置一積體電路無線電通訊裝置的方法,其中:該裝置包括一記憶體、一無線電通訊邏輯、一中斷介面邏輯、及具有一硬體中斷輸入線的一處理器;該中斷介面邏輯包括用於接收執行於該裝置上的軟體所產生一信號的輸入邏輯及安排來斷言該處理器的硬體中斷輸入線以回應在該輸入邏輯電路處接收的一軟體產生信號的輸出邏輯;及該裝置係配置來調用該中斷常式以回應至該處理器的硬體中斷輸入線的一斷言,該方法包括:載入一韌體模組至該裝置的記憶體中,其中,該韌體模組包括(i)指令用於根據一預定無線電通訊協定來控制該無線電通訊邏輯和(ii)一中斷常式包括指令用於接收在該韌體模組中的一無線電通訊函式識別並用於調用該已辨識無線電通訊函式;及載入一軟體應用至該裝置的記憶體中,其中,該軟體應用包括指令用於藉由產生一信號至該中斷介面邏輯以引起該中斷介面邏輯斷言該處理器的硬體中斷輸入線並辨識欲調用至該中斷常式的無線電通訊函式來調用該韌體模組中的無線電通訊函式,其中該韌體模組和該軟體應用各具有一相對應中斷向量表,其中該裝置係配置來在處理一中斷時使用該韌體模組的向量表,且其中該韌體模組係配置使得該韌體模組未被程式化來自行處理的全部中斷係傳送至該軟體應用。
  3. 如申請專利範圍第1或2項所述之方法,其中該韌體模組係一預先連結二位元影像。
  4. 如前述申請專利範圍第1或2項所述之方法,包括載入該軟體應用至一預定應用記憶體位址。
  5. 如前述申請專利範圍第1或2項所述之方法,其中該軟體應用未內含有關該韌體模組中的記憶體位址資料。
  6. 如前述申請專利範圍第1或2項所述之方法,其中該中斷介面邏輯的輸入邏輯係安排來偵測一信號以回應該處理器寫入至一預定記憶體位址或暫存器。
  7. 如前述申請專利範圍第1或2項所述之方法,其中該軟體應用包括指令用於傳送一函式識別字至該中斷常式以辨識一欲引用無線電通訊函式。
  8. 如申請專利範圍第7項所述之方法,其中該軟體應用包括指令用於寫入該函式識別字至該裝置上的一共享記憶體位置,且其中該中斷常式包括指令用於讀取自該共享記憶體位置中的該函式識別字。
  9. 如申請專利範圍第8項所述之方法,其中一用於該共享記憶體位置的位址係硬編碼成該韌體模組和該軟體應用。
  10. 如申請專利範圍第7項所述之方法,其中該軟體應用包括指令用於傳送該函式識別字至一呼叫堆疊上的中斷常式。
  11. 如前述申請專利範圍第1或2項所述之方法,其中該軟體應用包括指令用於藉由寫入該無線電通訊函式的參數至一呼叫堆疊以傳送該些參數至該中斷常式。
  12. 如申請專利範圍第11項所述之方法,其中該中斷常式包括指令用於自該堆疊中讀取該些參數並將它們傳送至該無線電通訊函式。
  13. 如前述申請專利範圍第1或2項所述之方法,其中該韌體模組內含在該軟體應用中的一呼叫回傳函式位址,且其中,該中斷常式包括指令用於傳送一或更多記憶體位址至該呼叫回傳函式並藉由讀取來自該一或更多記憶體位址的資料以接收來自該呼叫回傳函式的一函式識別字或函式參數。
  14. 如前述申請專利範圍第1或2項所述之方法,其中該韌體模組係安排使得該韌體模組所提供至該軟體應用的全部無線電通訊函式可藉由產生一信號至該中斷介面邏輯而被調用。
  15. 如前述申請專利範圍第1或2項所述之方法,其中該處理器支援複數個中斷優先權,且其中該裝置係安排以一相對高優先權來執行該韌體模組中的一些函式並以一相對低優先權來執行該韌體模組中的其它函式。
  16. 如申請專利範圍第15項所述之方法,其中該裝置係安排以一相對高優先權來執行該軟體應用中的一些函式並以一相對低優先權來執行該軟體應用中的其它函式,且其中,該高和低軟體應用優先權係與該高和低韌體模組優先權交錯。
  17. 如申請專利範圍第16項所述之方法,其中最高韌體優先權位準係高於最高軟體應用優先權位準。
  18. 如前述申請專利範圍第1或2項所述之方法,其中該裝置包括記憶體保護邏輯,係安排來截取記憶體存取指令並阻止該軟體應用讀取或覆寫該韌體模組。
  19. 一種積體電路無線電通訊裝置,包括:一處理器,具有一硬體中斷輸入線;一記憶體;一無線電通訊邏輯;及一中斷介面邏輯,其中:該記憶體內含一韌體模組,包括(i)指令用於根據一預定無線電通訊協定來控制該無線電通訊邏輯及(ii)一中斷常式包括指令用於接收在該韌體模組中的一無線電通訊函式識別並用於調用該辨識無線電通訊函式;該中斷介面邏輯包括用於接收執行於該裝置上的軟體所產生信號的輸入邏輯及安排來斷言該處理器的硬體中斷輸入線以回應在該輸入邏輯處接收的軟體產生信號的輸出邏輯;及該裝置係配置來調用該中斷常式以回應至該處理器的硬體中斷輸入線的一斷言,該記憶體另內含一軟體應用,包括指令用於藉由產生一信號至該中斷介面邏輯以引起該中斷介面邏輯斷言該處理器的硬體中斷輸入線並辨識欲調用至該中斷常式的無線電通訊函式來調用該韌體模組中的一無線電通訊函式;及該韌體模組和該軟體應用各具有一相對應中斷向量表,其中該裝置係配置來在處理一中斷時使用該韌體模組的向量表,且其中該韌體模組係配置使得該韌體模組未被程式化來自行處理的全部中斷係傳送至該軟體應用。
  20. 如申請專利範圍第19項所述之裝置,其中該韌體模組係一預先連結二位元影像。
  21. 如申請專利範圍第19或20項所述之裝置,其中該中斷介面邏輯的輸入邏輯係安排來偵測一信號以回應該處理器寫入至一預定記憶體位址或暫存器。
  22. 如申請專利範圍第19或20項所述之裝置,其中該軟體應用未內含有關該韌體模組中的記憶體位址資料。
  23. 如申請專利範圍第19或20項所述之裝置,其中該軟體應用包括指令用於傳送一函式識別字至該中斷常式以辨識欲調用的無線電通訊函式。
  24. 如申請專利範圍第23項所述之裝置,其中該軟體應用包括指令用於寫入該函式識別字至該裝置上的一共享記憶體位置,且其中該中斷常式包括指令用於自該共享記憶體位置中讀取該函式識別字。
  25. 如申請專利範圍第24項所述之裝置,其中一用於該共享記憶體位置的位址係硬編碼成該韌體模組和該軟體應用。
  26. 如申請專利範圍第23項所述之裝置,其中該軟體應用包括指令用於傳送該函式識別字至一呼叫堆疊上的中斷常式。
  27. 如申請專利範圍第19或20項所述之裝置,其中該軟體應用包括指令用於藉由寫入用於該無線電通訊函式的參數至一呼叫堆疊以傳送該些參數至該中斷常式。
  28. 如申請專利範圍第27項所述之裝置,其中該中斷常式包括指令用於自該堆疊中讀取該些參數並將它們傳送至該無線電通訊函式。
  29. 如申請專利範圍第19或20項所述之裝置,其中該韌體模組內含在該軟體應用中的一呼叫回傳函式位址,且其中該中斷常式包括指令用於傳送一或更多記憶體位址至該呼叫回傳函式並藉由讀取來自該一或更多記憶體位址的資料來接收來自該呼叫回傳函式的一函式識別字或函式參數。
  30. 如申請專利範圍第19或20項所述之裝置,其中該韌體模組係安排使得該韌體模組所提供至該軟體應用的全部無線電通訊函式可藉由產生一信號至該中斷介面邏輯而被調用。
  31. 如申請專利範圍第19或20項所述之裝置,其中該處理器支援複數個優先權,且其中該裝置係安排以一相對高優先權來執行該韌體模組中的一些函式並以一相對低優先權來執行該韌體模組中的其它函式。
  32. 如申請專利範圍第31項所述之裝置,其中該裝置係安排以一相對高優先權來執行該軟體應用中的一些函式並以一相對低優先權來執行該軟體應用中的其它函式,且其中,該高和低軟體應用優先權係與該高和低韌體模組優先權交錯。
  33. 如申請專利範圍第32項所述之裝置,其中該最高韌體優先權位準係高於該最高軟體應用優先權位準。
  34. 如申請專利範圍第19或20項所述之裝置,其中該裝置包括記憶體保護邏輯,係安排來截取記憶體存取指令並阻止該軟體應用讀取或覆寫該韌體模組。
TW103140369A 2013-12-23 2014-11-21 配置一積體電路無線電通訊裝置的方法及積體電路無線電通訊裝置 TWI640869B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
??GB1322836.6 2013-12-23
GB1322836.6A GB2521607B (en) 2013-12-23 2013-12-23 Integrated-Circuit Radio

Publications (2)

Publication Number Publication Date
TW201527976A TW201527976A (zh) 2015-07-16
TWI640869B true TWI640869B (zh) 2018-11-11

Family

ID=50114614

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103140369A TWI640869B (zh) 2013-12-23 2014-11-21 配置一積體電路無線電通訊裝置的方法及積體電路無線電通訊裝置

Country Status (8)

Country Link
US (1) US10055367B2 (zh)
EP (1) EP3087477B1 (zh)
JP (1) JP6495290B2 (zh)
KR (1) KR102276696B1 (zh)
CN (1) CN105849695B (zh)
GB (1) GB2521607B (zh)
TW (1) TWI640869B (zh)
WO (1) WO2015097426A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2541133B (en) 2015-06-16 2018-01-03 Nordic Semiconductor Asa Interrupt generating unit
US10445119B2 (en) * 2017-06-30 2019-10-15 Intel Corporation Software reconfigurable mobile devices and methods

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1625094A (zh) * 2003-10-29 2005-06-08 株式会社瑞萨科技 无线电通信、数据处理半导体集成电路和便携装置
US20090157936A1 (en) * 2007-12-13 2009-06-18 Texas Instruments Incorporated Interrupt morphing and configuration, circuits, systems, and processes
US20090310878A1 (en) * 2008-06-11 2009-12-17 Canon Kabushiki Kaisha Decoding apparatus and control method thereof
US20090318078A1 (en) * 2006-09-12 2009-12-24 Wavecom Method of managing the software architecture of a radio communication circuit, corresponding application, computer program product and circuit

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6349941A (ja) * 1986-08-20 1988-03-02 Canon Inc 演算処理装置
DE3632139A1 (de) 1986-09-22 1988-04-07 Bbc Brown Boveri & Cie Verfahren zur ausfuehrung von zwei in verschiedenen programmiersprachen geschriebenen programmen
CA2143488C (en) 1995-02-27 2000-01-11 Robert Paul Duncan Dynamic link libraries without linker or loader support
JPH09160768A (ja) * 1995-12-05 1997-06-20 Sharp Corp プログラム実行装置
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
JP4690576B2 (ja) * 2001-04-26 2011-06-01 パナソニックシステムネットワークス株式会社 ソフトウェアモデム及びそれを備えた通信端末装置
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
US7076637B2 (en) * 2003-10-29 2006-07-11 Qualcomm Inc. System for providing transitions between operating modes of a device
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
JP2005242806A (ja) 2004-02-27 2005-09-08 Renesas Technology Corp データ処理装置
US20060104227A1 (en) * 2004-11-15 2006-05-18 Chia-En Chuang Data communication methods and systems
DE102004057259A1 (de) 2004-11-26 2006-06-01 Robert Bosch Gmbh Manipulationsgeschütztes Mikrocontrollersystem
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
JP2007142969A (ja) * 2005-11-21 2007-06-07 Kenwood Corp 無線システムの起動方法及びそのソフトウエア
US20080126779A1 (en) 2006-09-19 2008-05-29 Ned Smith Methods and apparatus to perform secure boot
US7949874B2 (en) * 2006-09-28 2011-05-24 Phoenix Technologies Ltd. Secure firmware execution environment for systems employing option read-only memories
JP4415071B2 (ja) * 2007-06-22 2010-02-17 富士通マイクロエレクトロニクス株式会社 メモリ共有システム装置
EP2271992B1 (en) * 2008-04-28 2013-04-03 Hewlett-Packard Development Company, L. P. Method and system for generating and delivering inter-processor interrupts in a multi-core processor and in certain shared-memory multi-processor systems
US20110117956A1 (en) 2009-11-17 2011-05-19 Yosi Levi Industrial radio device with unified programming interface and methods
GB201102628D0 (en) * 2011-02-15 2011-03-30 Nordic Semiconductor Asa Programmable radio
US20120255031A1 (en) 2011-03-28 2012-10-04 Mcafee, Inc. System and method for securing memory using below-operating system trapping
US9563410B2 (en) 2011-05-25 2017-02-07 Amx Llc Data-driven menuing system for providing a flexible user interface on an electronic device
JP5590069B2 (ja) * 2012-04-27 2014-09-17 株式会社デンソー マイクロコンピュータ
JP5494727B2 (ja) * 2012-05-25 2014-05-21 横河電機株式会社 通信装置
GB2503471B (en) * 2012-06-27 2015-05-06 Nordic Semiconductor Asa Integrated-circuit radio
GB2513727B (en) * 2012-06-27 2015-06-24 Nordic Semiconductor Asa Memory protection
CN102932022A (zh) * 2012-09-29 2013-02-13 上海移远通信技术有限公司 无线通讯模块
GB2515364B (en) * 2013-12-20 2015-06-17 Nordic Semiconductor Asa Updatable integrated-circuit radio
US9762441B2 (en) * 2014-10-29 2017-09-12 Saankhya Labs Private Limited Method and system of dynamically designing and operating an optimal communication network configuration
EP3139635A1 (en) * 2015-08-28 2017-03-08 Alex Volkov Synchronization of audio streams and sampling rate for wireless communication

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1625094A (zh) * 2003-10-29 2005-06-08 株式会社瑞萨科技 无线电通信、数据处理半导体集成电路和便携装置
US20090318078A1 (en) * 2006-09-12 2009-12-24 Wavecom Method of managing the software architecture of a radio communication circuit, corresponding application, computer program product and circuit
US20090157936A1 (en) * 2007-12-13 2009-06-18 Texas Instruments Incorporated Interrupt morphing and configuration, circuits, systems, and processes
US20090310878A1 (en) * 2008-06-11 2009-12-17 Canon Kabushiki Kaisha Decoding apparatus and control method thereof

Also Published As

Publication number Publication date
KR102276696B1 (ko) 2021-07-13
GB201322836D0 (en) 2014-02-12
EP3087477B1 (en) 2023-11-08
EP3087477A1 (en) 2016-11-02
WO2015097426A1 (en) 2015-07-02
TW201527976A (zh) 2015-07-16
KR20160102040A (ko) 2016-08-26
JP2017511513A (ja) 2017-04-20
CN105849695B (zh) 2019-10-08
JP6495290B2 (ja) 2019-04-03
GB2521607B (en) 2016-03-23
GB2521607A (en) 2015-07-01
US10055367B2 (en) 2018-08-21
CN105849695A (zh) 2016-08-10
US20160267030A1 (en) 2016-09-15

Similar Documents

Publication Publication Date Title
US9411601B2 (en) Flexible bootstrap code architecture
US10289785B1 (en) Platform architecture creation for a system-on-chip
US10102155B2 (en) Method and device of information protection for micro control unit chip
TWI625672B (zh) 可更新積體電路無線電
TWI603199B (zh) 基於能力的裝置驅動程式架構
US20160196170A1 (en) Integrated-circuit radio
TWI640869B (zh) 配置一積體電路無線電通訊裝置的方法及積體電路無線電通訊裝置
WO2015006923A1 (en) Techniques for dynamically redirecting device driver operations to user space
Tan et al. Design and Implementation of Bootloader for Vehicle Control Unit Based on Can Bus
Leier et al. FAIL-PROOF OVER THE AIR FIRMWARE UPGRADE FOR EMBEDDED SYSTEMS
Halvorsen et al. The I/O Kit Framework