From: mockturtle <framefritti@gmail.com>
Subject: Adapting an Ada compiler to generate 8051 code (Again?! ;-)
Date: Tue, 30 Mar 2021 02:04:41 -0700 (PDT) [thread overview]
Message-ID: <41bc7a62-9c70-466d-b316-5fc74a3ee845n@googlegroups.com> (raw)
Dear.all,
for a project related to a possible start-up, we need to program a Flash controller that has a 8051 core (as many other controllers). I would like using Ada for that, but I discovered (also by browsing c.l.a.) that there is no Ada compiler producing 8051 code.
I am considering involving some university colleagues of mine to start a project aimed to having an Ada compiler for 8051, possibly leveraging some existing compiler. According to some post read here, I understand that it is not totally impossible, if we are willing to accept some limitations.
I did not study (yet) in detail the 8051, but as I understand it is a small 8-bit processor, with flash memory for code and data and a small amount of RAM onboard (but maybe this depends on the specific controller). My knowledge about compilers is superficial, but I guess we should give up to some Ada features like
* Multitasking (maybe only non preemptive policy, single priority, no dynamic task allocation? Kind of coroutines...)
* Dynamic memory allocation
* Exception raising, but not handling, an exception would stop the execution (I guess having an exception inside a microcontroller is not a nice idea... This sounds like a job for Spark to be sure that no exception will happen)
* OOP? Some of that can be retained?
* Run-time check of contracts (maybe can be kept active during development and debugging)
Considering the kind of software usually run inside a micro-controller, these limitations do not sound too severe. We would retain all the "syntactic features" of Ada like strong typing, packages, named parameters and so on... that are a strong help in writing correct software. Also, with the limitations above a 8051 Ada code most probably would be also a Spark code.
I have some knowledge about compilers, but not so deep to understand the difficulties of this project and I would like to ask you
1. The most challenging points that you see in such a project, also if I forgot something in the list of "feature to be given up"
2. Some compiler we can start from
3. An estimate of the effort in person-month (you wish...), considering a skilled but inexperienced programmer (like a skilled university student)
Thank you!
Riccardo
next reply other threads:[~2021-03-30 9:04 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-30 9:04 mockturtle [this message]
2021-03-30 9:56 ` Adapting an Ada compiler to generate 8051 code (Again?! ;-) Dmitry A. Kazakov
2021-03-30 11:24 ` Gautier write-only address
2021-03-30 11:27 ` mockturtle
2021-03-30 12:01 ` Dmitry A. Kazakov
2021-03-31 23:08 ` Randy Brukardt
2021-03-31 23:06 ` Randy Brukardt
2021-03-30 10:40 ` Niklas Holsti
2021-03-30 11:32 ` mockturtle
2021-03-31 23:14 ` Randy Brukardt
2021-04-01 15:07 ` Niklas Holsti
2021-04-01 23:34 ` Randy Brukardt
2021-03-30 11:24 ` Luke A. Guest
2021-03-30 13:28 ` Luke A. Guest
2021-03-30 12:45 ` Björn Lundin
2021-03-30 15:49 ` Shark8
2021-03-30 19:16 ` Paul Rubin
2021-03-30 21:28 ` Luke A. Guest
2021-03-30 21:48 ` Paul Rubin
2021-03-31 4:46 ` Luke A. Guest
2021-03-31 7:19 ` Simon Wright
2021-03-31 23:20 ` Randy Brukardt
2021-04-01 12:22 ` Luke A. Guest
2021-04-01 23:43 ` Randy Brukardt
2021-04-02 0:41 ` Luke A. Guest
2021-03-31 8:23 ` Niklas Holsti
2021-03-31 20:46 ` Gautier write-only address
2021-03-31 21:14 ` Shark8
2021-03-31 21:25 ` Gautier write-only address
2021-03-31 21:46 ` Shark8
2021-03-31 23:22 ` Randy Brukardt
2021-04-01 13:19 ` Luke A. Guest
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox