Difference between revisions of "Nrf modem library notes"
From Wiki at Neela Nurseries
(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> | ||
− | + | <!-- 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 }; . . .