zephyr-copilot contains allows using Haskell to program many boardssupported by the Zephyr project.
zephyr-copilot uses the Copilot stream DSL (domain-specific language)and Functional Reactive Programming (FRP) to generate a program whichcan be compiled in Zephyr and flashed to the board.
All the messy details are abstracted away, letting you focus on thedesired behavior of the board.
Copilot is a stream (i.e., infinite lists) domain-specific language(DSL) in Haskell that compiles into embedded C. Copilot contains aninterpreter, multiple back-end compilers, and other verification tools.https://copilot-language.github.io/
Zephyr is a real time embedded operating system (RTOS) supportinghundreds of boards.https://zephyrproject.org/
[Index] [Quick Jump]
For package maintainers and hackage trustees
Candidates
| Versions[RSS] | 1.0.0,1.0.1,1.0.2,1.0.3,1.0.4,1.0.5,1.0.6,1.0.7,1.0.8,1.0.9,1.0.10 |
|---|---|
| Change log | CHANGELOG |
| Dependencies | base (>=4.5 && <5),containers,copilot (>=4.3 && <4.4),copilot-c99 (>=4.3 && <4.4),copilot-language (>=4.3 && <4.4),directory,filepath,mtl,optparse-applicative (>=0.14.1),sketch-frp-copilot (==1.0.11),temporary [details] |
| License | BSD-3-Clause |
| Copyright | 2020-2022 Joey Hess |
| Author | Joey Hess |
| Maintainer | Joey Hess <id@joeyh.name> |
| Uploaded | byJoeyHess at2025-03-19T18:27:25Z |
| Category | Embedded,Language |
| Source repo | head: git clonegit://git.joeyh.name/zephyr-copilot.git |
| Distributions | |
| Downloads | 958 total (38 in the last 30 days) |
| Rating | (no votes yet)[estimated byBayesian average] |
| Your Rating |
|
| Status | Docs available[build log] Last success reported on 2025-03-19[all 1 reports] |
Embedded programming in haskell using the Copilot stream DSL and Zephyrzephyr-copilot contains allows using Haskell to program many boardssupported by the Zephyr project.zephyr-copilot uses the Copilot stream DSL (domain-specific language)and Functional Reactive Programming (FRP) to generate a program whichcan be compiled in Zephyr and flashed to the board.See Copilot.Zephyr for details on how to use write a program using thislibrary.For example, to make a board blink its LED:import Copilot.Zephyr.Board.Genericmain = zephyr $ doled0 =: blinkingdelay =: MilliSeconds (constant 100)This and other examples are included in the Examples/ directory, eachwith their own README explaining how to build and use them.Copilot is a stream (i.e., infinite lists) domain-specific language(DSL) in Haskell that compiles into embedded C. Copilot contains aninterpreter, multiple back-end compilers, and other verification tools.<https://copilot-language.github.io/>Zephyr is a real time embedded operating system (RTOS) supportinghundreds of boards. <https://zephyrproject.org/>## ContributingContributions are welcome, including adding support for more parts ofZephyr and more boards that are supported by Zephyr.Any contribution should have well documented functions and types.