1. Sort list of devices, this makes it easier to find a device (Combobox.Sorted := true )Good point!
2. On my installation it is necessary to change the binutils prefix to avr- by passing the -XPavr- switch to the compiler. May be useful to make this option visible somewhere in the wizard. Would be convenient if an automatic check can be done to identify the correct prefix, 2nd best would be to check if current configuration can call avr as (on my machine this is avr-as, could be avr-embedded-as on other machines)Here I'd rather provide suitable binaries. About the prefix, I think an optional one makes things unnecessarily complicated. As you can name the binaries while compilation as you wish. But it might be useful to always use the 'avr' prefix and make that as standard.
3. I prefer it if the programmer action is only added to the "execute after run" option. I compile often as I write code to check for errors and would not want to program the device every time.I wanted to do that, especially for embedded devices a compilation without a combined program upload is quite useful. But I don't know how to tell Lazarus not to search for an executable when pushing "run". Any idea?
4. If a user selects a programmer that requires a serial port parameter then it would be useful if a list of available ports can be presented a la Arduino IDE. Synapse and PascalSCADA have some code to scan for ports on various OS's.Good idea, and with the libs quite easy.
5. Other popular programmers that can be added to the list of programmers: "avrispv2", "arduino" and "usbasp". USBasp doesn't require a port parameter since it runs over USB.Programmers can actually be added very easy, just place a file in the subfolder 'Programmer' and subsubfolder 'AVRDude' or 'Others'. The file name (no file extension) is the programmers name, listet in the dropdown 'programmer'. As content you can write the command line using wildcards. The port parameter by the way is only shown when the corresponding wildcard is used in the file. The files are loaded on programm start.
As summary the critical topics for me are now:Definitely a plugin for creating a new project like jmpessoa's wizard in my opinion. Perhaps preparation/download of cross compiler, binutils etc can be handled in a stand-alone tool.
- Wizard as stand-alone or as Lazarus plugin?
- How to provide the compiler/binutils, as binaries or as build script? In case of binaries how to host?A difficult question. Building from scratch is a bit tricky (I did that) but a build script should make it a whole lot easier. If you bundle everything required as compiled binaries like Arduino then it can become a very large install. If you go this route someone needs to maintain platform specific collections of fpc, avrdude and avr bin utils.
- How to compile the avr-compiler for all different instruction sets?h
Only the RTL has to be compiled for each subarch. I don't know if there's a neat way of doing that without recompiling the compiler, but either way.Indeed, after the initial cross compiler build it is sufficient to build the RTL from the rtl folder for a different subarchitecture:
2. On my installation it is necessary to change the binutils prefix to avr- by passing the -XPavr- switch to the compiler. May be useful to make this option visible somewhere in the wizard.I didn't implement such an option now and I think it's not useful. There should be one standard and I'd stick to the way FPCUpDeluxe is doing it. I think it's -XPavr-embedded- by now.