# Bring Julia code to embedded hardware (ARM)

**URL:** <https://discourse.julialang.org/t/bring-julia-code-to-embedded-hardware-arm/19979>\
**Category:** Maker\
**Created:** [January 23, 2019, 12:57pm UTC](https://discourse.julialang.org/t/bring-julia-code-to-embedded-hardware-arm/19979 "2019-01-23T12:57:50Z")\
**Posts on this page:** 1\
**Showing post:** 26

<div class="post-metadata">

**Author:** ![asprionj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/asprionj/32/6856_2.png) [@asprionj](https://discourse.julialang.org/u/asprionj)\
**Post date:** [May 31, 2019, 10:19pm UTC](https://discourse.julialang.org/t/bring-julia-code-to-embedded-hardware-arm/19979/26 "2019-05-31T22:19:52Z")

</div>

The straightforward way I already mentioned in my original post:

> [@asprionj](#):
>
> 1. Run Julia on the embedded hardware, AOT-compile all required methods when going in production.

As @Tamas_Papp correctly stated, I also detailed in the OP when this might be an option, and when it’s not:

> [@asprionj](#):
>
> If there’s a lot of flash and RAM, one could just use option 5. I guess that’s already possible today. However, on embedded devices, the entire OS (Yocto, Buildroot, Alpine, …) is usually stripped down to 2-4 MB, so one does not want to have some 100 MB software on it.

And, of course, if there even isn’t any Linux OS around, this route is not option. What’s the status, activity, roadmap of llvm-cbe? Could this be a viable option for bringing Julia to embedded devices?

I feel like this could be a an expedient way to go:

> [@maleadt](#):
>
> Basically, reconfiguring the existing compiler to emit GPU-compatible LLVM IR (mainly through regular dispatch, but Cassette would be great for this once it generates some better code) in combination with a custom back-end and run-time to compile and handle that IR.
> 
> Wrt. the lack of documentation on the CUDAnative internals, I’m considering creating a package that isolates and demonstrates the approach and submit that for a talk on the next JuliaCon.

Just replace GPU by anything else;

> reconfiguring the existing compiler to emit _[ANYTARGET]_-compatible LLVM IR

which should become easier by said clean, isolated “demo package”. @maleadt, do you plan to keep non-GPU-specific parts of this package separated to allow others to reuse them to reconfigure the compiler for their specific targets?

---

_[View the full topic](https://discourse.julialang.org/t/bring-julia-code-to-embedded-hardware-arm/19979)._
