Memory-safe microcontroller applications with the Bedrock structured programming system
Author(s)
Barenblat, Benjamin Ezra
DownloadFull printable version (364.6Kb)
Other Contributors
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science.
Advisor
Adam Chlipala.
Terms of use
Metadata
Show full item recordAbstract
Microcontrollers - low-power, real-mode CPUS - drive digital electronics all over the world, making their safety and reliability critical. However, microcontrollers generally lack the memory protection common in desktop processors, so memory safety must come through other means. One such mechanism is Bedrock, a library for the Coq proof assistant that applies separation logic to a small c-like language, allowing programmers to prove memory-related properties about their code. I used Bedrock to build a security peripheral out of a Cortex-m3 microcontroller; my peripheral provides both AES encryption and append-only logging to a host system, and I showed the software it runs is memory-safe. Working with Bedrock was challenging but rewarding, and it provides a glimpse into a future where system programmers can prove code correct as a matter of course.
Description
Thesis: M. Eng., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2015. This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections. Cataloged from student-submitted PDF version of thesis. Includes bibliographical references (pages 71-72).
Date issued
2015Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer SciencePublisher
Massachusetts Institute of Technology
Keywords
Electrical Engineering and Computer Science.