Become a leader in the IoT community!

Join our community of embedded and IoT practitioners to contribute experience, learn new skills and collaborate with other developers with complementary skillsets.

Step 1 of 5

CREATE YOUR PROFILE *Required

OR
Step 2 of 5

WHAT BRINGS YOU TO DEVHEADS? *Choose 1 or more

Connect & collaborate 🀝with other tech professionals
Learn & Grow πŸ“š
Contribute Experience & Expertise πŸ”§
Step 3 of 5

WHAT'S YOUR INTEREST OR EXPERTISE? *Choose 1 or more

Hardware Design πŸ’‘
Embedded Software πŸ’»
Edge Networking ⚑
Step 4 of 5

Personalize your profile

Step 5 of 5

Read & agree to our COMMUNITY RULES

  1. We want this server to be a welcoming space! Treat everyone with respect. Absolutely no harassment, witch hunting, sexism, racism, or hate speech will be tolerated.
  2. If you see something against the rules or something that makes you feel unsafe, let staff know by messaging @admin in the "support-tickets" tab in the Live DevChat menu.
  3. No age-restricted, obscene or NSFW content. This includes text, images, or links featuring nudity, sex, hard violence, or other graphically disturbing content.
  4. No spam. This includes DMing fellow members.
  5. You must be over the age of 18 years old to participate in our community.
  6. You agree to our Terms of Service (https://www.devheads.io/terms-of-service/) and Privacy Policy (https://www.devheads.io/privacy-policy)
By clicking "Finish", you have read and agreed to the our Terms of Service and Privacy Policy.

Exploring Open Source RTOS with Vulkan SC

Hey! I’m doing a personal project to explore RTOS’s, safety critical software architecture, and utilizing rust. I want to be able to have graphical output, and I’ll be supporting Vulkan SC, as well as others for desktop. I don’t have access to anything proprietary (looking at you LynxOS), so I’m looking for open source alternatives that have a similar system architecture (such as partitioned ram), as well as a hardware stack I could use, but I’m unsure where to look for RTOS + VulkanSC + displays.

I’ve built a pal/hal/rhi combo before, and I’m seasoned with c/c++ and rust. I’ve also done embedded before, but not with an RTOS or with proper displays.

Any pointers to the above would be absolutely amazing.

  1. 32bitwidesaviour#0000

    Not sure about rust but Zephyr can help you achieve this though you would have to do all the GPU grunt work, not sure how much effort you would have to put in. I imagine it is a task.
    I did some thinking a while back on it could be nice using the RPI 5. I thought of starting from here https://github.com/Yours3lf/rpi-vk-driver

  2. 32bitwidesaviour#0000

    RPI5 has native support for vulkan. Zephyr supports it.

  3. barronkane#0000

    Oh this is interesting, I didn’t even consider a pi. For the goals of my project, a dedicated GPU is desired but I’ll explore this a bit.

  4. barronkane#0000

    An RHI isn’t bad since you’re just telling a GPU driver what to do and uploading shader binaries to execute, but I’ve never touched actual display driver code.

    Reading this: <https://www.raspberrypi.com/news/vulkan-update-version-1-2-conformance-for-raspberry-pi-4/>

  5. 32bitwidesaviour#0000

    PI5 has the videocore ii
    https://docs.zephyrproject.org/latest/boards/raspberrypi/rpi_5/doc/index.html

    A quick hw description here.

  6. barronkane#0000

    Ahhhh

  7. 32bitwidesaviour#0000

    Makes sense.

  8. 32bitwidesaviour#0000

    Plus you can do some rust in Zephyr not sure about the extent of the support.

  9. barronkane#0000

    Well to be conformant, it’d just be a c api.

  10. barronkane#0000

    Rust interops with c quite easily. Same as c++, lots of extern and ffi

  11. barronkane#0000

    Oh I see what you mean, compiler support

  12. barronkane#0000

    I’m not worried about that as I’m building my own PAL anyway, looks like the api is available via generated c bindings to the zephyr kernel so it’s not a showstopper for me

  13. 32bitwidesaviour#0000

    FFI between c and rust can be easy but I think one must be very careful since the cases for undefined behavior may not be very apparent.

  14. barronkane#0000

    Take a look at the rust Vulkan ash bindings: <https://github.com/ash-rs/ash>

    the gold standard for an ffi library is an enforced type system that translates c bindings into safe(r) rust apis.

    I’d do vastly the same so UB can be checked against, or tested out

  15. barronkane#0000
  16. 32bitwidesaviour#0000

    Nice.

  17. 32bitwidesaviour#0000

    Looks like a path has been paved for you.

  18. barronkane#0000

    Definitely gives me a great starting point

  19. 32bitwidesaviour#0000

    All the best. Be really nice learning from your journey.

  20. barronkane#0000

    Thanks! I’ll be sure to share once I have something of substance.

CONTRIBUTE TO THIS THREAD

Browse other questions tagged 

Leaderboard

RANKED BY XP

All time
  • 1.
    Avatar
    @Nayel115
    1620 XP
  • 2.
    Avatar
    @UcGee
    650 XP
  • 3.
    Avatar
    @melta101
    600 XP
  • 4.
    Avatar
    @chitour
    600 XP
  • 5.
    Avatar
    @lifegochi
    250 XP
  • 6.
    Avatar
    @Youuce
    180 XP