diff --git a/configs/clicker2-stm32/mrf24j40-radio/defconfig b/configs/clicker2-stm32/mrf24j40-radio/defconfig index db009c3ed3b..33284b022cd 100644 --- a/configs/clicker2-stm32/mrf24j40-radio/defconfig +++ b/configs/clicker2-stm32/mrf24j40-radio/defconfig @@ -373,9 +373,13 @@ CONFIG_STM32_HAVE_ADC3=y # CONFIG_STM32_HAVE_SDADC3_DMA is not set CONFIG_STM32_HAVE_CAN1=y CONFIG_STM32_HAVE_CAN2=y +# CONFIG_STM32_HAVE_COMP1 is not set # CONFIG_STM32_HAVE_COMP2 is not set +# CONFIG_STM32_HAVE_COMP3 is not set # CONFIG_STM32_HAVE_COMP4 is not set +# CONFIG_STM32_HAVE_COMP5 is not set # CONFIG_STM32_HAVE_COMP6 is not set +# CONFIG_STM32_HAVE_COMP7 is not set CONFIG_STM32_HAVE_DAC1=y CONFIG_STM32_HAVE_DAC2=y CONFIG_STM32_HAVE_RNG=y @@ -389,7 +393,10 @@ CONFIG_STM32_HAVE_SPI3=y # CONFIG_STM32_HAVE_SPI6 is not set # CONFIG_STM32_HAVE_SAIPLL is not set # CONFIG_STM32_HAVE_I2SPLL is not set -# CONFIG_STM32_HAVE_OPAMP is not set +# CONFIG_STM32_HAVE_OPAMP1 is not set +# CONFIG_STM32_HAVE_OPAMP2 is not set +# CONFIG_STM32_HAVE_OPAMP3 is not set +# CONFIG_STM32_HAVE_OPAMP4 is not set # CONFIG_STM32_ADC1 is not set # CONFIG_STM32_ADC2 is not set # CONFIG_STM32_ADC3 is not set @@ -410,6 +417,7 @@ CONFIG_STM32_HAVE_SPI3=y # CONFIG_STM32_I2C1 is not set # CONFIG_STM32_I2C2 is not set # CONFIG_STM32_I2C3 is not set +# CONFIG_STM32_OPAMP is not set # CONFIG_STM32_OTGFS is not set # CONFIG_STM32_OTGHS is not set CONFIG_STM32_PWR=y @@ -660,7 +668,10 @@ CONFIG_SCHED_WAITPID=y # # Pthread Options # -# CONFIG_MUTEX_TYPES is not set +# CONFIG_PTHREAD_MUTEX_TYPES is not set +CONFIG_PTHREAD_MUTEX_ROBUST=y +# CONFIG_PTHREAD_MUTEX_UNSAFE is not set +# CONFIG_PTHREAD_MUTEX_BOTH is not set CONFIG_NPTHREAD_KEYS=4 # CONFIG_PTHREAD_CLEANUP is not set # CONFIG_CANCELLATION_POINTS is not set @@ -856,6 +867,7 @@ CONFIG_USART3_2STOP=0 # CONFIG_PSEUDOTERM is not set # CONFIG_USBDEV is not set # CONFIG_USBHOST is not set +# CONFIG_USBMISC is not set # CONFIG_HAVE_USBTRACE is not set CONFIG_DRIVERS_WIRELESS=y # CONFIG_WL_CC1101 is not set @@ -950,6 +962,7 @@ CONFIG_MM_REGIONS=1 CONFIG_WIRELESS=y CONFIG_WIRELESS_IEEE802154=y CONFIG_IEEE802154_MAC=y +# CONFIG_IEEE802154_MAC_DEV is not set CONFIG_IEEE802154_DEV=y # @@ -1177,13 +1190,6 @@ CONFIG_EXAMPLES_NSH_CXXINITIALIZE=y # CONFIG_TIFF is not set # CONFIG_GRAPHICS_TRAVELER is not set -# -# IEEE 802.15.4 applications -# -CONFIG_IEEE802154_COMMON=y -CONFIG_IEEE802154_COORD=y -CONFIG_IEEE802154_I8SAK=y - # # Interpreters # @@ -1336,3 +1342,14 @@ CONFIG_READLINE_ECHO=y # CONFIG_SYSTEM_UBLOXMODEM is not set # CONFIG_SYSTEM_VI is not set # CONFIG_SYSTEM_ZMODEM is not set + +# +# Wireless Libraries and NSH Add-Ons +# + +# +# IEEE 802.15.4 applications +# +CONFIG_IEEE802154_COMMON=y +CONFIG_IEEE802154_COORD=y +CONFIG_IEEE802154_I8SAK=y diff --git a/include/nuttx/wireless/ieee802154/ieee802154_mac.h b/include/nuttx/wireless/ieee802154/ieee802154_mac.h index 8bef67a14d4..6ad8158c806 100644 --- a/include/nuttx/wireless/ieee802154/ieee802154_mac.h +++ b/include/nuttx/wireless/ieee802154/ieee802154_mac.h @@ -851,9 +851,9 @@ struct ieee802154_pollreq_s union ieee802154_macarg_u { struct ieee802154_assoc_req_s assocreq; /* MAC802154IOC_MLME_ASSOC_REQUEST */ - struct ieee802154_assocresp_s assocresp: /* MAC802154IOC_MLME_ASSOC_RESPONSE */ + struct ieee802154_assocresp_s assocresp; /* MAC802154IOC_MLME_ASSOC_RESPONSE */ struct ieee802154_disassoc_req_s disassocreq; /* MAC802154IOC_MLME_DISASSOC_REQUEST */ - struct ieee802154_mlmereq_s getreq; /* MAC802154IOC_MLME_GET_REQUEST */ + struct ieee802154_getreq_s getreq; /* MAC802154IOC_MLME_GET_REQUEST */ struct ieee802154_gtsreq_s gtsreq; /* MAC802154IOC_MLME_GTS_REQUEST */ struct ieee802154_orphanresp_s orphanresp; /* MAC802154IOC_MLME_ORPHAN_RESPONSE */ struct ieee802154_resetreq_s resetreq; /* MAC802154IOC_MLME_RESET_REQUEST */ diff --git a/include/nuttx/wireless/ieee802154/ieee802154_radio.h b/include/nuttx/wireless/ieee802154/ieee802154_radio.h index 5bee1e3d52d..eef94e328f4 100644 --- a/include/nuttx/wireless/ieee802154/ieee802154_radio.h +++ b/include/nuttx/wireless/ieee802154/ieee802154_radio.h @@ -138,7 +138,7 @@ union ieee802154_radioarg_u bool promisc; /* PHY802154IOC_GET/SET_EADDR */ uint8_t devmode; /* PHY802154IOC_GET/SET_DEVMODE */ int32_t txpwr; /* PHY802154IOC_GET/SET_TXPWR */ - bool energy /* PHY802154IOC_ENERGYDETECT */ + bool energy; /* PHY802154IOC_ENERGYDETECT */ struct ieee802154_cca_s cca; /* PHY802154IOC_GET/SET_CCA */ }; @@ -158,23 +158,7 @@ struct ieee802154_netradio_s /* IEEE802.15.4 Radio Interface Operations **********************************/ -struct ieee802154_cca_s -{ - uint8_t use_ed : 1; /* CCA using ED */ - uint8_t use_cs : 1; /* CCA using carrier sense */ - uint8_t edth; /* Energy detection threshold for CCA */ - uint8_t csth; /* Carrier sense threshold for CCA */ -}; - -struct ieee802154_packet_s -{ - uint8_t len; - uint8_t data[127]; - uint8_t lqi; - uint8_t rssi; -}; - -struct ieee802154_radio_s; +struct ieee802154_radio_s; /* Forward reference */ struct ieee802154_radioops_s { diff --git a/wireless/ieee802154/mac802154.c b/wireless/ieee802154/mac802154.c index 5dcb8b7fee5..e8f046f2849 100644 --- a/wireless/ieee802154/mac802154.c +++ b/wireless/ieee802154/mac802154.c @@ -45,6 +45,7 @@ #include #include +#include #include #include "mac802154.h" @@ -271,6 +272,8 @@ int mac802154_ioctl(MACHANDLE mac, int cmd, unsigned long arg) (FAR struct ieee802154_privmac_s *)mac; int ret = -EINVAL; + DEBUGASSERT(priv != NULL); + /* Check for IOCTLs aimed at the IEEE802.15.4 MAC layer */ if (_MAC802154IOCVALID(cmd)) @@ -283,8 +286,14 @@ int mac802154_ioctl(MACHANDLE mac, int cmd, unsigned long arg) else { - ret = priv->radio->ioctl(priv->radio, cmd, arg); + DEBUGASSERT(priv->radio != NULL && + priv->radio->ops != NULL && + priv->radio->ops->ioctl != NULL); + + ret = priv->radio->ops->ioctl(priv->radio, cmd, arg); } + + return ret; } /**************************************************************************** @@ -334,7 +343,7 @@ int mac802154_req_purge(MACHANDLE mac, uint8_t handle) * ****************************************************************************/ -int mac802154_req_associate(MACHANDLE mac +int mac802154_req_associate(MACHANDLE mac, FAR struct ieee802154_assoc_req_s *req) { FAR struct ieee802154_privmac_s *priv = (FAR struct ieee802154_privmac_s *)mac; diff --git a/wireless/ieee802154/mac802154.h b/wireless/ieee802154/mac802154.h index 696977259fd..8321e905ea9 100644 --- a/wireless/ieee802154/mac802154.h +++ b/wireless/ieee802154/mac802154.h @@ -52,7 +52,7 @@ #include #include -#include +#include /**************************************************************************** * Public Function Prototypes @@ -132,7 +132,7 @@ int mac802154_req_purge(MACHANDLE mac, uint8_t handle); * ****************************************************************************/ -int mac802154_req_associate(MACHANDLE mac +int mac802154_req_associate(MACHANDLE mac, FAR struct ieee802154_assoc_req_s *req); /****************************************************************************