23.3.4.24 .ramfunc Section

The linker now dynamically collects the 'ramfunc' attributed and ".ramfunc" named sections and allocates them sequentially in an appropriate range of memory. The first ramfunc attributed function is placed at the highest appropriately aligned address.

The presence of a ramfunc section causes the linker to emit the symbols necessary for the crt0.S start-up code to initialize the PIC32 bus matrix appropriately.

/*    
 * RAM functions go at the end of our stack and heap allocation.
 * Alignment of 2K required by the boundary register (BMXDKPBA).
 *
 * RAM functions are now allocated by the linker. The linker generates
 * _ramfunc_begin and _bmxdkpba_address symbols depending on the
 * location of RAM functions.
 */

_bmxdudba_address = LENGTH(kseg1_data_mem) ;
_bmxdupba_address = LENGTH(kseg1_data_mem) ;