Skip to content

Commit

Permalink
Merge pull request #4087 from DavePutz/cpu_temp_doc
Browse files Browse the repository at this point in the history
Fixing microcontroller.cpu on multi-core cpus and adding microcontroller.cpus
  • Loading branch information
dhalbert authored Feb 1, 2021
2 parents 0c0b517 + e1838ff commit 459f323
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 4 deletions.
10 changes: 9 additions & 1 deletion ports/raspberrypi/common-hal/microcontroller/__init__.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ void common_hal_mcu_reset(void) {

// The singleton microcontroller.Processor object, bound to microcontroller.cpu
// It currently only has properties, and no state.
#if CIRCUITPY_PROCESSOR_COUNT > 1
static const mcu_processor_obj_t processor0 = {
.base = {
.type = &mcu_processor_type,
Expand All @@ -92,14 +93,21 @@ static const mcu_processor_obj_t processor1 = {
},
};

const mp_rom_obj_tuple_t common_hal_mcu_processor_obj = {
const mp_rom_obj_tuple_t common_hal_multi_processor_obj = {
{&mp_type_tuple},
CIRCUITPY_PROCESSOR_COUNT,
{
MP_ROM_PTR(&processor0),
MP_ROM_PTR(&processor1)
}
};
#endif

const mcu_processor_obj_t common_hal_mcu_processor_obj = {
.base = {
.type = &mcu_processor_type,
},
};

#if CIRCUITPY_NVM && CIRCUITPY_INTERNAL_NVM_SIZE > 0
// The singleton nvm.ByteArray object.
Expand Down
10 changes: 9 additions & 1 deletion shared-bindings/microcontroller/Processor.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,15 @@
//|
//| import microcontroller
//| print(microcontroller.cpu.frequency)
//| print(microcontroller.cpu.temperature)"""
//| print(microcontroller.cpu.temperature)
//|
//| Note that on chips with more than one cpu (such as the RP2040)
//| microcontroller.cpu will return the value for CPU 0.
//| To get values from other CPUs use microcontroller.cpus indexed by
//| the number of the desired cpu. i.e.
//|
//| print(microcontroller.cpus[0].temperature)
//| print(microcontroller.cpus[1].frequency)"""
//|

//| def __init__(self) -> None:
Expand Down
11 changes: 10 additions & 1 deletion shared-bindings/microcontroller/__init__.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,13 @@
//| cpu: Processor
//| """CPU information and control, such as ``cpu.temperature`` and ``cpu.frequency``
//| (clock frequency).
//| This object is the sole instance of `microcontroller.Processor`."""
//| This object is an instance of `microcontroller.Processor`."""
//|

//| cpus: Processor
//| """CPU information and control, such as ``cpus[0].temperature`` and ``cpus[1].frequency``
//| (clock frequency) on chips with more than 1 cpu. The index selects which cpu.
//| This object is an instance of `microcontroller.Processor`."""
//|

//| def delay_us(delay: int) -> None:
Expand Down Expand Up @@ -155,6 +161,9 @@ const mp_obj_module_t mcu_pin_module = {
STATIC const mp_rom_map_elem_t mcu_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_microcontroller) },
{ MP_ROM_QSTR(MP_QSTR_cpu), MP_ROM_PTR(&common_hal_mcu_processor_obj) },
#if CIRCUITPY_PROCESSOR_COUNT > 1
{ MP_ROM_QSTR(MP_QSTR_cpus), MP_ROM_PTR(&common_hal_multi_processor_obj) },
#endif
{ MP_ROM_QSTR(MP_QSTR_delay_us), MP_ROM_PTR(&mcu_delay_us_obj) },
{ MP_ROM_QSTR(MP_QSTR_disable_interrupts), MP_ROM_PTR(&mcu_disable_interrupts_obj) },
{ MP_ROM_QSTR(MP_QSTR_enable_interrupts), MP_ROM_PTR(&mcu_enable_interrupts_obj) },
Expand Down
3 changes: 2 additions & 1 deletion shared-bindings/microcontroller/__init__.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ extern const mp_obj_dict_t mcu_pin_globals;
#if CIRCUITPY_PROCESSOR_COUNT == 1
extern const mcu_processor_obj_t common_hal_mcu_processor_obj;
#elif CIRCUITPY_PROCESSOR_COUNT > 1
extern const mp_rom_obj_tuple_t common_hal_mcu_processor_obj;
extern const mcu_processor_obj_t common_hal_mcu_processor_obj;
extern const mp_rom_obj_tuple_t common_hal_multi_processor_obj;
#else
#error "Invalid processor count"
#endif
Expand Down

0 comments on commit 459f323

Please sign in to comment.