Otra pregunta, me ha parecido leer que los micros que tiene USB se reserva una porción de memoria para el manejo del USB, ¿viendo el Linker se puede saber a que corresponde cada banco o para que se reserva cada banco?
No del linker no.
Tenes que leer el datasheet, ahi habla que el usuario NO debe tocar el banco 4 (0x400 a 0x4FF), ese banco tiene una porcion para tener tablas de los descriptores:
Bank 4 (400h through 4FFh) is used specifically for endpoint buffer control, while Banks 5 through 7 are available for USB data. Depending on the type of buffering being used, all but 8 bytes of Bank 4 may also be available for use as USB buffer space.
La unica forma que me parecio para reservar memoria para el usuario y no para el USB, es crear una entrada en esa tabla de descriptores ( 4 registros ) que indican inicio, largo y la propiedad de ese espacio.
Pero luego en el programa que use el USB hay que limitarlo para que no lo "pise" a ese descriptor.
Ya que ese pedazo de memoria puede ser accedido tanto por el USB como el micro y tiene un semaforo ( 1 bit ) de esa tabla para indicar a quien pertenece.