Severin Teona - SAOC Milestone 3 Update 4 - Druntime for Microcontrollers
Severin Teona
teona.severin9 at gmail.com
Mon Dec 21 16:23:09 UTC 2020
Hi all!
This is my last update of the 3rd Milestone in #SAoC2020.
My last post is at [1]. The original plans for this week were to:
- solve the problems I had with my emulator to have a working
testing environment;
- versioning the DRuntime, if the application would be working
correctly;
- if any error appear, I would dig in the current setup to solve
the problems.
Since last week, I did the following:
- I changed the version of renode (until last week, I was using
the last stabe release of renode, and from now on I will be using
the master repository directly - the support for the
STM32F4-based board is better on the master repo).
- I tried emulating the simple application I managed to link the
previous week, but I had some errors;
- I tried running the application directly on the development
board (in theory it should have fit, because the size of the
application was smaller than 2MB), but it ended in some errors;
- I started debugging the application and I discovered some
problems with the memory alignment (long story short, the final
userspace application was not aligned in a manner that the TockOS
kernel process could load it correctly). I managed to resolve
this problem by making some sections 16-bytes aligned.
- I managed to run on the microcontroller a simple application
that does not need the DRuntime but is linked with it.
- I tried running an application that does this: `auto x = new
int;` but I had errors.
- I updated the testing environment using Docker [2]
I do not know how much will I be able to do the next month and I
am pretty sure this project will not end when #SAoC2020 ends, but
the next steps for me are:
- start debugging the current DRuntime and find where the errors
come from;
- as the DRuntime is a shared library that automatically starts
the GC and the DRuntime I am working with is a static library, my
mentor suggested that I could try to manually call the
`Runtime.initialize()` from my application to start de GC. I will
focus my work on this.
[1]:
https://forum.dlang.org/post/xqiaphttdtbohfmwwppm@forum.dlang.org
[2]: https://github.com/DLang-IoT/renode_tester.git
More information about the Digitalmars-d
mailing list