From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id 4B228BC57 for ; Thu, 4 Nov 2010 22:44:39 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AuYAAMPF0kyE4zwemWdsb2JhbAChchUBAQEBAQgLCgcRIr4xhUYEgVqDNYVGgwiDVw X-IronPort-AV: E=Sophos;i="4.58,298,1286143200"; d="scan'208,217";a="86195316" Received: from osiris.lip6.fr ([132.227.60.30]) by mail1-smtp-roc.national.inria.fr with ESMTP; 04 Nov 2010 22:44:39 +0100 Received: from tibre.lip6.fr (tibre.lip6.fr [132.227.74.2]) by osiris.lip6.fr (8.14.4/lip6) with ESMTP id oA4LibGc018715 ; Thu, 4 Nov 2010 22:44:37 +0100 (CET) X-pt: osiris.lip6.fr Received: from [127.0.0.1] (postepwang [132.227.83.184]) by tibre.lip6.fr (8.14.4/8.13.3) with ESMTP id oA4Liakb008565; Thu, 4 Nov 2010 22:44:36 +0100 (MET) From: Philippe Wang Mime-Version: 1.0 (Apple Message framework v1081) Content-Type: multipart/alternative; boundary=Apple-Mail-81--785252694 Subject: (Announce) "OCAPIC" : OCaml for PIC18 microcontrollers Date: Thu, 4 Nov 2010 22:44:36 +0100 References: <951AD91B-DA92-4F92-AE90-86A13DDB2357@lip6.fr> Cc: Philippe Wang To: caml-list@inria.fr Message-Id: X-Mailer: Apple Mail (2.1081) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.5 (osiris.lip6.fr [132.227.60.30]); Thu, 04 Nov 2010 22:44:37 +0100 (CET) X-Scanned-By: MIMEDefang 2.68 on 132.227.60.30 X-Spam: no; 0.00; ocaml:01 ocaml:01 model:01 ocamlc:01 bytecode:01 gcc:01 cheers:01 supervisor:01 chailloux:01 supervisor:01 model:01 ocamlc:01 bytecode:01 gcc:01 cheers:01 --Apple-Mail-81--785252694 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=iso-8859-1 Dear all, this is an announcement for "OCAPIC", a project which brings OCaml to = programming PIC micro-controllers. Some PIC18 series characteristics: - 8 bit architecture - low cost (a few US dollars), fairly spread in electronics world - very low volatile memory (a few bytes only, up to ~5000 bytes, = depending on the model) - very low non-volatile memory (less than a KB up to 128 KB) - EEPROM : 0 to 1024 bytes How to program those little chips with OCaml: - write an OCaml program, compile it, transfer it to the PIC. Well, actually it demands a little more than just that: - write an OCaml program, like usually, while keeping in mind that the = stack is more limited than usual, same for the heap - compile it (with ocamlc) - reduce the binary (with ocamlclean : a bytecode reducer which removes = dead-code) - transform the (reduced or not) binary (with bc2asm : take back not = useful zeros, thence reducing the binary size) - transfer it to the PIC along with its OCaml VM. Indeed, an OCaml VM has been implemented in PIC18 ASM in order to run = OCaml programs on a PIC ! :-) An example of real program is in the distribution (open source, = downloadable from the website): ocapic-1.3/src/tests/goblet/ (722 lines of ML code). We also provide a simulator in order to run on a PC (needs X11 = (Linux/MacOSX) and GCC) your programs written for PIC18. The whole implementation has been fairly well tested, however the = documentation is still quite young. Here is the website :=20 http://www.algo-prog.info/ocaml_for_pic/=20 Cheers. Beno=EEt Vaugon (developer and initiator of OCAPIC project) Philippe Wang (supervisor) Emmanuel Chailloux (supervisor) P.S. si vous =EAtes francophone et nous contactez directement, merci de = le faire en fran=E7ais --Apple-Mail-81--785252694 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=iso-8859-1
Some PIC18 series characteristics:
- 8 bit = architecture
- low cost (a few US dollars), fairly spread in = electronics world
- very low volatile memory (a few bytes only, up to = ~5000 bytes, depending on the model)
- very low non-volatile memory = (less than a KB up to 128 KB)
- EEPROM : 0 to 1024 bytes

How = to program those little chips with OCaml:
- write an OCaml = program, compile it, transfer it to the PIC.

Well, actually it = demands a little more than just that:
- write an OCaml program, like = usually, while keeping in mind that the stack is more limited than = usual, same for the heap
- compile it (with ocamlc)
- reduce the = binary (with ocamlclean : a bytecode reducer which removes = dead-code)
- transform the (reduced or not) binary (with bc2asm : = take back not useful zeros, thence reducing the binary size)
- = transfer it to the PIC along with its OCaml VM.

Indeed, an OCaml = VM has been implemented in PIC18 ASM in order to run OCaml programs on a = PIC ! :-)

An example of real program is in the distribution (open = source, downloadable from the website):
ocapic-1.3/src/tests/goblet/ = (722 lines of ML code).

We also provide a simulator in order to = run on a PC (needs X11 (Linux/MacOSX) and GCC) your programs written for = PIC18.

The whole implementation has been fairly well tested, = however the documentation is still quite young.

Here is the = website :
http://www.algo-prog.inf= o/ocaml_for_pic/

Cheers.

Beno=EEt Vaugon (developer = and initiator of OCAPIC project)
Philippe Wang = (supervisor)
Emmanuel Chailloux (supervisor)

P.S. si vous =EAtes= francophone et nous contactez directement, merci de le faire en = fran=E7ais

= --Apple-Mail-81--785252694--