projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add support for TLS if needed
[fw/altos]
/
src
/
stmf0
/
ao_arch_funcs.h
diff --git
a/src/stmf0/ao_arch_funcs.h
b/src/stmf0/ao_arch_funcs.h
index a0c6e08876cbb012e350b18dc585e02346db9c7c..190f9d1766ea7dbd96f1b95c9a2b6ac52c7f3061 100644
(file)
--- a/
src/stmf0/ao_arch_funcs.h
+++ b/
src/stmf0/ao_arch_funcs.h
@@
-387,9
+387,8
@@
ao_arch_memory_barrier(void) {
#if HAS_TASK
static inline void
#if HAS_TASK
static inline void
-ao_arch_init_stack(struct ao_task *task, void *start)
+ao_arch_init_stack(struct ao_task *task,
uint32_t *sp,
void *start)
{
{
- uint32_t *sp = &task->stack32[AO_STACK_SIZE >> 2];
uint32_t a = (uint32_t) start;
int i;
uint32_t a = (uint32_t) start;
int i;
@@
-458,6
+457,9
@@
static inline void ao_sleep_mode(void) {
ao_arch_block_interrupts();
ao_arch_block_interrupts();
+ /* Enable power interface clock */
+ stm_rcc.apb1enr |= (1 << STM_RCC_APB1ENR_PWREN);
+ ao_arch_nop();
stm_scb.scr |= (1 << STM_SCB_SCR_SLEEPDEEP);
ao_arch_nop();
stm_pwr.cr |= (1 << STM_PWR_CR_PDDS) | (1 << STM_PWR_CR_LPDS);
stm_scb.scr |= (1 << STM_SCB_SCR_SLEEPDEEP);
ao_arch_nop();
stm_pwr.cr |= (1 << STM_PWR_CR_PDDS) | (1 << STM_PWR_CR_LPDS);