Abstract
PIC microcontrollers are low-cost programmable integrated circuits,consume very little energy, but are hard to program due to very little available resources. They are traditionally programmed using low-level languages (e.g., assembler or subsets of C), which provide very few safeguards if any. This paper presents the issues we had to solve to successfully port a modern multi-paradigm general-purpose programming language, which notably provides automatic memory management and strong static type checking, to this rather peculiar hardware.
Philippe WangāThis work started while the author was at LIP6-UPMC.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
van Ooijen et al, W.: Jal (not ?) Just Another Language, May 2004. http://jal.sourceforge.net/manual
Brouwers, N., Corke, P., Langendoen, K.: Darjeeling, a Java compatible virtual machine for wireless sensor networks. In: Proceedings of the ACM/IFIP/USENIX Middleware 2008 Conference Companion (2008)
Chailloux, E., Manoury, P., Pagano, B.: Developing Applications with Objective Caml. OāReilly (2000). http://caml.inria.fr/pub/docs/oreilly-book/
Clerc, X.: Cadmium, February 2010. http://cadmium.x9c.fr/distrib/cadmium.pdf
Feeley, M., DubĆ©, D.: Picbit: a scheme system for the PIC microcontroller. In: Scheme and Functional Programming Workshop (SFPW 2003), pp. 7ā15, November 2003
Leroy, X.: The ZINC experiment : an economical implementation of the ML language. Tech. Rep. RT-0117, INRIA, February 1990
Leroy, X., Doligez, D., Frisch, A., Garrigue, J., RĆ©my, D., Vouillon, J.: The OCaml system (release 4.02): Documentation and userās manual. Inria, September 2014. http://caml.inria.fr/pub/docs/manual-ocaml/
Madhavapeddy, A., Mortier, R., Rotsos, C., Scott, D., Singh, B., Gazagnaire, T., Smith, S., Hand, S., Crowcroft, J.: Unikernels: library operating systems for the cloud. In: Proceedings of the 18th International Conference on Architectural Support for Programming Languages and Operating Systems (APLOS), pp. 461ā472. ACM (2013)
Mandel, L., Pouzet, M.: ReactiveML, a reactive extension to ML. In: Proceedings of 7th International conference on Principles and Practice of Declarative Programming (PPDP 2005), Lisbon, Portugal, July 2005
Nordman, M.: Flashforth (2013). http://flashforth.sourceforge.net/
Oracle: Java Card 3.0.4 Platform Specification. Oracle, September 2011. http://www.oracle.com/technetwork/java/javacard/specs-jsp-136430.html
Osborne, M., Rubinstein, A.: Course in Game Theory. MIT Press (1994)
Pagano, B., Andrieu, O., Moniot, T., Canou, B., Chailloux, E., Wang, P., Manoury, P., ColaƧo, J.L.: Experience report: using objective caml to develop safety-critical embedded tools in a certification framework. In: ICFP 2009: Proceedings of the 14th International Conference on Functional Programming, pp. 215ā220. ACM (2009)
Paternotte, P.: Pic Micro Pascal V1.4: User Manual, July 2010. http://www.pmpcomp.fr
Pottier, F., RĆ©my, D.: Advanced Topics in Types and Programming Languages, chap. The Essence of ML Type Inference. MIT Press (2005)
St-Amour, V., Feeley, M.: PICOBIT: a compact scheme system for microcontrollers. In: MorazĆ”n, M.T., Scholz, S.-B. (eds.) IFL 2009. LNCS, vol. 6041, pp. 1ā17. Springer, Heidelberg (2010)
Tardieu, S.: A forth compiler for microchip pic 18fxxx (2011). http://www.rfc1149.net/devel/rforth1.html
Wang, P., Jonquet, A., Chailloux, E.: Non-intrusive structural coverage for objective caml. In: 5th Workshop on Bytecode Semantics, Verification, Analysis and Transformation, vol. 264 4 Electronic Notes in Theoretical Computer Science, pp. 59ā73. Elsevier (2011). http://hal.archives-ouvertes.fr/hal-00497131/en/
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
Ā© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Vaugon, B., Wang, P., Chailloux, E. (2015). Programming Microcontrollers in OCaml: The OCaPIC Project. In: Pontelli, E., Son, T. (eds) Practical Aspects of Declarative Languages. PADL 2015. Lecture Notes in Computer Science(), vol 9131. Springer, Cham. https://doi.org/10.1007/978-3-319-19686-2_10
Download citation
DOI: https://doi.org/10.1007/978-3-319-19686-2_10
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-19685-5
Online ISBN: 978-3-319-19686-2
eBook Packages: Computer ScienceComputer Science (R0)