[Scilab-Dev] code generation for microcontroller target

Matías Silva Bustos masilvabustos at ieee.org
Mon Aug 11 17:56:49 CEST 2014


Hello!.
Sorry about the delay in answering. it was "final exam season" and winter
break in between.

I've just recently been updated about the project's final purpouse.
It must generate code for real time execution on the microcontroller.

In fact, the diagram to be "compiled" represents a discrete time control
system.
This is, not all functions must be implemented, they are limited to
discrete time, quantization, sample/hold and some more.
Other blocks, for example the integral block, are excluded from the code
generation.
This simplifies a lot.

Answered inline.

2014-06-26 9:32 GMT-03:00 Clément David <
clement.david at scilab-enterprises.com>:

[snip]


> > I am about to begin the developement of a coder that takes a xcos
> > diagram and generates C code  suitable to be ran on a ARM Cortex M3
> > uC, a STM32FXXX in particular.
>
> Great ! Do you plan to generate an application using a POSIX-like OS ?
> if not, what's the minimal set of feature of your platform (eg.
> bare-metal, contiki / Osek like, RTEMS, Embedded Linux, Full Linux) ?
>

It'll be bare-metal for now. Since it is a single process, I don't think a
full OS will be necessary. (An ad-hoc OS?)
At most a hardware abstraction layer.

 [snip]


> > b) Should I begin from scratch? I think I can reuse the xcos parser
> > and some other code involving the diagram description.
>
> In my view, to generate code that perform the same way as the simulator
> you have to re-use the cpr structure (help scicos_cpr). The better way
> to kick things off is to start from the current generator and start
> refactor it (it's a nightmare) / implement some code generator templates
> per simulation function.


> Using well design code generator templates will allow you to both reduce
> the actual generated code size and runtime requirements.
>

The limitation in the set of blocks that will actually be implemented makes
this problem very "templatizable".

I will soon push the code into a github repository.

Regards.
Matías Silva Bustos.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/dev/attachments/20140811/429566bf/attachment.htm>


More information about the dev mailing list