This repository contains both a board support library and a Tower backend for using the Ivory/Tower languages on the STM32 line of microcontrollers.

Ivory is an embedded domain specific language (EDSL) which aims to provide a systems-level programming language that removes some common pitfalls of programming in C, without sacrificing expressivity.

Tower is a concurrency framework for the Ivory language. Tower composes Ivory programs into monitors which communicate with synchronous channels.

Build Status

Copyright and license

Copyright 2014 Galois, Inc.

Licensed under the BSD 3-Clause License; you may not use this work except in compliance with the License. A copy of the License is included in the LICENSE file.


This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unaccpetable behavior to smaccm @galois.com.