Problema con compilador uVision y microcontrolador AT89C2051

Hola, estoy trabajando en un proyecto de un Interruptor Horario Programable y estoy usando el microcontrolador AT89C2051 y el compilador uVision v5. El problema está en que a la hora de seleccionar el tipo de memoria de programa en las opciones para este micro como se muetsra en las imágenes adjuntas, el compilador me da error, solamente me compila correctamente cuando selecciono el código de tipo Large 64kB y desmarco la opción Use On-Chip ROM, pero cuando voy a cargar el código al micro con el MiniPro me da error de Out of Memory porque carga el código a partir de la 800h (el AT89C2051 solo llega hasta la 7FFh), por lo que está cargando el código en la supuesta memoria externa (que no la soporta este micro). No he podido hacer que el compilador me genere el HEX correctamente con el código a ejecutar en la ROM interna del micro. Me vendría bien cualquier ayuda con esto. Saludos.
 

Adjuntos

  • 1.jpg
    1.jpg
    277 KB · Visitas: 12
  • 2.jpg
    2.jpg
    273.1 KB · Visitas: 14
  • 3.jpg
    3.jpg
    290.5 KB · Visitas: 11
  • 4.jpg
    4.jpg
    267.7 KB · Visitas: 9
  • 6a.jpg
    6a.jpg
    191.1 KB · Visitas: 7
  • 7a.jpg
    7a.jpg
    192.9 KB · Visitas: 5
Nunca he usado ese compilador solo usé en s día SDCC y no había ningún problema.
Deberías de leer el manual.
A lo mejor no compila porque no cabe en 2kB
 
Nunca he usado ese compilador solo usé en s día SDCC y no había ningún problema.
Deberías de leer el manual.
A lo mejor no compila porque no cabe en 2kB
El código que estoy generando inicialmente para probar que compila bien es bastante simple, ocupa solo 532 bytes aproximadamente de la memoria de programa, por lo que cabe perfectamente en la ROM interna. (2Kb)
Estoy usando el uVision porque la versión que tengo soporta una gran cantidad de dispositivos con núcleos de 8051 de varios fabricantes, y tengo unos cuantos dispositivos variados.
Saludos.
 
Fijate que en la segunda imagen no tenés tildada la opción "Use on-chip ROM" 0x0 - 0x7ff. Si lo tenés en la primera imagen del uC AT89C1051.

Sobre el Keil, lejos uno de los mejores entornos de desarrollo que utilicé, lástima que es pago después de cierto tamaño de código.
 
Última edición:
Fijate que en la segunda imagen no tenés tildada la opción "Use on-chip ROM" 0x0 - 0x7ff. Si lo tenés en la primera imagen del uC AT89C1051.

Sobre el Keil, lejos uno de los mejores entornos de desarrollo que utilicé, lástima que es pago después de cierto tamaño de código.
En las imágenes muestro todas las opciones que he probado, en la primera imagen se muestra la prueba que hice marcando la opción de Use On-Chip ROM, y en la segunda desmarcando esta opción. También he probado cambiando el Code ROM Size, pero como ya mencioné, la única opción que me compila correctamente es marcando el Code ROM Size de tipo Large 64kB y desmarcando la opción Use On-Chip ROM, pero tengo el problema que ya cité: A la hora de cargar el código con el MiniPro me da error de Out of Space en ROM porque me lo carga a partir de la 800h. No he podido resolver este problema, por lo que estoy pensando pasar al compilador µC para 8051. Saludos.
 
La primera imagen la tomé probando diferentes modelos de microcontroladores con diferentes capacidades de ROM para ver como se comportan las direcciones de memoria, así fue como determiné que el código me lo estaba generando a partir de la 800h (probando con un AT89C4051). Creo que puede ser algún error del compilador que etsoy usando o alguna limitación que tenga el mismo. He probado con otros dispositivos como el ADuC842 de Analog Devices y me compila bien. De todas maneras para el AT89C2051 voy a usar el MikroC para 8051 a ver si todo me va bien. Saludos.
 
Arriba