Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
cd9b14bb
Commit
cd9b14bb
authored
Oct 18, 2016
by
Damien George
Browse files
stmhal/modutime: Refactor to use extmod's version of ticks_cpu.
parent
5c93d0b9
Changes
3
Hide whitespace changes
Inline
Side-by-side
stmhal/modutime.c
View file @
cd9b14bb
...
...
@@ -130,18 +130,6 @@ STATIC mp_obj_t time_time(void) {
}
MP_DEFINE_CONST_FUN_OBJ_0
(
time_time_obj
,
time_time
);
STATIC
mp_obj_t
time_ticks_cpu
(
void
)
{
static
bool
enabled
=
false
;
if
(
!
enabled
)
{
CoreDebug
->
DEMCR
|=
CoreDebug_DEMCR_TRCENA_Msk
;
DWT
->
CYCCNT
=
0
;
DWT
->
CTRL
|=
DWT_CTRL_CYCCNTENA_Msk
;
enabled
=
true
;
}
return
MP_OBJ_NEW_SMALL_INT
(
DWT
->
CYCCNT
&
MP_SMALL_INT_POSITIVE_MASK
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_0
(
time_ticks_cpu_obj
,
time_ticks_cpu
);
STATIC
const
mp_map_elem_t
time_module_globals_table
[]
=
{
{
MP_OBJ_NEW_QSTR
(
MP_QSTR___name__
),
MP_OBJ_NEW_QSTR
(
MP_QSTR_utime
)
},
...
...
@@ -153,7 +141,7 @@ STATIC const mp_map_elem_t time_module_globals_table[] = {
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_sleep_us
),
(
mp_obj_t
)
&
mp_utime_sleep_us_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_ticks_ms
),
(
mp_obj_t
)
&
mp_utime_ticks_ms_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_ticks_us
),
(
mp_obj_t
)
&
mp_utime_ticks_us_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_ticks_cpu
),
(
mp_obj_t
)
&
time_ticks_cpu_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_ticks_cpu
),
(
mp_obj_t
)
&
mp_u
time_ticks_cpu_obj
},
{
MP_OBJ_NEW_QSTR
(
MP_QSTR_ticks_diff
),
(
mp_obj_t
)
&
mp_utime_ticks_diff_obj
},
};
...
...
stmhal/mphalport.c
View file @
cd9b14bb
...
...
@@ -7,6 +7,8 @@
#include
"usb.h"
#include
"uart.h"
bool
mp_hal_ticks_cpu_enabled
=
false
;
// this table converts from HAL_StatusTypeDef to POSIX errno
const
byte
mp_hal_status_to_errno_table
[
4
]
=
{
[
HAL_OK
]
=
0
,
...
...
@@ -71,6 +73,15 @@ void mp_hal_stdout_tx_strn_cooked(const char *str, size_t len) {
}
}
void
mp_hal_ticks_cpu_enable
(
void
)
{
if
(
!
mp_hal_ticks_cpu_enabled
)
{
CoreDebug
->
DEMCR
|=
CoreDebug_DEMCR_TRCENA_Msk
;
DWT
->
CYCCNT
=
0
;
DWT
->
CTRL
|=
DWT_CTRL_CYCCNTENA_Msk
;
mp_hal_ticks_cpu_enabled
=
true
;
}
}
void
mp_hal_gpio_clock_enable
(
GPIO_TypeDef
*
gpio
)
{
if
(
0
)
{
#ifdef __GPIOA_CLK_ENABLE
...
...
stmhal/mphalport.h
View file @
cd9b14bb
...
...
@@ -35,13 +35,24 @@ NORETURN void mp_hal_raise(HAL_StatusTypeDef status);
void
mp_hal_set_interrupt_char
(
int
c
);
// -1 to disable
// timing functions
#include
"stmhal/systick.h"
#define mp_hal_delay_ms HAL_Delay
#define mp_hal_delay_us(us) sys_tick_udelay(us)
#define mp_hal_delay_us_fast(us) sys_tick_udelay(us)
#define mp_hal_ticks_ms HAL_GetTick
#define mp_hal_ticks_us() sys_tick_get_microseconds()
extern
bool
mp_hal_ticks_cpu_enabled
;
void
mp_hal_ticks_cpu_enable
(
void
);
static
inline
mp_uint_t
mp_hal_ticks_cpu
(
void
)
{
if
(
!
mp_hal_ticks_cpu_enabled
)
{
mp_hal_ticks_cpu_enable
();
}
return
DWT
->
CYCCNT
;
}
// C-level pin HAL
#include
"stmhal/pin.h"
#define mp_hal_pin_obj_t const pin_obj_t*
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment