-
Notifications
You must be signed in to change notification settings - Fork 98
Improvements for newer Zephyr versions #170
Conversation
Hi, and many thanks for this. Looks good, just going to push it through the test system to be quite sure. |
Hmmm, are you sure about the exact Zephyr versions? Our test system uses Zephyr version 3.2.99, as comes with nrfConnect 2.3.0, and applying this PR with that version results in compilation errors, see attached. |
The root of these side effects is the Nordic SDK. This comes with many patches to the original Zephyr project sources and its strategy disrupts the original release scheme. Note that Zephyr version 3.2.99 as "unstable" is in nrfConnect version 2.3.0 (declared as stable by Nordic). This is a mismatch. However, the original Zephyr versions should be okay. All three comparisons based on the original release notes / migration guide:
Maybe, that the comparitions have to extend to respect the nrfConnect version scheme too. Give me some time to find it out here locally. |
Ugh, understood. I will start a discussion internally about whether we should go "native" Zephyr; the Nordic stuff is mostly driven by our short range modules (Wifi/BLE) (I'm more from the cellular side of our business). |
👍🏻 BUT: the PR has at least one deficit – it doesn't catch the new zephyr include prefix in
I'll fix this in same way as for |
3ea6dff
to
df030d3
Compare
Okay, you are right. The PR is not quite right. I misinterpreted the kernel version template for the automatic generation of the central Zephyr C header I have adapted the PR again, rebased it and built and tested it with all Zephyr versions from 3.0 to 3.5 with a small example for a u-blox M10 module. Now it really works as expected. I haven't tested against an nRFConnect >= 2.3 yet, but it should work the same way. |
df030d3
to
f0f6836
Compare
That's excellent news, thanks very much for persisting with this, I'll run it internally again. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Again, thanks SO much for this, really appreciate it.
A quick check suggests just one missed out:
/home/ubxlib/workspace/ubxlib_temp_rmea@5/ubxlib/port/test/u_port_test.c:79:11: fatal error: irq_offload.h: No such file or directory
79 | # include <irq_offload.h> // To test semaphore from ISR in zephyr
You probably wouldn't have compiled with CONFIG_IRQ_OFFLOAD
, it is only required when we are running Zephyr on posix. If you fix up that one then, fingers crossed, we're good to go; I don't anticipate any problems when running the tests.
Correct, I've never tried out any test on Zephyr POSIX platform with enabled IRQ offloads. Sorry for that, here it is again. |
f0f6836
to
fa2b299
Compare
All Zephyr public headers have been moved to `include/zephyr`, meaning they need to be prefixed with `<zephyr/...>` when included. Signed-off-by: Stephan Linz <[email protected]>
`SYS_INIT` callback no longer requires a `device` argument. The new callback signature is `int f(void)`. Signed-off-by: Stephan Linz <[email protected]>
Random API header `<zephyr/random/rand32.h>` is deprecated in favor of `<zephyr/random/random.h>`. The old header will be removed in future releases and its usage should be avoided. Signed-off-by: Stephan Linz <[email protected]>
fa2b299
to
5beb45d
Compare
Cool, compilation now good, tests are running... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perfect: tests all pass, merging...
This will respect changes to the Zephyr RTOS interfaces since v3.1
include/zephyr
, meaning they need to be prefixed with<zephyr/...>
when included.SYS_INIT
callback no longer requires adevice
argument. The new callback signature isint f(void)
.<zephyr/random/rand32.h>
is deprecated in favor of<zephyr/random/random.h>
. The old header will be removed in future releases and its usage should be avoided.