Hello everybody,
I am trying to get the RTC0 peripheral working on Nordic nrf9151-DK. I wanna use zephyr/driver_rtc.h library and zephyr/device.h librrary. I am able to use DEVICE_DT_GET with rtc0, but if I use another function working with device, like device_is_ready(), it makes error. The given device (rtc0) is not known to the compiler.
The main.c looks like this:
#include <zephyr/kernel.h> #include <zephyr/device.h> #include <zephyr/devicetree.h> #include <zephyr/drivers/rtc.h> #include <nrfx_rtc.h> #include <nrfx_clock.h> #include <hal/nrf_rtc.h> bool pripravenost=false; int navratova=0; struct rtc_time time; int main(void) { const struct device *muj_rtc = DEVICE_DT_GET(DT_NODELABEL(rtc0)); pripravenost=device_is_ready(muj_rtc); if(pripravenost==true) { printk("Jsem ready\n"); } else { printk("Nejsem ready\n"); } while(1) { } return 0; }
My prj.conf looks like this:
# Povolení konzole CONFIG_CONSOLE=y # Povolení standardního výstupu (např. printf) CONFIG_PRINTK=y CONFIG_RTC=y CONFIG_CLOCK_CONTROL=y CONFIG_CLOCK_CONTROL_NRF=y CONFIG_NRFX_CLOCK=y #CONFIG_NRFX_RTC=y CONFIG_NRFX_RTC0=y #CONFIG_NRFX_RTC1=y CONFIG_MAIN_STACK_SIZE=2048 CONFIG_RTC_ALARM=y CONFIG_RTC_UPDATE=y
nrf9151_dk_nrf9151_defconfig looks like this:
# SPDX-License-Identifier: Apache-2.0 # Enable MPU CONFIG_ARM_MPU=y # Enable hardware stack protection CONFIG_HW_STACK_PROTECTION=y # Enable TrustZone-M CONFIG_ARM_TRUSTZONE_M=y # Enable GPIO CONFIG_GPIO=y # Enable UART driver CONFIG_SERIAL=y # Enable console CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y #CONFIG_RTC=y CONFIG_CLOCK_CONTROL=y CONFIG_CLOCK_CONTROL_NRF=y CONFIG_NRFX_CLOCK=y #CONFIG_NRFX_RTC=y CONFIG_NRFX_RTC0=y #CONFIG_NRFX_RTC1=y
nrf9151dk_nrf9151_ns.overlay looks like this:
/* * Copyright (c) 2024 Nordic Semiconductor ASA * * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause */ &rtc0 { status="okay"; }; &clock { status = "okay"; }; &systick { zephyr,deferred-init; };
nrf9151dk_9151_ns.dts looks like this:
/* * Copyright (c) 2023 Nordic Semiconductor ASA * * SPDX-License-Identifier: Apache-2.0 */ /dts-v1/; #include <nordic/nrf9151_laca.dtsi> #include "nrf9151dk_nrf9151_common.dtsi" / { chosen { zephyr,sram = &sram0_s; zephyr,flash = &flash0; zephyr,code-partition = &slot0_partition; zephyr,sram-secure-partition = &sram0_s; zephyr,sram-non-secure-partition = &sram0_ns; }; }; &rtc0 { status="okay"; }; &clock { status = "okay"; }; &systick { zephyr,deferred-init; };
Build configuration looks like this:
Kind regards
Jaroslav Havel