[sdiy] OT: uC Development Environments

Jay Schwichtenberg jschwich53 at comcast.net
Thu Mar 5 23:06:51 CET 2020


Setup generator. A number of the Eclipse based environments have windows 
that show the processor or board that you've selected. You can then 
select a multi-use pin and say it's a serial or SPI or ... interface. It 
will then generate setup code and load a driver for that pin/peripheral. 
I usually go through the drivers and sometime the setup code after it's 
generated to clean up, optimize and fix.

Other than doing  Arduino boards directly the Arduino IDE isn't 
something I would use. For me it's pretty much way at the bottom of the 
list because as you said it limits what you can do easily and it's not 
really C.

Interrupts can be tricky but a lot depends on what your doing, the 
resources available and the timing requirements. Some times you can do 
every thing in the ISR, sometimes a DPC (Deferred Procedure Call, even 
though this is a Windows thing you do it else where too), sometimes 
semaphores/mutexes are needed, sometimes queues are needed and on and on.

Happy coding.
Jay S.

On 3/4/2020 11:34 PM, Gordonjcp wrote:
> On Wed, Mar 04, 2020 at 03:08:52PM -0800, Jay Schwichtenberg wrote:
>> Gordon,
>> That works. But I would prefer an environment that has some sort of setup
>> generator.
> Not sure what you mean by "setup generator"?
>> I've found that typically if you have to write setup code and drivers for
>> the peripherals you use that can take significantly more time then writing
>> the application. That being said I usually leave the setup code alone and
> If you're using the Arduino libraries you'll very soon run up against limitations that stem from making it "easy to use" and "works on everything" that get in the way of "doesn't do weird shit".
> For ARM you really need to look at libopencm3, but I'm not sure if anything similar exists for AVR8.
> On AVR8 I tend to end up writing everything on bare metal eventually without using anything more than stdlib functions, particularly for things like interrupt handlers where I've generally got a very very specific thing I want it to do - like, for serial interrupts, if it's handling MIDI it has to do the MIDI clock task *right now* right there in the handler, and not queue that byte.
> Trying to do DSP on an 8-bit 16MHz chip that has only add, subtract and 8x8 unsigned multiply is quite a challenge, and the only reason I bother writing synth code for AVR8 is probably the same reason I like Rubik cubes.

More information about the Synth-diy mailing list