@hackage zephyr-copilot1.0.9

Embedded programming in haskell using the Copilot stream DSL and Zephyr

Embedded programming in haskell using the Copilot stream DSL and Zephyr zephyr-copilot contains allows using Haskell to program many boards supported by the Zephyr project.

zephyr-copilot uses the Copilot stream DSL (domain-specific language) and Functional Reactive Programming (FRP) to generate a program which can be compiled in Zephyr and flashed to the board.

See Copilot.Zephyr for details on how to use write a program using this library.

For example, to make a board blink its LED:

import Copilot.Zephyr.Board.Generic
main = zephyr $ do
	led0 =: blinking
	delay =: MilliSeconds (constant 100)

This and other examples are included in the Examples/ directory, each with 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 an interpreter, multiple back-end compilers, and other verification tools. https://copilot-language.github.io/

Zephyr is a real time embedded operating system (RTOS) supporting hundreds of boards. https://zephyrproject.org/

Contributing

Contributions are welcome, including adding support for more parts of Zephyr and more boards that are supported by Zephyr.

Any contribution should have well documented functions and types.