What is the purpose of some Add-ins?
Why would I need to add the GPIO Driver or SPORT driver for example. I thought I needed to add them, but then I removed them and my application works fine without them?
The DSP header files contain prototypes for all of the DSP library functions. When the appropriate #include preprocessor command is included in your source, the compiler uses the prototypes to check that each function is called with the correct arguments. So while including .h files, the APIs will be link against the prebuilt device drivers library (libdrv.dlb).
While using the Add-in in the system configuration (system.svc), it will add the driver sources to the project (system -> drivers) instead of link against the prebuilt library.
If you are not using the Add-in, it will not cause any issue until you are trying to modify/change the source file.
I'm thinking of modifying a driver (adi_spi_bf6xx.c). I have added the SPI add-on. But the only c-file added to my project is the adi_spi.c.
The adi_spi_bf6xx.c is still in C:\Analog Devices\CrossCore Embedded Studio 2.9.3\ARM\arm-none-eabi\arm-none-eabi\lib\src\cortex-a5\drivers\Source\spi
How do I modify the adi_spi_bf6xx.c? Do I need to copy adi_spi_bf6xx.c into my project (system/drivers/spi)?
Add-in links the corresponding driver file to your project from the installation path. You don't need to copy them into your project.
You can modify file adi_spi_bf6xx.c file which is still in path that you have mentioned. But however we usually don't recommend to modify the driver files since it will cause undefined behavior to your application if you are not aware of modification that you have done.
Before modification,for future reference you can take copy of original driver file adi_spi_bf6xx.c file.