
1. add TOS_CFG_LIBC_PRINTF_EN 1: enable printf to implement tos_kprintf when you call tos_kprintf(actually currently it's a MACRO rather than a function) , the libc will be invloved into the image, most of the time it means a larger image size. 0: disable printf, means tos_kprintf is defined as an empty MACRO most of the time, means you will not get a log output from the uart(currently we donnot have a console yet) but a smaller image size. 2. fix a bug of tos_mail_q and tos_priority_mail_q if we are post-ing a mail and there is[are] task[s] just pend-ing for the mail queue, the mail delivered to the pend-er will be a pointer, and probably it's a pointer to the local variable on the stack. Actually we should do a memcpy rather than a pointer assignment. for more details, see the patch.
27 lines
907 B
C
27 lines
907 B
C
#include "tos.h"
|
|
#include "tickless/bsp_pm_device.h"
|
|
#include "tickless/bsp_tickless_alarm.h"
|
|
|
|
int tos_bsp_tickless_setup(void)
|
|
{
|
|
#if TOS_CFG_TICKLESS_EN > 0u
|
|
tos_pm_device_register(&pm_device_uart);
|
|
|
|
/* we set a default one shot timer here(systick) */
|
|
// tos_tickless_wkup_alarm_install(TOS_LOW_POWER_MODE_SLEEP, &tickless_wkup_alarm_systick);
|
|
tos_tickless_wkup_alarm_install(TOS_LOW_POWER_MODE_SLEEP, &tickless_wkup_alarm_tim);
|
|
tos_tickless_wkup_alarm_init(TOS_LOW_POWER_MODE_SLEEP);
|
|
|
|
tos_tickless_wkup_alarm_install(TOS_LOW_POWER_MODE_STOP, &tickless_wkup_alarm_rtc_wkupirq);
|
|
tos_tickless_wkup_alarm_init(TOS_LOW_POWER_MODE_STOP);
|
|
|
|
tos_tickless_wkup_alarm_install(TOS_LOW_POWER_MODE_STANDBY, &tickless_wkup_alarm_rtc_alarmirq);
|
|
tos_tickless_wkup_alarm_init(TOS_LOW_POWER_MODE_STANDBY);
|
|
|
|
tos_pm_cpu_lpwr_mode_set(TOS_LOW_POWER_MODE_SLEEP);
|
|
#endif
|
|
|
|
return 0;
|
|
}
|
|
|