Hola,
Soy Sebastián, soporte de RdSS Electrónica. ¿Podrías confirmarme si es que cuando grabas un programa nuevo entra siempre al modo bootloader (queda encendido el led de azul de USB) y lo reconoce como un dispositivo de almacenamiento masivo mostrando el archivo firmware.bin? Por lo que veo sea un problema de CRC. Los micros LPC1XXX son muy exquisitos en cuanto al chequeo del CRC del archivo con el que se van a grabar. Aparentemente el CRC calculado y colocado tanto por los compiladores Keil como GCC, para generar el .bin (el CRC sólo se usa en esta extensión), son calculados "mal" según NXP y deben ser recalculados correctamente antes de ser grabados en el microcontrolador. Por ello, luego de generar su .bin normalmente, debe recalcular y corregir el CRC del archivo .bin. Esto se hace con un programa llamado lpcrc.exe, que está incluido en el CD que acompaña al producto (buscalo en la sección de arcihvos de los proyectos para MicroBuilder).
Si es eso es muy sencillo de solucionar:
Si utilizas Keil uVision 4:
Ir al menú "Flash", luego en la opción "Configure Flash Tools...". Una vez allí seleccionar a la solapa "User", y en ella buscar (en la zona inferior de la pantalla) y tildar las opciones dentro del marco "Run User Programs After Build/Rebuild" escribiendo los siguientes comandos (tenga en cuenta en su caso las rutas para los comandos):
Run #1:
C:\Keil\ARM\BIN40\fromelf.exe --bin -o ./obj/firmware.bin ./obj/blinky.axf
Run #2:
C:\Keil\ARM\BIN40\lpcrc.exe ./obj/firmware.bin
Si utilizas CodeLite:
Debes configurar el Makefile para que al finalizar la compilación ejecute el programa lpcrc, pasándole como argumento la ruta donde esta el archivo .bin que generaste. Allí se recalculará el CRC y se guardará bien en el archivo .bin. Podés ver como se hace la modificación del Makefile tomando como base el archivo que esta en el ejemplo para MicroBuilder (ejemplo que viene precargado en la placa).
Para que te sirva de referencia, siempre que se grabe un programa "corrupto", con mal cálculo de CRC, o que no cumpla con alguna trama de inicialización básica del archivo (.bin ficticio), el microcontrolador NO va a ejecutar lo almacenado sino que va a directamente inicializar el bootloader (en tu caso el USB ya que está con el cable conectado a la PC). Esto es lo que le está ocurriendo cuando comentas de que la placa no reconoce el soft y le vuelve a aparecer en la PC el dispositivo de almacenamiento masivo (esperando de que le grabe algo válido). Todas estas salvedades son aplicables únicamente a la generación y grabación de los archivos .bin. Si trabajas con .hex no hay que tener ningún reparo.
Espero esto sirva para solucionar tu problema sino esperamos tu feedback para continuar indagando porque no logras grabarlo. Así también te recordamos que podés comunicarte por teléfono o mail con nuestro soporte.
Saludos,
Sebastián