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.
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)