mirror of
https://github.com/MikronMIK32/mik32-uploader.git
synced 2026-01-01 13:37:03 +03:00
34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
from tclrpc import OpenOcdTclRpc
|
|
import mik32_debug_hal.registers.memory_map as mem_map
|
|
import mik32_debug_hal.registers.bitfields.power_manager as pm_fields
|
|
import mik32_debug_hal.registers.bitfields.wakeup as wake_fields
|
|
|
|
|
|
def pm_init(openocd: OpenOcdTclRpc):
|
|
|
|
WU_CLOCKS_default = 128 << wake_fields.CLOCKS_BU_ADJ_RC32K_S
|
|
|
|
AHB_default = (
|
|
pm_fields.CLOCK_AHB_CPU_M |
|
|
pm_fields.CLOCK_AHB_EEPROM_M |
|
|
pm_fields.CLOCK_AHB_RAM_M |
|
|
pm_fields.CLOCK_AHB_SPIFI_M |
|
|
pm_fields.CLOCK_AHB_TCB_M |
|
|
pm_fields.CLOCK_AHB_DMA_M
|
|
)
|
|
# 0x1F
|
|
APB_M_default = (
|
|
pm_fields.CLOCK_APB_M_PM_M |
|
|
pm_fields.CLOCK_APB_M_PAD_CONFIG_M |
|
|
pm_fields.CLOCK_APB_M_WU_M
|
|
)
|
|
# 0x89
|
|
APB_P_default = pm_fields.CLOCK_APB_P_GPIO_2_M
|
|
# 0x00
|
|
|
|
openocd.halt()
|
|
openocd.write_word(mem_map.WU_CLOCKS_BU_OFFSET, WU_CLOCKS_default)
|
|
openocd.write_word(mem_map.PM_Clk_APB_P_Set_OFFSET, APB_P_default)
|
|
openocd.write_word(mem_map.PM_Clk_APB_M_Set_OFFSET, APB_M_default)
|
|
openocd.write_word(mem_map.PM_Clk_AHB_Set_OFFSET, AHB_default)
|