-
Notifications
You must be signed in to change notification settings - Fork 6.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cc13xx and cc26xx handler for IRQ invoked multiple times #25216
Comments
Ah cool. I'll take a look at this now |
I was using it for the BLE port in #21631 . Specifically, here via From my discussions with TI, it was preferable to keep the RF IRQ's in hal/ti in order to use more of the TI RF driver library. Is that a discussion we want to open up again? |
Hmm, when I try:
I'm getting:
|
I guess the HAL version is at |
@galak - still getting that error? Should be defined in
|
I think the output from @galak is due to the latest update of rfc.h when moving to SimpleLink SDK 4.10. It now requires When I try to add a compiler definition in drivers/ieee802154/CMakeLists.txt:
The build seems to ignore this directive. Not sure what is the right syntax for this? As for the error from @statropy, short term HwiP_construct() can be modified to not connect the irq for CPE0, which would prevent the conflict if there isn't a more elegant solution. Longer term I think we should look into converting the ieee802154 driver to use the TI RF driver as well, so that it can be used concurrently with future BLE work. |
@vanti - what's your ballpark for longer term? |
@statropy I took a stab at the fix in #25307, since there seems to be other gremlins when rebuilding the sample using the latest HAL. See if it works for you.
@cfriedt After Zephyr 2.3. Timeline would also depend on who is doing the work. Personally I would need some time to ramp up on IEEE 802.15.4, the TI RF driver, etc., given these are not aspects I am familiar with. |
IRQ_CONNECT() can only be called at one location to connect the irq for CPE0. This commit modifies the driver to call into the HwiP layer in TI HAL so that TI's RF driver can do the same when connecting the irq. Fixes zephyrproject-rtos#25216 Signed-off-by: Vincent Wan <vincent.wan@linaro.org>
IRQ_CONNECT() can only be called at one location to connect the irq for CPE0. This commit modifies the driver to call into the HwiP layer in TI HAL so that TI's RF driver can do the same when connecting the irq. Fixes zephyrproject-rtos#25216 Signed-off-by: Vincent Wan <vincent.wan@linaro.org>
Describe the bug
Building networking samples (such as echo_server) with 802.15.4 support enabled for TI cc1352r1_launchxl or cc26x2r1_launchxl fails to complete because of apparent multiple assignments for the CPE0 interrupt handler.
To Reproduce
west build -p always -b cc1352r1_launchxl samples/net/sockets/echo_server -- -DCONF_FILE="prj.conf overlay-802154.conf"
OR
west build -p always -b cc26x2r1_launchxl -d ../build/echo_server samples/net/sockets/echo_server -- -DCONF_FILE="prj.conf overlay-802154.conf"
Expected behavior
Samples should build with 802.15.4 support and without error.
The 2 places this interrupt is referenced are:
ieee802154_cc13xx_cc26xx_init()
in/zephyr/drivers/ieee802154/ieee804154_cc13xx_cc26xx.c
:IRQ_CONNECT(CC13XX_CC26XX_CPE0_IRQ ...
HwiP_construct()
in/modules/hal/ti/simplelink/kernel/zephyr/dpl/HwiP_zephyr.c
:IRQ_CONNECT(INT_RFC_CPE_0 - 16, ...
But
HwiP_construct()
is never called and thatIRQ_CONNECT
call should be ignored by gen_isr_tables.py.Impact
802.15.4 support cannot be included for cc1352r and cc26x2r SOCs.
Screenshots or console output
Build output excerpt with the --debug flag to gen_isr_tables.py args shows multiple assignments for IRQ 9 (CPE0).
The map file shows that
HwiP_construct
is in the discarded section, and then presumably should not be used by gen_isr_tables.py to determine the ISR table..text.HwiP_construct 0x0000000000000000 0xa4 modules/ti/simplelink/lib..__modules__hal__ti__simplelink.a(HwiP_zephyr.c.obj)
Environment (please complete the following information):
hal_ti modules/hal/ti b25d4b83b16e52f501f8cd360f4efb8c31ffb578
zephyr: bf46bee
Additional context
Commenting out the call to
IRQ_CONNECT(INT_RFC_CPE_0 - 16, ...
in HwiP_zephyr.c allows the build to complete and the samples seem to work as intended.@cfriedt @vanti @bwitherspoon
The text was updated successfully, but these errors were encountered: