Adaptable boot loader
First Claim
1. A microcontroller, which addresses program memory separately from data memory, the microcontroller comprising:
- a CPU;
a boot memory coupled to the CPU;
a control coupled to the CPU and to the boot memory, which in a first state causes the boot memory to be configured as data memory; and
in a second state causes the boot memory to be configured as program memory.
1 Assignment
0 Petitions
Accused Products
Abstract
A microcontroller, which addresses program memory separately from data memory, is disclosed. The microcontroller includes a CPU and a boot memory coupled to the CPU. A control is coupled to the CPU and to the boot memory. In a first state, the control causes the boot memory to be configured as data memory. In a second state, the control causes the boot memory to be configured as program memory. A method for loading the boot memory is also disclosed. The method includes configuring the boot memory to be addressed as data memory unless it is already configured to be addressed as data memory, loading a program from an external program memory into the boot memory, configuring the boot memory to be addressed as a program memory, and executing the program in the boot memory. A method for using the microcontroller and method to debug software is described.
81 Citations
19 Claims
-
1. A microcontroller, which addresses program memory separately from data memory, the microcontroller comprising:
-
a CPU;
a boot memory coupled to the CPU;
a control coupled to the CPU and to the boot memory, which in a first state causes the boot memory to be configured as data memory; and
in a second state causes the boot memory to be configured as program memory. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A microcontroller, which addresses program memory separately from data memory, the microcontroller comprising:
-
a control, having a first state and a second state;
a boot memory coupled to the control;
an external port coupled to the control;
wherethe external port is configured as a system bus when (1) the control is in the first state and the boot memory is not addressed, or (2) the control is in the second state and the external port is used to address an external memory as program or data memory; and
the external port is configured as an input/output port when the control is in the second state, the boot memory is addressed, and the external port is not used to address the external memory as data memory. - View Dependent Claims (7, 8)
-
-
9. A method for loading a boot memory onboard a microcontroller, the microcontroller addressing program memory separately from data memory, the method comprising
configuring the boot memory to be addressed as data memory unless it is already configured to be addressed as data memory; -
loading a program from an external program memory into the boot memory;
configuring the boot memory to be addressed as a program memory; and
executing the program in the boot memory. - View Dependent Claims (10, 11, 12, 13)
-
-
14. An apparatus for booting a microcontroller, which addresses program memory separately from data memory, by loading a program from an external program memory into a boot memory on the microcontroller, the apparatus comprising
a control coupled to the boot memory, which in a first state causes the microcontroller to address the boot memory as data memory, and in a second state causes the microcontroller to address the boot memory as program memory; - and
a first program stored in the external program memory which causes the microcontroller to switch the control to the first state;
transfer a second program from the external program memory to the boot memory;
switch the control to the second state; and
execute the second program in the boot memory. - View Dependent Claims (15, 16)
- and
-
17. A method for using a microcontroller, which addresses program memory separately from data memory and which includes a boot memory, to debug software stored in an external memory, the method comprising
repeating the following until the debug process is complete: -
loading communication software into the boot memory;
loading a bootloader into the boot memory;
executing the communication software and the bootloader;
modifying the software stored in the external memory through the communications software and the bootloader;
loading debug software into the boot memory;
executing the debug software and the communication software;
executing the software stored in the external memory; and
stopping execution of the software stored in the external memory. - View Dependent Claims (18)
-
-
19. A microcontroller, comprising
a CPU; -
program address and data busses coupled to the CPU;
data address and data busses coupled to the CPU;
input/output busses coupled to the CPU;
an onboard RAM comprising a boot RAM;
a memory selector, coupled to the program address and data busses, the data address and data busses and the boot RAM, which can be actuated to select whether the boot RAM is addressed by the program address and data busses or the data address and data busses;
an external interface;
an output port selector, coupled to the program address and data busses, the input/output busses and the external interface, which can be actuated to select the program address and data busses or the input/output busses to couple to the external interface;
a memory control coupled to the CPU for actuating the memory selector; and
an output port control coupled to the CPU for actuating the output port selector.
-
Specification