AdaCore / gnatstudio

GNAT Studio is a powerful and lightweight IDE for Ada and SPARK.
399 stars 52 forks source link

Feature suggestion: Better documentation of the IDE package in the GPR project file #150

Closed sowebio closed 1 year ago

sowebio commented 1 year ago

In AVR target mode, the communication between the AVR probe and GNAT Studio is TCP/IP based. We need to understand how this communication is established.

We found out that the interface information to the probe has to be placed in the project file, probably in an optional package named IDE. Neither in the GPR Tools User's Guide (please refer to you IDE documentation) nor in the GNAT Studio User's Guide (where only the scripting APIs can be found) is there a list of the attributes of the optional IDE package. To get a better idea of this, one has to search for 'IDE' (with the single quote) in the GNAT Studio User's Guide (22.0w) to indirectly get the list of attributes: Artifacts_Dir (p79), Default_Switches (p170), Program_Host (p291), Communication_Protocol (p291).

Digging into the GNAT Studio sources we also find: Connection_Tool & Connection_Config_File. To find out what values are accepted by the attributes... projects.py tells us more. There are dozens of attributes in the IDE package. For those of interest to us:

Program_Host name/IP:Port Communication_Protocol remote, extended-remote, wtx, dfw, dfw-rtp or qnx Connection_Tool OpenOCD, st-util or pyOCD Connection_Config_File Used only when OpenOCD is set Debugger_Command¹

¹Since the name is avr-gdb, a use Target=avr will do the trick (automatic prefixing of all GCC tool names with "avr-").

FYI, In board_support.py, AVR does not appear in the supported_targets (there are arm, powerpc, riscv, X86_64, leon3 and even 68020!) Also, the Connection_Tool attribute does not support any AVR probe interface.

We would like to see a better documentation of the IDE package in a GPR project file.

One could read this document for proper GNAT Studio AVR settings: https://github.com/sowebio/adam-doc/blob/master/Ada%20Development%20on%20AVR%20Microcontroller.pdf

ogorodnik commented 1 year ago

These preferences are suitable to be changed from GUI. Edit/Project Properties Embedded tab. It contains also descriptions.

board_support.py plugin can be used as an example how to create your own plugin for adding AVR support and provide it with your code on souceforge or put listing in the documentation like you did for creating the aditionl "Avr Ada" menu.

Do not hesitate to ask questions if you will have troubles/questions with how to create plugins. It can me helpful to read GNAT Studio documentation, section 15.5.1 Customization files and plugins.