www.digitalmars.com         C & C++   DMDScript  

D.gnu - D in AVR backend

reply "Marcelo" <mpolitzer.c gmail.com> writes:
Hello I've just successfully lit a LED with a atmega88 using GDC.
(AVR is a 8bit micro controller with 16bits pointers)

I had to change GDC to accept a zero critsize and implemented
these stubs for volatile operations on the memmory mapped IO.

extern (C) void _d_criticalenter() {}
extern (C) void _d_criticalexit() {}

The toolchain is using newlib for now.
My next step is to try making it with the avr-libc, and then get 
the IRQs working with the prologue and epilogue generated by it.

Regards, Marcelo
Sep 21 2013
next sibling parent Manu <turkeyman gmail.com> writes:
On 21 September 2013 19:34, Marcelo <mpolitzer.c gmail.com> wrote:

 Hello I've just successfully lit a LED with a atmega88 using GDC.
 (AVR is a 8bit micro controller with 16bits pointers)

 I had to change GDC to accept a zero critsize and implemented
 these stubs for volatile operations on the memmory mapped IO.

 extern (C) void _d_criticalenter() {}
 extern (C) void _d_criticalexit() {}

 The toolchain is using newlib for now.
 My next step is to try making it with the avr-libc, and then get the IRQs
 working with the prologue and epilogue generated by it.

 Regards, Marcelo
[Like]
Sep 21 2013
prev sibling next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 21 September 2013 10:34, Marcelo <mpolitzer.c gmail.com> wrote:
 Hello I've just successfully lit a LED with a atmega88 using GDC.
 (AVR is a 8bit micro controller with 16bits pointers)

 I had to change GDC to accept a zero critsize and implemented
 these stubs for volatile operations on the memmory mapped IO.

 extern (C) void _d_criticalenter() {}
 extern (C) void _d_criticalexit() {}

 The toolchain is using newlib for now.
 My next step is to try making it with the avr-libc, and then get the IRQs
 working with the prologue and epilogue generated by it.

 Regards, Marcelo
Awesome. Do let me know how you get on. I expect to see links and patches. =) -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Sep 21 2013
prev sibling next sibling parent "eles" <eles eles.com> writes:
On Saturday, 21 September 2013 at 09:34:26 UTC, Marcelo wrote:
 Hello I've just successfully lit a LED with a atmega88 using 
 GDC.
 (AVR is a 8bit micro controller with 16bits pointers)

 I had to change GDC to accept a zero critsize and implemented
 these stubs for volatile operations on the memmory mapped IO.

 extern (C) void _d_criticalenter() {}
 extern (C) void _d_criticalexit() {}
Hey, me too I need that! Mind to share?
Sep 21 2013
prev sibling parent reply Dmitry Olshansky <dmitry.olsh gmail.com> writes:
21-Sep-2013 13:34, Marcelo пишет:
 Hello I've just successfully lit a LED with a atmega88 using GDC.
 (AVR is a 8bit micro controller with 16bits pointers)

 I had to change GDC to accept a zero critsize and implemented
 these stubs for volatile operations on the memmory mapped IO.

 extern (C) void _d_criticalenter() {}
 extern (C) void _d_criticalexit() {}

 The toolchain is using newlib for now.
 My next step is to try making it with the avr-libc, and then get the
 IRQs working with the prologue and epilogue generated by it.

 Regards, Marcelo
Another +1. Would be awesome to see this as a git repo and/or some howto. After all I used to teach folks basics on MCUs with precisely these chips (and then there are *duinos sold everywhere). -- Dmitry Olshansky
Sep 21 2013
parent "eles" <eles eles.com> writes:
On Saturday, 21 September 2013 at 20:00:27 UTC, Dmitry Olshansky 
wrote:

*Just a bump for the OP to see it.*
Oct 01 2013