zephyr/subsys/net/l2/ieee802154/CMakeLists.txt
Florian Grandel a12a6ab5b9 drivers: ieee802154: introduce channel pages
Replaces the previous approach to define bands via hardware capabilities
by the standard conforming concept of channel pages.

In the short term this allows us to correctly calculate the PHY specific
symbol rate and several parameters that directly depend from the symbol
rate and were previously not being correctly calculated for some of the
drivers whose channel pages could not be represented previously:
* We now support sub-nanosecond precision symbol rates for UWB. Rounding
  errors are being minimized by switching from a divide-then-multiply
  approach to a multiply-then-divide approach.
* UWB HRP: symbol rate depends on channel page specific preamble symbol
  rate which again requires the pulse repetition value to be known
* Several MAC timings are being corrected based on the now correctly
  calculated symbol rates, namely aTurnaroundTime, aUnitBackoffPeriod,
  aBaseSuperframeDuration.

In the long term, this change unlocks such highly promising functional
areas as UWB ranging and SUN-PHY channel hopping in the SubG area (plus
of course any other PHY specific feature).

Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
2023-09-27 12:44:15 -04:00

49 lines
950 B
CMake

# SPDX-License-Identifier: Apache-2.0
zephyr_library()
zephyr_library_include_directories(. ${ZEPHYR_BASE}/subsys/net/ip)
zephyr_library_compile_definitions_ifdef(
CONFIG_NEWLIB_LIBC __LINUX_ERRNO_EXTENSIONS__
)
zephyr_library_sources(
ieee802154.c
ieee802154_frame.c
ieee802154_utils.c
)
zephyr_library_sources_ifdef(
CONFIG_NET_6LO
ieee802154_6lo.c
)
zephyr_library_sources_ifdef(
CONFIG_NET_L2_IEEE802154_FRAGMENT
ieee802154_6lo_fragment.c
)
zephyr_library_sources_ifdef(
CONFIG_NET_L2_IEEE802154_MGMT
ieee802154_mgmt.c
)
zephyr_library_sources_ifdef(
CONFIG_NET_L2_IEEE802154_RADIO_ALOHA
ieee802154_radio_aloha.c
)
zephyr_library_sources_ifdef(
CONFIG_NET_L2_IEEE802154_RADIO_CSMA_CA
ieee802154_radio_csma_ca.c
)
zephyr_library_sources_ifdef(
CONFIG_NET_L2_IEEE802154_SECURITY
ieee802154_security.c
)
zephyr_library_sources_ifdef(
CONFIG_NET_L2_IEEE802154_SHELL
ieee802154_shell.c
)