nucleo-144: Add reset feature
Code is aligned from
configs/stm32f4discovery/src/stm32_reset.c
It can be enabled using CONFIG_BOARDCTL_RESET
Change-Id: I296a628490abec102ef4bacb26b0356f970f226d
Signed-off-by: Philippe Coval <p.coval@samsung.com>
Approved-by: Gregory Nutt <gnutt@nuttx.org>
stm32f7: Add basic PWM support to nucleo-144 board
More PWMs and multi channels support
may be investigated and added later.
It was tested on nucleo-f767zi
with those features enabled in configuration:
```
CONFIG_EXAMPLES_PWM=y
CONFIG_PWM=y
CONFIG_STM32F7_TIM1=y
CONFIG_STM32F7_TIM1_PWM=y
CONFIG_STM32F7_TIM2=y
(...)
CONFIG_STM32F7_TIM4_PWM=y
```
Change-Id: I08ebd4a538d15661788a0a54c2113ad767f22747
Bug: https://bitbucket.org/nuttx/nuttx/issues/153
Relate-to: https://github.com/rzr/webthing-iotjs/issues/3
Forwarded: https://bitbucket.org/nuttx/nuttx/pull-requests/862
Signed-off-by: Philippe Coval <p.coval@samsung.com>
Approved-by: Gregory Nutt <gnutt@nuttx.org>
sched/init/nx_start.c: Add support for CONFIG_BOARD_DRIVER_INITIALIZE. If this option is selected then nx_start() will call a board-provided function board_driver_initialize() immediately after calling up_initialize().
Rename CONFIG_BOARD_INITIALIZE to CONFIG_BOARD_LATE_INITIALIZE.
Raname board_initialize() to board_late_initialize()
many locations: Change occurences of open() followed by file_detach() to file_open(). Change most non-controversion calls to open() to nx_open().
fs/inode/fs_fileopen.c: Flesh out file_open() with some interim, placeholder logic.
fs/inode/fs_fileopen.c: Add a framework for a file_open() implementation (no real logic in place yet).
fs/vfs/fs_open.c: Add nx_open() which is the same as open() except that it does not create a cancellation point nor does it modify the errno variable.
sched/: Convert legitimate uses of task_create() to nxtask_create(). Review handling of returned values from all uses of kthread_create() (as well as nxtask_create()).
graphics/: Review return values for all calls to kthread_start() because it no longer returns an errno.
drivers/: threads started by drivers should be kernel threads, not user tasks. Review return values for all calls to kthread_start() because it no longer returns an errno.
configs/: threads started by board bringup logic should be kernel threads, not user tasksi (part 2 of 2).
sched/task: Add nxtask_create(). Kthread_create() and nxtask_create() are internal OS functions and should not modify the errno variable. configs/: threads started by board bringup logic should be kernel threads, not user tasks.