US2016196170A1PendingUtilityA1

Integrated-circuit radio

46
Assignee: NORDIC SEMICONDUCTOR ASAPriority: Jun 27, 2012Filed: Mar 11, 2016Published: Jul 7, 2016
Est. expiryJun 27, 2032(~6 yrs left)· nominal 20-yr term from priority
G06F 9/44557H04B 1/0003G06F 9/44521G06F 9/4812G06F 8/65G06F 9/4843G06F 9/547
46
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

An integrated-circuit radio communication device ( 1 ) comprises a processor ( 7 ), memory ( 13 ), and radio communication logic ( 17 ). The memory ( 13 ) has a firmware module ( 23 ) stored at a firmware memory address, the firmware module ( 23 ) comprising instructions for controlling the radio communication logic ( 17 ) according to a predetermined radio protocol. The processor ( 7 ) is configured to receive supervisor call instructions, each having an associated supervisor call number, and to respond to a supervisor call instruction by (i) invoking a supervisor call handler in the firmware module ( 23 ), and (ii) making the supervisor call number available to the call handler. A software application ( 27 ) is loaded into the memory ( 13 ) of the device ( 1 ), and stored at a predetermined application memory address. It is arranged to invoke a radio communication function from the firmware module ( 23 ) by issuing a supervisor call instruction having an associated predetermined supervisor call number corresponding to the function to be invoked.

Claims

exact text as granted — not AI-modified
1 . A method of configuring an integrated-circuit radio communication device, wherein:
 the device comprises a processor, memory, and radio communication logic;   the memory has a firmware module stored at a firmware memory address, the firmware module comprising instructions for controlling the radio communication logic according to a predetermined radio protocol; and   the processor is configured to receive supervisor call instructions, each having an associated supervisor call number, and to respond to a supervisor call instruction by (i) invoking a supervisor call handler in the firmware module, and (ii) making the supervisor call number available to the call handler,   
       the method comprising loading a software application into the memory of the device, such that the application is stored at a predetermined application memory address, wherein the software application is arranged to invoke a radio communication function from the firmware module by issuing a supervisor call instruction having an associated predetermined supervisor call number corresponding to the function to be invoked. 
     
     
         2 . The method of  claim 1 , wherein the firmware module is a linked binary module. 
     
     
         3 . The method of  claim 1 , wherein the firmware module is arranged so that all radio communication functions provided by the firmware module are invoked by supervisor call instructions having respective supervisor call numbers, according to a predetermined correspondence between numbers and functions. 
     
     
         4 . The method of  claim 1 , further comprising compiling the software application and using the correspondence between supervisor call numbers and radio communication functions in said compiling. 
     
     
         5 . The method of  claim 1 , further comprising using the predetermined software-application memory address when compiling and/or loading the software application. 
     
     
         6 . The method of  claim 1 , wherein the software application is arranged to issue a supervisor call instruction by executing a dedicated SVC processor instruction. 
     
     
         7 . The method of  claim 1 , wherein the firmware module and the software application each has a respective interrupt vector table, wherein the device is configured to use the vector table of the firmware module when processing an interrupt, and wherein the firmware module is configured so that all interrupts that the firmware module is not programmed to handle itself are passed on to the software application. 
     
     
         8 . The method of  claim 7 , wherein the interrupt vector table of the firmware module has interrupt-vector-address offsets that are identical to interrupt-vector-address offsets in the interrupt vector table of the software application. 
     
     
         9 . The method of  claim 1 , wherein the device comprises memory protection logic arranged to intercept memory access instructions and being configured to prevent the software application from reading or overwriting the firmware module. 
     
     
         10 . A method of configuring an integrated-circuit radio communication device, wherein the device comprises a processor, memory, and radio communication logic, the method comprising:
 loading a software application into the memory of the device, such that the application is stored at a predetermined application memory address; and   loading a firmware module into the memory of the device, such that the firmware module is stored at a predetermined firmware memory address, the firmware module comprising instructions for controlling the radio communication logic according to a predetermined radio protocol,   
       wherein:
 the processor is configured to receive supervisor call instructions, each having an associated supervisor call number, and to respond to a supervisor call instruction by (i) invoking a supervisor call handler in the firmware module, and (ii) making the supervisor call number available to the call handler; and 
 the software application is arranged to invoke a radio communication function from the firmware module by issuing a supervisor call instruction having an associated predetermined supervisor call number corresponding to the function to be invoked. 
 
     
     
         11 . The method of  claim 10 , wherein the firmware module and the software application each has a respective interrupt vector table, wherein the device is configured to use the vector table of the firmware module when processing an interrupt, and wherein the firmware module is configured so that all interrupts that the firmware module is not programmed to handle itself are passed on to the software application. 
     
     
         12 . The method of  claim 11 , wherein the interrupt vector table of the firmware module has interrupt-vector-address offsets that are identical to interrupt-vector-address offsets in the interrupt vector table of the software application. 
     
     
         13 . An integrated-circuit radio communication device, wherein:
 the device comprises a processor, memory, and radio communication logic;   the memory has a firmware module stored at a firmware memory address, the firmware module comprising instructions for controlling the radio communication logic according to a predetermined radio protocol; and   the processor is configured to receive supervisor call instructions, each having an associated supervisor call number, and to respond to a supervisor call instruction by (i) invoking a supervisor call handler in the firmware module, and (ii) making the supervisor call number available to the call handler;   the memory has a software application stored at a predetermined application memory address, the software application being arranged to invoke a radio communication function from the firmware module by issuing a supervisor call instruction having an associated predetermined supervisor call number corresponding to the function to be invoked.   
     
     
         14 . The device of  claim 13 , wherein the firmware module is arranged so that all radio communication functions provided by the firmware module are invoked by supervisor call instructions having respective supervisor call numbers, according to a predetermined correspondence between numbers and functions. 
     
     
         15 . The device of  claim 13 , wherein the firmware module is arranged so that all functions provided by the firmware module are invoked by the issuing of supervisor call instructions. 
     
     
         16 . The device of  claim 13 , configured so that no run-time linking is required when executing the software application on the device. 
     
     
         17 . The device of  claim 13 , wherein the software application is arranged to issue a supervisor call instruction by executing a dedicated SVC processor instruction. 
     
     
         18 . The device of  claim 13 , wherein the processor and/or software application are configured to make the values of one or more arguments available to the supervisor call handler. 
     
     
         19 . The device of  claim 13 , wherein the processor is configured to handle a supervisor call instruction from the software application as an exception, wherein the processor supports a plurality of interrupt priorities, and wherein some functions in the firmware module are assigned a relatively high priority, with other functions in the firmware module having a relatively low priority. 
     
     
         20 . The device of  claim 19 , wherein the software application is arranged to handle interrupts, assigning a relatively high priority to some event-driven functions, and a relatively low priority to other event-driven functions. 
     
     
         21 . The device of  claim 20 , wherein the highest firmware priority level is higher than the highest software application priority level. 
     
     
         22 . The device of  claim 13 , wherein the firmware module is configured to invoke a function in the software application in response to the firmware module receiving an interrupt. 
     
     
         23 . The device of  claim 13 , wherein the firmware module and the software application each has a respective interrupt vector table, wherein the device is configured to use the vector table of the firmware module when processing an interrupt, and wherein the firmware module is configured so that all interrupts that the firmware module is not programmed to handle itself are passed on to the software application. 
     
     
         24 . The device of  claim 23 , wherein the interrupt vector table of the firmware module has interrupt-vector-address offsets that are identical to interrupt-vector-address offsets in the interrupt vector table of the software application. 
     
     
         25 . The device of  claim 13 , wherein the processor supports seamless transitions from one interrupt priority level to another. 
     
     
         26 . The device of  claim 13 , comprising memory protection logic arranged to intercept memory access instructions and being configured to prevent the software application from reading or overwriting the firmware module and/or from reading or writing to RAM associated with the firmware module. 
     
     
         27 . A non-transient, tangible medium containing a firmware module for loading on an integrated-circuit radio communication device comprising a processor, memory, and radio communication logic, at a firmware memory address, wherein the firmware module comprises:
 instructions for controlling the radio communication logic according to a predetermined radio protocol; and   a supervisor call handler arranged to respond to a supervisor call instruction being issued by a software application by performing a radio communication function corresponding to a supervisor call number associated with the supervisor call instruction.   
     
     
         28 . The non-transient, tangible medium of  claim 27 , wherein the firmware module is a linked binary module. 
     
     
         29 . A non-transient, tangible medium containing a software application for loading on an integrated-circuit radio communication device comprising a processor, memory, and radio communication logic, at a predetermined software application memory address, wherein the software application is arranged to invoke a radio communication function by issuing a supervisor call instruction having an associated, predetermined supervisor call number corresponding to the function to be invoked.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.