Abstract:
Provided herein are various systems, methods and architectures for enabling a microcontroller manufacturer to provide certain modification and configuration functionality to product vendors, while still maintaining the level of control needed to ensure that a product vendor does not inadvertently (or otherwise) create code that causes the microcontroller to not work properly. In one embodiment, this functionality can be performed through the steps of displaying a set of microcontroller properties that are available for configuration, receiving user information regarding a first value corresponding to a first microcontroller property, determining whether the user information results in a valid microcontroller configuration, and in response to determining that the user information results in a valid microcontroller configuration, generating compiled code for the microcontroller.
Abstract:
A software platform for embedded systems. In one embodiment, a package is received and stored in memory of a computer system. The package comprises a plurality of software components and a real time operating system (RTOS). The plurality of software components are configured to provide respective services to any one of a plurality of applications executing on a microcontroller. The RTOS is configured for direct exchange of information with each of the plurality of software components.
Abstract:
Provided herein are various systems, methods and architectures for enabling a microcontroller manufacturer to provide certain modification functionality to product vendors, while still maintaining the level of control needed to ensure that a product vendor does not inadvertently (or otherwise) create code that causes the microcontroller to not work properly. In one embodiment, this functionality can be performed through the steps of displaying an initial stack of software modules to a user, receiving instructions to modify the initial stack of software modules to create a modified stack of software modules, compiling the modified stack of software modules to produce compiled computer instructions, and flashing the embedded memory of the microcontroller with the compiled computer instructions.
Abstract:
A method and apparatus for microcontroller (MCU) memory relocation. The MCU includes a central processing unit (CPU) and memory, but lacks a memory management unit (MMU). In one embodiment of the method, a first program is selected for execution by the CPU. The first program is one of a plurality of programs stored in the memory of the MCU. Each of the programs includes position dependent instructions. The programs are compiled from source code written in position dependent code.
Abstract:
A method and apparatus for secure code delivery. In one embodiment the method is implemented on a computer system, and includes reading an access privilege from a first set of access privileges, wherein the first set of access privileges corresponds to a first file that comprises first encrypted source code. The first encrypted source code is decrypted to produce first decrypted source code. A determination is made as to whether the first access privilege is set to a first state or a second state. If the first access privilege is set to the first state, a first software development tool is permitted to access and process the first decrypted source code. If the first access privilege is set to a second state, the first software development tool is denied access to decrypted source code.
Abstract:
Common microcontroller unit (MCU) self-identification information is disclosed. In one embodiment, an MCU is contained in a package. The MCU includes a central processing unit (CPU) and a non-volatile memory. This non-volatile memory stores information specific to the MCU and/or the package. The non-volatile memory also stores a common main program that, when executed by the CPU, accesses the information. The information enables the common main program to adapt itself to resources of the MCU and/or package that are identified in the information.