procdefs.ld is the file you typically modify.
Method 1 – Copy In Both Linker Scripts & Modify
Copy the file “elf32pic32mx.x” from to your project directory from “C:\Program Files\Microchip\MPLAB C32\pic32mx\lib\ldscripts\”
Rename it “elf32pic32mx.ld”
Add it to your project (must be added prior to the next linker script so it is treated as the main script)
Open it and change the line “INCLUDE procdefs.ld” to “INCLUDE my_procdefs.ld”
Copy the procdefs.ld linker script for the device your using to your project directory from “C:\Program Files\microchip\mplabc32\pic32mx\lib\proc\”
Rename it to my_procdefs.ld
Add it to the project.
Method 2 – Only copy 1 linker script but don’t include in project
Copy the procdefs.ld linker script for the device your using to your project directory from “C:\Program Files\microchip\mplabc32\pic32mx\lib\proc\”
Do not rename it and do not add it to the project (requried)
Edit the procdefs.ld file in your project folder so it has your required changes.
You have to take the advice above literally. Put a procdefs.ld, edited to meet your needs in your project folder, but unlike C18/C30, you do not include this file in MPLAB. C32 has two linker files. There is an overly generic file that describes a few common features for all PIC32’s (elf32pic32mx.*), then procdefs.ld, which is specific to your device and in this case specific to your project. The main linker file is assumed by the IDE just like the case where you are using the generic linker files. By virtue include search path priorities, your modified procdefs.ld will be found by the primary linker file since it will search your project directory first.
If you include this file in your project you get errors since procdefs.ld expects definitions in the other linker file to be present before it’s parsed
View > Memory Important Note
If you change a linker script and then rebuild the memory view is only updated by being overwritten. If you change a linker address so that an area of memory is no longer used then the old value will remain there after a build. Right click and use “Fill Memory” first to get round this.