Difference between revisions of "Nrf modem library notes"

From Wiki at Neela Nurseries
Jump to: navigation, search
(Starting notes page on Nordic LTE modem libraries.)
 
m
 
Line 3: Line 3:
 
   vi /home/cpguest/embedded/ncs/v1.6.1/nrf/lib/nrf_modem_lib/nrf_modem_lib.c
 
   vi /home/cpguest/embedded/ncs/v1.6.1/nrf/lib/nrf_modem_lib/nrf_modem_lib.c
  
 +
<pre>
 +
  1 /*
 +
  2  * Copyright (c) 2019 Nordic Semiconductor ASA
 +
  3  *
 +
  4  * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
 +
  5  */
 +
  6
 +
  7 #include <init.h>
 +
  8 #include <device.h>
 +
  9 #include <zephyr.h>
 +
10 #include <zephyr/types.h>
 +
11 #include <nrfx_ipc.h>
 +
12 #include <nrf_modem.h>
 +
13 #include <nrf_modem_platform.h>
 +
14 #include <pm_config.h>
 +
15
 +
16 #ifdef CONFIG_LTE_LINK_CONTROL
 +
17 #include <modem/lte_lc.h>
 +
18 #endif
 +
19
 +
20 #ifndef CONFIG_TRUSTED_EXECUTION_NONSECURE
 +
21 #error  nrf_modem_lib must be run as non-secure firmware.\
 +
22        Are you building for the correct board ?
 +
23 #endif
 +
24
 +
25 struct shutdown_thread {
 +
26        sys_snode_t node;
 +
27        struct k_sem sem;
 +
28 };
 +
29
 +
30 static sys_slist_t shutdown_threads;
 +
31 static bool first_time_init;
 +
32 static struct k_mutex slist_mutex;
 +
33
 +
34 static int init_ret;
 +
35
 +
36 static const nrf_modem_init_params_t init_params = {
 +
37        .ipc_irq_prio = NRF_MODEM_NETWORK_IRQ_PRIORITY,
 +
38        .shmem.ctrl = {
 +
39                .base = PM_NRF_MODEM_LIB_CTRL_ADDRESS,
 +
40                .size = CONFIG_NRF_MODEM_LIB_SHMEM_CTRL_SIZE,
 +
41        },
 +
42        .shmem.tx = {
 +
43                .base = PM_NRF_MODEM_LIB_TX_ADDRESS,
 +
44                .size = CONFIG_NRF_MODEM_LIB_SHMEM_TX_SIZE,
 +
45        },
 +
46        .shmem.rx = {
 +
47                .base = PM_NRF_MODEM_LIB_RX_ADDRESS,
 +
48                .size = CONFIG_NRF_MODEM_LIB_SHMEM_RX_SIZE,
 +
49        },
 +
50 #if CONFIG_NRF_MODEM_LIB_TRACE_ENABLED
 +
51        .shmem.trace = {
 +
52                .base = PM_NRF_MODEM_LIB_TRACE_ADDRESS,
 +
53                .size = CONFIG_NRF_MODEM_LIB_SHMEM_TRACE_SIZE,
 +
54        },
 +
55 #endif
 +
56 };
  
 +
  .
 +
  .
 +
  .
 +
</pre>
  
# --- EOF ---
+
<!-- comment -->

Latest revision as of 20:27, 13 September 2021

Friday 9/10 we were looking into Nordic nRF modem library files, as these are a part of pretty much all radio and LTE modem based Nordic sample apps. A first file of interest is:

 vi /home/cpguest/embedded/ncs/v1.6.1/nrf/lib/nrf_modem_lib/nrf_modem_lib.c
  1 /*
  2  * Copyright (c) 2019 Nordic Semiconductor ASA
  3  *
  4  * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
  5  */
  6
  7 #include <init.h>
  8 #include <device.h>
  9 #include <zephyr.h>
 10 #include <zephyr/types.h>
 11 #include <nrfx_ipc.h>
 12 #include <nrf_modem.h>
 13 #include <nrf_modem_platform.h>
 14 #include <pm_config.h>
 15
 16 #ifdef CONFIG_LTE_LINK_CONTROL
 17 #include <modem/lte_lc.h>
 18 #endif
 19
 20 #ifndef CONFIG_TRUSTED_EXECUTION_NONSECURE
 21 #error  nrf_modem_lib must be run as non-secure firmware.\
 22         Are you building for the correct board ?
 23 #endif
 24
 25 struct shutdown_thread {
 26         sys_snode_t node;
 27         struct k_sem sem;
 28 };
 29
 30 static sys_slist_t shutdown_threads;
 31 static bool first_time_init;
 32 static struct k_mutex slist_mutex;
 33
 34 static int init_ret;
 35
 36 static const nrf_modem_init_params_t init_params = {
 37         .ipc_irq_prio = NRF_MODEM_NETWORK_IRQ_PRIORITY,
 38         .shmem.ctrl = {
 39                 .base = PM_NRF_MODEM_LIB_CTRL_ADDRESS,
 40                 .size = CONFIG_NRF_MODEM_LIB_SHMEM_CTRL_SIZE,
 41         },
 42         .shmem.tx = {
 43                 .base = PM_NRF_MODEM_LIB_TX_ADDRESS,
 44                 .size = CONFIG_NRF_MODEM_LIB_SHMEM_TX_SIZE,
 45         },
 46         .shmem.rx = {
 47                 .base = PM_NRF_MODEM_LIB_RX_ADDRESS,
 48                 .size = CONFIG_NRF_MODEM_LIB_SHMEM_RX_SIZE,
 49         },
 50 #if CONFIG_NRF_MODEM_LIB_TRACE_ENABLED
 51         .shmem.trace = {
 52                 .base = PM_NRF_MODEM_LIB_TRACE_ADDRESS,
 53                 .size = CONFIG_NRF_MODEM_LIB_SHMEM_TRACE_SIZE,
 54         },
 55 #endif
 56 };

  .
  .
  .