Skip to content

Commit 99d8611

Browse files
committed
machine添加获取时钟的weak实现
1 parent 18a5792 commit 99d8611

File tree

1 file changed

+24
-3
lines changed

1 file changed

+24
-3
lines changed

port/modules/machine/modmachine.c

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,31 @@ STATIC mp_obj_t machine_soft_reset(void) {
126126
}
127127
MP_DEFINE_CONST_FUN_OBJ_0(machine_soft_reset_obj, machine_soft_reset);
128128

129+
/*
130+
* @param clkid - range 0~127 (e.g 0:SYSCLK 1:HCLK 2:PCLK1 etc)
131+
*
132+
* @return 0 - ok, -1 - no such clock
133+
*/
134+
RT_WEAK int mp_port_get_freq(int clkid, int *freq)
135+
{
136+
return -1;
137+
}
138+
129139
STATIC mp_obj_t machine_freq(void) {
130-
//TODO
131-
MP_RTT_NOT_IMPL_PRINT;
132-
return MP_OBJ_SMALL_INT_VALUE(0);
140+
int i;
141+
mp_obj_list_t *ret_list = m_new(mp_obj_list_t, 1);
142+
mp_obj_list_init(ret_list, 0);
143+
int freq;
144+
145+
for (i = 0; i < 128; i ++)
146+
{
147+
if (mp_port_get_freq(i, &freq) != 0)
148+
break;
149+
150+
mp_obj_list_append(ret_list, mp_obj_new_int(freq));
151+
}
152+
153+
return MP_OBJ_FROM_PTR(ret_list);
133154
}
134155
MP_DEFINE_CONST_FUN_OBJ_0(machine_freq_obj, machine_freq);
135156

0 commit comments

Comments
 (0)