Shared memory architecture
First Claim
Patent Images
1. For use with a battery monitoring system (BMS) having an application operable to measure current flow to a vehicle battery and a launcher operable to enable drivers utilized by the application, the BMS having a non-volatile memory and a volatile memory for storing code, the BMS being included within a vehicle having a vehicle bus, the method comprising:
- storing application code for application functions capable of being called by the application to an application memory block of the non-volatile memory, including first application code sufficient to determine current flow to the vehicle battery;
storing launcher code for launcher functions capable of being called by the launcher to a launcher memory block of the non-volatile memory, including first launcher code sufficient to initialize the BMS, the BMS requiring initialization prior to the application determining current flow to the vehicle battery;
storing shared code for shared functions capable of being called by the launcher and application to a shared memory block of the non-volatile memory, including first communication code sufficient for use by both of the launcher and application when executing communication related operations over the vehicle bus;
storing one shared function pointer within the shared memory block for each one of the shared functions, each shared function pointer being stored at a location within the shared memory block and pointing to an another location within the shared memory block storing shared code for shared functions, including storing a first shared function pointer that points to the another location storing the first communication code;
re-compiling the shared code such that at least the same shared functions remain available after re-compiling, wherein each shared function pointer is stored at the same location within the shared memory block after the re-compiling.
5 Assignments
0 Petitions
Accused Products
Abstract
A shared memory architecture is disclosed to support operations associated with executing shared functions from a shared memory space in such a manner that separate pieces of software can execute the shared functions.
-
Citations
19 Claims
-
1. For use with a battery monitoring system (BMS) having an application operable to measure current flow to a vehicle battery and a launcher operable to enable drivers utilized by the application, the BMS having a non-volatile memory and a volatile memory for storing code, the BMS being included within a vehicle having a vehicle bus, the method comprising:
-
storing application code for application functions capable of being called by the application to an application memory block of the non-volatile memory, including first application code sufficient to determine current flow to the vehicle battery; storing launcher code for launcher functions capable of being called by the launcher to a launcher memory block of the non-volatile memory, including first launcher code sufficient to initialize the BMS, the BMS requiring initialization prior to the application determining current flow to the vehicle battery; storing shared code for shared functions capable of being called by the launcher and application to a shared memory block of the non-volatile memory, including first communication code sufficient for use by both of the launcher and application when executing communication related operations over the vehicle bus; storing one shared function pointer within the shared memory block for each one of the shared functions, each shared function pointer being stored at a location within the shared memory block and pointing to an another location within the shared memory block storing shared code for shared functions, including storing a first shared function pointer that points to the another location storing the first communication code; re-compiling the shared code such that at least the same shared functions remain available after re-compiling, wherein each shared function pointer is stored at the same location within the shared memory block after the re-compiling. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for performing battery monitoring with use of a battery monitoring system (BMS), the BMS having:
- a non-volatile, application memory block having application code for an application operable to execute battery monitoring related functions, the application code including a first pointer to a transmit data function pointer;
a non-volatile, launcher memory block having launcher code for a launcher operable for initializing the BMS, the launcher code including a second pointer to the transmit data function pointer;
a non-volatile, shared memory block having the transmit data function pointer pointing to a storage location within the shared memory block for transmit data code associated with a transmit data function; and
a central processing unit (CPU) configured to facilitate executing functions associated with the application and the launcher, the method comprising;calling the launcher code from the launcher memory block in order to execute the launcher to initialize the BMS, including executing the transmit data function by processing the first pointer in order to call the transmit data function pointer and then processing the transmit data function pointer in order to call the transmit data code; subsequently calling the application code from the application memory block in order to execute the battery monitoring function, including executing the transmit data function by processing the second pointer in order to call the transmit data function pointer and then processing the transmit data function pointer in order to call the transmit data code; and subsequently to calling the launcher code, re-compiling the transmit data code such that at least a portion of the transmit data code is stored a different location of the shared memory block, including storing the transmit data pointer at a same location of the shared memory block as prior to the re-compiling. - View Dependent Claims (10, 11)
- a non-volatile, application memory block having application code for an application operable to execute battery monitoring related functions, the application code including a first pointer to a transmit data function pointer;
-
12. A battery monitoring system (BMS) having an application operable to measure current flow to a vehicle battery and a launcher operable to enable drivers utilized by the application, the BMS being included within a vehicle having a vehicle bus, the BMS having a non-volatile memory and a volatile memory for storing code to perform a the method of:
-
storing application code for application functions capable of being called by the application to an application memory block of the non-volatile memory, including first application code sufficient to determine current flow to the vehicle battery; storing launcher code for launcher functions capable of being called by the launcher to a launcher memory block of the non-volatile memory, including first launcher code sufficient to initialize the BMS, the BMS requiring initialization prior to the application determining current flow to the vehicle battery; storing shared code for shared functions capable of being called by the launcher and application to a shared memory block of the non-volatile memory, including first communication code sufficient for use by both of the launcher and application when executing communication related operations over the vehicle bus; storing one shared function pointer within the shared memory block for each one of the shared functions, each shared function pointer being stored at a location within the shared memory block and pointing to an another location within the shared memory block storing shared code for shared functions, including storing a first shared function pointer that points to the another location storing the first communication code; and re-compiling the shared code such that at least the same shared functions remain available after re-compiling, wherein each shared function pointer is stored at the same location within the shared memory block after the re-compiling. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
Specification