Yes, blinky uses the OS and there is a task that is running so it is not a bare 
metal application. The OS creates a main task and that is where things run by 
default. This is the short answer btw; we can go into more dertails if you like.


> On Mar 29, 2017, at 2:31 PM, amit mehta <[email protected]> wrote:
> 
> Based on the following (see below), my understanding is that any
> simple application such as a blinky, which does not explicitly create
> tasks (e.g. by calling os_task_init), is still runs as an application and
> is taken care by the Mynewt RTOS, i.e. It's not a bare metal application
> Reasons are:
> 
> 1: syscfg.yml:
> The application configuration, reported by newt seem to suggest
> that there the image that would be build will have an OS. Logs below:
> 
> <snip from target list>
> $ newt target show
> targets/my_blinky
>    app=apps/blinky
>    bsp=@apache-mynewt-core/hw/bsp/nrf52dk
>    build_profile=optimized
> <snip from target list>
> 
> <snip from blinky(my_blinky) configuration>
> $ newt target config show my_blinky
>  * Setting: OS_SCHEDULING
>    * Description: Whether OS will be started or not
>    * Value: 1 <--
> ...
> ...
> * PACKAGE: sys/sysinit
>  * Setting: SYSINIT_CONSTRAIN_INIT
>    * Description: Only allow packages to be initialized by sysinit.
>    * Value: 1 <---
> 
> <snip from blinky(my_blinky) configuration>
> 
> There is no syscfg.yml file under the package (apps/blinky directory)
> to override (If It would have been overriden, it would show up in the
> above log as well)
> 
> 2: The symbols in the ELF file generated by the build system also
> has OS related code symbols. logs below:
> 
> <snip from nm>
> $ pwd
> ~/bin/targets/my_blinky/app/apps/blinky
> 
> $ arm-none-eabi-nm blinky.elf | grep -i os_
> 200022d8 B g_hal_os_tick
> 20002300 B g_os_cputime
> 20001184 b g_os_dev_list
> 200020dc B g_os_idle_ctr
> 200021fc B g_os_last_ctx_sw_time
> 20000100 D g_os_mempool_list
> 200000e8 D g_os_run_list
> 20001f78 B g_os_sanity_check_list
> 200021ec B g_os_sanity_check_mu
> 200000f0 D g_os_sleep_list
> 200021e0 B g_os_started
> 20002200 B g_os_task_list
> 2000220c B g_os_time
> 00009b4e t nrf52_os_tick_counter.part.0
> 00009b8c t nrf52_os_tick_set_ocmp
> 00008e7c T os_arch_ctx_sw
> 00008ea2 T os_arch_in_critical
> 00008ee8 T os_arch_init
> ...
> ...
> 
> The reason, I want to confirm this is because, I'm trying to port
> some simple peripheral application to work under (rather on top
> of) Mynewt OS (I think, that this might be a decent enough way
> to improve my understanding on both nRF52 peripherals and
> Mynewt core).
> 
> Please comment.
> 
> Thanks,
> Amit
> 
> 
> -- 
> Sent from Bahamas, while drinking chi-chi and piƱa colada.

Reply via email to