Line 123: |
Line 123: |
| ! Description | | ! Description |
| |- | | |- |
− | | 0x0001.... | + | | 0x00010080 |
− | | SetSystemClock (RTC) | + | | SetRTC |
| |- | | |- |
− | | 0x0002.... | + | | 0x00020000 |
− | | GetSystemClock (RTC) | + | | GetRTC |
| |- | | |- |
− | | 0x0003.... | + | | 0x00030040 |
− | | ? | + | | SetRTCSeconds |
| |- | | |- |
− | | 0x0004.... | + | | 0x00040000 |
− | | GetSystemClockSeconds | + | | GetRTCSeconds |
| |- | | |- |
− | | 0x0005.... | + | | 0x00050040 |
− | | ? | + | | SetRTCMinutes |
| |- | | |- |
− | | 0x0006.... | + | | 0x00060000 |
− | | GetSystemClockMinutes ? | + | | GetRTCMinutes |
| |- | | |- |
− | | 0x0007.... | + | | 0x00070040 |
− | | ? | + | | SetRTCHours |
| |- | | |- |
− | | 0x0008.... | + | | 0x00080000 |
− | | | + | | GetRTCHours |
| |- | | |- |
− | | 0x0009.... | + | | 0x00090040 |
− | | ? | + | | SetRTCDayOfWeek |
| |- | | |- |
− | | 0x000A.... | + | | 0x000A0000 |
− | | ? | + | | GetRTCDayOfWeek |
| |- | | |- |
− | | 0x000B.... | + | | 0x000B0040 |
− | | ? | + | | SetRTCDayOfMonth |
| |- | | |- |
− | | 0x000C.... | + | | 0x000C0000 |
− | | ? | + | | GetRTCDayOfMonth |
| |- | | |- |
− | | 0x000D.... | + | | 0x000D0040 |
− | | ? | + | | SetRTCMonth |
| |- | | |- |
− | | 0x000E.... | + | | 0x000E0000 |
− | | ? | + | | GetRTCMonth |
| |- | | |- |
− | | 0x000F.... | + | | 0x000F0040 |
− | | ? | + | | SetRTCYear |
| |- | | |- |
− | | 0x0010.... | + | | 0x00100000 |
− | | ? | + | | GetRTCYear |
| |- | | |- |
− | | 0x0011.... | + | | 0x00110040 |
− | | ? | + | | SetRTCLeapYearCounter |
| |- | | |- |
− | | 0x0012.... | + | | 0x00120000 |
− | | ? | + | | GetRTCLeapYearCounter |
| |- | | |- |
− | | 0x0013.... | + | | 0x00130080 |
− | | ? | + | | SetRTCAlarm |
| |- | | |- |
− | | 0x0014.... | + | | 0x00140000 |
− | | ? | + | | GetRTCAlarm |
| |- | | |- |
− | | 0x0015.... | + | | 0x00150040 |
− | | ? | + | | SetRTCAlarmComponent[0] |
| |- | | |- |
− | | 0x0016.... | + | | 0x00160000 |
− | | ? | + | | GetRTCAlarmComponent[0] |
| |- | | |- |
− | | 0x0017.... | + | | 0x00170040 |
− | | ? | + | | SetRTCAlarmComponent[1] |
| |- | | |- |
− | | 0x0018.... | + | | 0x00180000 |
− | | ? | + | | GetRTCAlarmComponent[1] |
| |- | | |- |
− | | 0x0019.... | + | | 0x00190040 |
− | | ? | + | | SetRTCAlarmComponent[2] |
| |- | | |- |
− | | 0x001A.... | + | | 0x001A0000 |
− | | ? | + | | GetRTCAlarmComponent[2] |
| |- | | |- |
− | | 0x001B.... | + | | 0x001B0040 |
− | | ? | + | | SetRTCAlarmComponent[3] |
| |- | | |- |
− | | 0x001C.... | + | | 0x001C0000 |
− | | ? | + | | GetRTCAlarmComponent[3] |
| |- | | |- |
− | | 0x001D.... | + | | 0x001D0040 |
− | | ? | + | | SetRTCAlarmComponent[4] |
| |- | | |- |
− | | 0x001E.... | + | | 0x001E0000 |
− | | ? | + | | GetRTCAlarmComponent[4] |
| |- | | |- |
| | 0x001F0040 | | | 0x001F0040 |
Line 217: |
Line 217: |
| |- | | |- |
| | 0x00200000 | | | 0x00200000 |
− | | GetPedometerState | + | | GetPedometerRecordingMode |
| |- | | |- |
| | 0x00210080 | | | 0x00210080 |
− | | GetStepCount(for the current day) | + | | GetStepCount (for the current day) |
| |- | | |- |
− | | 0x0022.... | + | | 0x00220042 |
− | | ? | + | | ReadRegister4Fh(u32 unused_size, translation_param size=0x156 << 4 <nowiki>|</nowiki> 0xC, u8[0x156] ptr) |
| |- | | |- |
− | | 0x0023.... | + | | 0x00230000 |
− | | ? | + | | ??? writes 1 to register 0x4E which is not writable |
| |- | | |- |
− | | 0x0024.... | + | | 0x00240000 |
− | | GetMcuRtcEventHandle. MCU notifications 1, 8, 9, 10, 13, 14 and 15 signal this. | + | | GetPowerEventHandle. MCU notifications 1, 8, 9, 10, 13, 14 and 15 signal this. |
| + | see [[I2C_Registers#Device_3|Register 0x18]] |
| |- | | |- |
− | | 0x0025.... | + | | 0x00250000 |
− | | GetMcuRtcEventReason | + | | GetPowerInterruptHistory |
| |- | | |- |
− | | 0x0026.... | + | | 0x00260000 |
− | | ? | + | | CheckRegister02hBit0 |
| |- | | |- |
− | | 0x0027.... | + | | 0x00270000 |
− | | Disables i2c register 2 | + | | ClearRegister02hBit0 (does nothing since the register is not writable) |
| |- | | |- |
− | | 0x0028.... | + | | 0x00280000 |
− | | ? | + | | CheckRegister02hBit1 |
| |- | | |- |
− | | 0x0029.... | + | | 0x00290000 |
− | | Same as 0x0027.... | + | | ClearRegister02hBit1 |
| |- | | |- |
| | 0x002A0000 | | | 0x002A0000 |
Line 258: |
Line 259: |
| | [[MCURTC:GetBatteryLevel|GetBatteryLevel]] | | | [[MCURTC:GetBatteryLevel|GetBatteryLevel]] |
| |- | | |- |
− | | 0x002E.... | + | | 0x002E0000 |
− | | ? | + | | GetBatteryEmptyPatternByte0 |
| |- | | |- |
− | | 0x002F.... | + | | 0x002F0000 |
− | | ? | + | | GetBatteryEmptyPatternByte0_safe™ |
| |- | | |- |
− | | 0x0030.... | + | | 0x00300040 |
− | | ? | + | | SetLEDBrightness (see [[I2C_Registers#Device_3|Register 0x28]]) |
| |- | | |- |
− | | 0x0031.... | + | | 0x00310000 |
− | | ? | + | | GetLEDBrightness (see [[I2C_Registers#Device_3|Register 0x28]]) |
| |- | | |- |
− | | 0x0032.... | + | | 0x00320000 |
− | | [[MCURTC:PowerOff|PowerOff]] (writes 0x1 to i2c MCU device, reg 0x20)
| + | | PowerOff (writes 0x1 to i2c MCU device, [[I2C_Registers#Device_3|reg 0x20]]) |
| |- | | |- |
− | | 0x0033.... | + | | 0x00330000 |
− | | [[MCURTC:HardwareReboot|HardwareReboot]] (writes 0x4 to i2c MCU device, reg 0x20)
| + | | HardwareReboot (writes 0x4 to i2c MCU device, [[I2C_Registers#Device_3|reg 0x20]]) |
| |- | | |- |
− | | 0x0034.... | + | | 0x00340000 |
− | | ? | + | | WriteRegister reg=0x23 value=0x72 (writing to read-only registers does nothing) |
| |- | | |- |
− | | 0x0035.... | + | | 0x00350000 |
− | | Writes 0x10 to i2c MCU device, reg 0x20 | + | | Writes 0x10 to i2c MCU device, reg 0x20 (this bit of the register is not writable) |
| |- | | |- |
− | | 0x0036.... | + | | 0x00360040 |
| | SetWatchdogTimer | | | SetWatchdogTimer |
| |- | | |- |
− | | 0x0037.... | + | | 0x00370000 |
| | GetWatchdogTimer | | | GetWatchdogTimer |
| |- | | |- |
− | | 0x0038.... | + | | 0x00380042 |
− | | ? | + | | ReadInfoRegister(u32 unused_size, translation_param size << 4 <nowiki>|</nowiki> 0xC, u8[0x13] ptr) |
| |- | | |- |
− | | 0x0039.... | + | | 0x00390082 |
− | | ? | + | | WriteLoop (translation parameters too complex) |
| |- | | |- |
− | | 0x003A.... | + | | 0x003A0082 |
− | | ? | + | | ReadLoop (translation parameters too complex) |
| |- | | |- |
| | 0x003B0640 | | | 0x003B0640 |
Line 306: |
Line 307: |
| | [[MCURTC:GetInfoLEDStatus|GetInfoLEDStatus]] | | | [[MCURTC:GetInfoLEDStatus|GetInfoLEDStatus]] |
| |- | | |- |
− | | 0x003E.... | + | | 0x003E0040 |
− | | ? | + | | WriteRegister50h |
| |- | | |- |
− | | 0x003F.... | + | | 0x003F0000 |
− | | ? | + | | ReadRegister50h |
| |- | | |- |
− | | 0x0040.... | + | | 0x00400040 |
− | | ? | + | | WriteRegister51h |
| |- | | |- |
− | | 0x0041.... | + | | 0x00410000 |
− | | ? | + | | ReadRegister51h |
| |- | | |- |
| | 0x00420040 | | | 0x00420040 |
| | [[MCURTC:SetBatteryEmptyLEDPattern|SetBatteryEmptyLEDPattern]] | | | [[MCURTC:SetBatteryEmptyLEDPattern|SetBatteryEmptyLEDPattern]] |
| |- | | |- |
− | | 0x0043.... | + | | 0x00430040 |
− | | ? | + | | SetScreenFlickerTop |
| |- | | |- |
− | | 0x0044.... | + | | 0x00440000 |
− | | ? | + | | GetScreenFlickerTop |
| |- | | |- |
− | | 0x0045.... | + | | 0x00450040 |
− | | ? | + | | SetScreenFlickerBottom |
| |- | | |- |
− | | 0x0046.... | + | | 0x00460000 |
− | | ? | + | | GetScreenFlickerBottom |
| |- | | |- |
− | | 0x0047.... | + | | 0x00470080 |
− | | ? | + | | SetVolumeSliderBounds |
| |- | | |- |
− | | 0x0048.... | + | | 0x00480000 |
− | | ? | + | | GetVolumeSliderBounds |
| |- | | |- |
− | | 0x0049.... | + | | 0x00490040 |
− | | ? | + | | SetInterruptMask (see [[I2C_Registers#Device_3|Register 0x18]]) |
| |- | | |- |
− | | 0x004A.... | + | | 0x004A0000 |
− | | ? | + | | GetInterruptMask (see [[I2C_Registers#Device_3|Register 0x18]]) |
| |- | | |- |
− | | 0x004B.... | + | | 0x004B0000 |
− | | ? | + | | ExitExclusiveInterruptMode |
| |- | | |- |
− | | 0x004C.... | + | | 0x004C0000 |
− | | ? | + | | EnterExclusiveInterruptMode |
| |- | | |- |
− | | 0x004D.... | + | | 0x004D0000 |
− | | [[MCURTC:ReadHidFlagRegister|ReadHidFlagRegister]] (reads i2c MCU device, reg 0x10) | + | | [[MCURTC:ReadHidFlagRegister|ReadInterrupt]] (see [[I2C_Registers#Device_3|Register 0x10]]) |
| |- | | |- |
| | 0x004E0040 | | | 0x004E0040 |
− | | [[MCURTC:PublishNotifications|PublishNotifications]] | + | | [[MCURTC:PublishNotifications|TriggerInterrupt]] |
| |- | | |- |
− | | 0x004F.... | + | | 0x004F0040 |
− | | Sets some flag (otherwise set when uploading MCU firmware) | + | | SetMCUFirmUpdated(u32 flag) not used by anything |
| |- | | |- |
− | | 0x0050.... | + | | 0x00500000 |
− | | Returns the above flag | + | | IsMCUFirmUpdated |
| |- | | |- |
| | 0x00510040 | | | 0x00510040 |
Line 369: |
Line 370: |
| | [[MCURTC:GetSoftwareClosedFlag|GetSoftwareClosedFlag]] | | | [[MCURTC:GetSoftwareClosedFlag|GetSoftwareClosedFlag]] |
| |- | | |- |
− | | 0x0053.... | + | | 0x00530040 |
| | ? | | | ? |
| |- | | |- |
− | | 0x0054.... | + | | 0x00540000 |
| | ? | | | ? |
| |- | | |- |
− | | 0x0055.... | + | | 0x00550040 |
| | ? | | | ? |
| |- | | |- |
− | | 0x0056.... | + | | 0x00560000 |
| | ? | | | ? |
| |- | | |- |
− | | 0x0057.... | + | | 0x00570040 |
| | ? | | | ? |
| |- | | |- |
− | | 0x0058.... | + | | 0x00580000 |
| | ? | | | ? |
| |- | | |- |
Line 393: |
Line 394: |
| | [[MCURTC:GetLegacyJumpProhibitedFlag|GetLegacyJumpProhibitedFlag]] | | | [[MCURTC:GetLegacyJumpProhibitedFlag|GetLegacyJumpProhibitedFlag]] |
| |} | | |} |
− |
| |
− | Note that using invalid input with these InfoLED/SetBatteryEmptyLEDPattern commands(especially SetInfoLEDPattern) can cause the system to be bricked(however the boot failure may not begin immediately after using the invalid parameters).
| |
| | | |
| =MCU sound service "mcu::SND"= | | =MCU sound service "mcu::SND"= |