Wednesday 28 December 2016

Binary Option Atmel

Uso del programa avrdude Nota Esta sección fue aportada por Brian Dean bsdb. nospm. Sdho. nospm. Me. co. nospm. M. Anteriormente, el programa avrdude se llamaba avrprog. El nombre fue cambiado para evitar la confusión con el programa avrprog que Atmel se envía con AvrStudio. Avrdude es un programa que se utiliza para actualizar o leer las memorias flash y EEPROM de los microcontroladores Atmel AVR en FreeBSD Unix. Soporta el protocolo de programación en serie de Atmel utilizando el puerto paralelo de PC y puede cargar un archivo binario sin formato o un archivo de formato Hex de Intel. También se puede utilizar en un modo interactivo para actualizar individualmente las celdas EEPROM, bits de fusible y / o bits de bloqueo (si su acceso está soportado por el protocolo de programación en serie de Atmel). La memoria de instrucción de flash principal del AVR también se puede programar en Modo interactivo, sin embargo esto no es muy útil porque sólo se puede desactivar los bits. La única manera de activar los bits flash es borrar toda la memoria (usando la opción avrdude s - e). Avrdude es parte del sistema de puertos de FreeBSD. Para instalarlo, simplemente haga lo siguiente: Una vez instalado, avrdude puede programar procesadores utilizando el contenido del archivo. hex especificado en la línea de comandos. En este ejemplo, el archivo main. hex se graba en la memoria flash: La opción - p 2313 permite a avrdude saber que estamos operando en un chip AT90S2313. Esta opción especifica el id del dispositivo y se hace coincidir con el dispositivo del mismo id en el archivo de configuración de avrdude (/ usr / local / etc / avrdude. conf). Para enumerar partes válidas, especifique la opción - v. La opción - e indica a avrdude que realice un borrado de chip antes de programarlo casi siempre es necesario antes de programar el flash. La opción - m flash indica que queremos cargar datos en la memoria flash, mientras que - i main. hex especifica el nombre del archivo de entrada. La EEPROM se carga de la misma manera, la única diferencia es que utilizaría - m eeprom en lugar de - m flash. Para usar el modo interactivo, utilice la opción - t: Generado automáticamente por Doxygen 1.8.7 el mar 12 ago 2014.vAVRdisasm es un desensamblador de firmware de 8 bits de Atmel AVR. Este desensamblador de una sola pasada puede leer los archivos con formato Atmel Genérico, Intel HEX8 y Motorola S-Record que contienen los binarios válidos del programa AVR. Soporta todas las 142 instrucciones de AVR de 8 bits como se define en la revisión 0856I-AVR-07/10 del conjunto de instrucciones AVR Atmel. VAVRdisasm ofrece un puñado de opciones de formato, incluyendo: Imprimir la dirección de la instrucción junto con el desensamblaje, habilitada por defecto Imprimiendo la dirección de destino de las instrucciones de ramificación / salto / llamada relativas como comentarios junto con el desensamblaje. Direcciones de palabra de datos de DW para datos no reconocidos como una instrucción durante el desmontaje Entrada y salida de canal vAVRdisasm debería funcionar en la mayoría de las plataformas nix, Incluyendo un entorno Cygwin o MinGW. VAVRdisasm fue escrito por Vanya A. Sergeev, y probado con el compilador GNU C en Linux. Siéntase libre de enviar cualquier idea o sugerencia a vsergeev en gmail dot com. Soporte de compilación de Visual Studio 2008 añadido por Hermann Seib. VAVRdisasm se publica bajo la Licencia Pública General GNU Versión 3. en el directorio del proyecto vAVRdisasm debería compilar vAVRdisasm en la mayoría de los sistemas nix, incluyendo un entorno Cygwin o MinGW. El Makefile está configurado para utilizar GCC para compilar vAVRdisasm. VAVRdisasm no debería tener ningún problema de ser compilado con gmake. Opción - t o --file-type vAVRdisasm reconocerá automáticamente los archivos Atmel Genérico, Intel HEX8 y Motorola S-Record. Sin embargo, la opción - t o - file-type se puede utilizar para seleccionar explícitamente el formato de archivo y para especificar un archivo de entrada binario sin formato. El argumento de tipo de archivo para esta opción puede ser genérico, ihex, srecord o binario, para Atmel Genérico, Intel HEX8, Motorola S-Record y archivos binarios sin procesar, respectivamente. Opción - o o --out-file ltgt Especifique un archivo de salida para escribir en lugar de la salida estándar. El archivo de salida - es también para la salida estándar. Opciones --data-base-hex. --data-base-bin. --data-base-dec vAVRdisasm usará por defecto el formato de constantes de datos en hexadecimal. Sin embargo, las constantes de datos se pueden representar en una base diferente con una de las siguientes opciones: --data-base-hex. --data-base-bin. Y --data-base-dec. Opciones --no-direcciones. --no-destino-comentarios. --no-opcodes De forma predeterminada, vAVRdisasm imprimirá las direcciones de instrucción junto con el desensamblaje, los opcodes originales junto con el desensamblaje y los comentarios de destino para instrucciones relativas de ramificación, salto y llamada. Estas opciones de formato se pueden desactivar con --no-addresses. --no-opcodes. Y --no-destino-comentarios. Opción - l o --address-label Opciones - h o --help. - v o --version La opción - h o --help imprimirá un breve resumen de uso, incluidas las opciones del programa y los tipos de archivo admitidos. La opción - v o --version imprimirá la versión de los programas. Si encuentra errores o problemas, envíe un problema en GitHub o notifíquele al autor por correo electrónico, vsergeev at gmail dot com. Etiquetas de dirección del ghetto vAVRdisasm admite una característica de formato única: Etiquetas de dirección del gueto, que pocos, si no ninguno, desensambladores de un solo paso implementan. Con la opción - l o - address-label y un prefijo suministrado, vAVRdisasm imprimirá una etiqueta que contiene el prefijo no numérico suministrado y la dirección de la instrucción desensamblada en cada instrucción. Además, todas las instrucciones relacionadas de ramificación, salto y llamada se formatearán para saltar a su etiqueta de dirección designada. Esta característica permite el reensamblaje directo del desmontaje de vAVRdisasms. Esto puede ser especialmente útil para la modificación rápida del código del ensamblaje del programa AVR sin tener que formatear manualmente el desensamblaje o ajustar las distancias relativas de ramificación, salto y llamada con cada modificación del desensamblaje. La opción - l o - address-label reemplaza la impresión predeterminada de las direcciones junto con el desensamblado. El desmontaje de vAVRdisasms incluirá etiquetas de dirección que se verán de la siguiente manera: A0000: Para muestras de desmontaje de salidas por vAVRdisasm, vea la sección Sample Disassembly Outputs. VAVRdisasm no muestra versiones alternativas de la misma instrucción codificada. Esto significa que la instrucción cbr nunca se mostrará en el desensamblaje, porque la instrucción andi lo precede en prioridad. Estas características no afectan la precisión de la salida de desensambladores, y pueden ser compatibles en versiones futuras de vAVRdisasm. VAVRdisasm utiliza libGIS. Una librería de Atmel Generic, Intel HEX y Motorola S-Record Parser para analizar archivos formateados que contengan binarios de programa AVR. LibGIS está disponible de forma gratuita bajo licencias MIT y Public Domain aquí. LibGIS se compila en vAVRdisasm --- no necesita ser obtenido por separado. Ejemplo de salidas de desensamblado Estas muestras de salida, producidas por vAVRdisasm, son un desmontaje del programa de la Guía de Avisos al artículo de AVR Development en el Diario de Aplicaciones de Atmel. La muestra del programa anterior se modificó ligeramente para ilustrar la capacidad de vAVRdisasms para representar constantes de datos en diferentes bases :() AT90S2323 y ATtiny22 usan el mismo algoritmo. () El direccionamiento de flash por encima de 128 KB no es compatible con todo el hardware de programación. Conocidos para trabajar son los programadores jtag2, stk500v2 y bit-bang. () El ATtiny11 sólo se puede programar en modo serie de alto voltaje. () El protocolo de programación del ISP de la AT90S1200 difiere en formas sutiles de la de otros AVR. Por lo tanto, no todos los programadores admiten este dispositivo. Conocidos para trabajar son todos los programadores de bitbang directos, y todos los programadores que hablan el protocolo STK500v2. Anula la velocidad en baudios de conexión RS-232 especificada en la entrada programmerrsquos correspondiente del archivo de configuración. Especifique el período de reloj de bits para la interfaz JTAG o el reloj ISP (sólo JTAG ICE). El valor es un número de punto flotante en microsegundos. El valor por defecto de los resultados de JTAG ICE en un período de reloj de 1 microsegundo, adecuado para MCUs objetivo que se ejecutan a 4 MHz de reloj y superiores. A diferencia de ciertos parámetros del STK500, el JTAG ICE restablece todos sus parámetros a valores por defecto cuando el software de programación se desconecta del ICE, por lo que para los MCUs que funcionan a velocidades de reloj inferiores, este parámetro debe especificarse en la línea de comandos. También se puede establecer en el archivo de configuración mediante la palabra clave rsquodefaultbitclockrsquo. Especifique el programador que se va a utilizar. AVRDUDE conoce varios programadores comunes. Utilice esta opción para especificar cuál utilizar. El parámetro programmer-id es el programmerrsquos id listado en el archivo de configuración. Especifique - c. Para enumerar todos los programadores en el archivo de configuración. Si tiene un programador desconocido para AVRDUDE y el programador se controla a través del puerto paralelo de PC, therersquos una buena posibilidad de que se puede agregar fácilmente al archivo de configuración sin ningún cambio de código a AVRDUDE. Simplemente copie una entrada existente y cambie las definiciones de pin para que coincidan con las del programador desconocido. En la actualidad, se entienden y admiten los siguientes ID de programador: Programador genérico basado en FT2232H Cable Xilinx JTAG Utilice el archivo de configuración especificado para los datos de configuración. Este archivo contiene todas las definiciones de los programadores y partes que AVRDUDE conoce. Si tiene un programador o una parte que AVRDUDE no conoce, puede agregarla al archivo de configuración (asegúrese de enviar un parche al autor para que pueda incorporarse a la siguiente versión). Si no se especifica, AVRDUDE lee el archivo de configuración desde /usr/local/etc/avrdude. conf (FreeBSD y Linux). Consulte el Apéndice A para el método de búsqueda del archivo de configuración para Windows. Si config-file está escrito como nombre de archivo, este archivo se lee después de los archivos de configuración del sistema y del usuario. Esto se puede utilizar para agregar entradas a la configuración sin aplicar parches al archivo de configuración de todo el sistema. Se puede utilizar varias veces, los archivos se leen en el mismo orden que se da en la línea de comandos. Desactiva el borrado automático para flash. Cuando se especifica la opción - U con memoria flash, avrdude realizará un borrado de chip antes de iniciar cualquiera de las operaciones de programación, ya que generalmente es un error programar el flash sin realizar primero un borrado. Esta opción deshabilita eso. La función de borrado automático no se utiliza para los dispositivos ATxmega ya que estos dispositivos pueden utilizar el borrado de páginas antes de escribir cada página, de manera que no se requiere borrar explícitamente el chip. Tenga en cuenta sin embargo que cualquier página no afectada por la operación actual conservará su contenido anterior. Hace que se borre un chip. Esto restablecerá el contenido de la ROM flash y EEPROM al valor lsquo0xffrsquo y borrará todos los bits de bloqueo. A excepción de los dispositivos ATxmega que pueden utilizar el borrado de página, es básicamente un comando de requisito previo antes de que se pueda volver a programar la ROM flash. La única excepción sería que si los nuevos contenidos hicieran que los bits se programaran desde el valor lsquo1rsquo a lsquo0rsquo. Obsérvese que para reprogramar células EERPOM, no se requiere borrado previo explícito de chip, ya que la MCU proporciona un ciclo de auto-borrado en ese caso antes de programar la célula. - E exitspec, hellip Por defecto, AVRDUDE deja el puerto paralelo en el mismo estado a la salida como se ha encontrado en el inicio. Esta opción modifica el estado de las líneas lsquo / RESETrsquo y lsquoVccrsquo del puerto paralelo, de acuerdo con los argumentos exitspec proporcionados, de la siguiente manera: La señal lsquo / RESETrsquo se dejará activada en la salida del programa, es decir se mantendrá baja , Para mantener la MCU en estado de reposición después. Obsérvese en particular que el algoritmo de programación del dispositivo AT90S1200 requiere que la señal lsquo / RESETrsquo esté activa antes de encender la MCU, de modo que en caso de que se utilice una fuente de alimentación externa para este tipo de MCU, una invocación previa de AVRDUDE con esta opción especificada Una de las posibles maneras de garantizar esta condición. La línea lsquo / RESETrsquo se desactivará en la salida del programa, permitiendo así que el programa objetivo MCU se ejecute mientras el hardware de programación permanece conectado. Esta opción dejará activas las clavijas de puertos paralelos (es decir, altas) que se pueden utilizar para suministrar energía lsquoVccrsquo a la MCU. Esta opción tirará de los pines lsquoVccrsquo del puerto paralelo a la salida del programa. Esta opción dejará activas las 8 patillas de datos en el puerto paralelo (por ejemplo, alta). Esta opción dejará inactivas las 8 clavijas de datos en el puerto paralelo (es decir, baja). Los múltiples argumentos exitspec pueden separarse con comas. Normalmente, AVRDUDE trata de verificar que la firma del dispositivo leída de la parte es razonable antes de continuar. Puesto que puede suceder de vez en cuando que un dispositivo tenga una firma de dispositivo rota (borrada o sobrescrita) pero que de otra manera esté funcionando normalmente, estas opciones se proporcionan para anular la comprobación. Además, para programadores como el Atmel STK500 y el STK600 que pueden ajustar parámetros locales a la herramienta de programación (independientemente de una conexión real con un controlador de destino), esta opción puede usarse junto con lsquo - t rsquo para continuar en modo terminal. Para los programadores de tipo bitbang, el retardo de aproximadamente microsegundos de retardo entre cada cambio de estado de bit. Si el sistema anfitrión es muy rápido, o el objetivo se ejecuta fuera de un reloj lento (como un cristal de 32 kHz, o el oscilador RC interno de 128 kHz), esto puede ser necesario para satisfacer el requisito de que la frecuencia de reloj ISP no debe ser superior a 1/4 de la frecuencia de reloj de la CPU. Esto se implementa como un retardo de bucle de spin para permitir incluso los retrasos muy cortos. En los sistemas operativos de estilo Unix, el bucle de rotación se calibra inicialmente contra un temporizador del sistema, por lo que el número de microsegundos podría ser bastante realista, suponiendo una carga constante del sistema mientras se está ejecutando AVRDUDE. En los sistemas operativos Win32, se supone un número preconfigurado de ciclos por microsegundo que podría ser un poco excesivo para máquinas muy rápidas o muy lentas. Use logfile en lugar de stderr para la salida de diagnósticos. Tenga en cuenta que los mensajes de diagnóstico iniciales (durante el análisis de opciones) todavía se escriben en stderr de todos modos. Sin escritura: deshabilita la escritura de datos en la MCU (útil para depurar AVRDUDE). Realice una calibración del tiempo de oscilación del oscilador RC de acuerdo con la nota de aplicación de Atmel AVR053. Esto sólo es compatible con el hardware STK500v2, AVRISP mkII y JTAG ICE mkII. Tenga en cuenta que el resultado se almacenará en la celda EEPROM en la dirección 0. Utilice el puerto para identificar el dispositivo al que está conectado el programador. Normalmente, se utiliza el puerto paralelo predeterminado, pero si el tipo de programador normalmente se conecta al puerto serie, se utilizará el puerto serie predeterminado. Consulte el Apéndice A, Información dependiente de la plataforma, para averiguar los nombres de puerto predeterminados para su plataforma. Si necesita utilizar un puerto paralelo o serie diferente, utilice esta opción para especificar el nombre de puerto alternativo. En los sistemas operativos Win32, los puertos paralelos se denominan lpt1 a lpt3, haciendo referencia a las direcciones 0x378, 0x278 y 0x3BC, respectivamente. Si se puede acceder al puerto paralelo a través de una dirección diferente, esta dirección se puede especificar directamente, usando la notación común en lenguaje C (por ejemplo, los valores hexadecimales están prefijados por 0x). Para el JTAG ICE mkII, si AVRDUDE se ha construido con soporte libusb, el puerto se puede especificar alternativamente como usb: serialno. En ese caso, el JTAG ICE mkII será buscado en USB. Si se especifica serialno, se comparará con el número de serie leído de cualquier JTAG ICE mkII que se encuentre en USB. La coincidencia se realiza después de eliminar todos los puntos colones existentes del número de serie dado y de derecha a izquierda, por lo que sólo se deben dar los bytes menos significativos del número de serie. Para obtener un truco sobre cómo averiguar los números de serie de todas las ICE JTAG conectadas a USB, consulte Ejemplo de invocaciones de línea de comandos. Como el dispositivo AVRISP mkII sólo se puede hablar a través de USB, el mismo método de especificar el puerto se requiere allí. Para el programador USB quotAVR-Doperquot ejecutándose en modo HID, el puerto debe especificarse como avrdoper. El soporte de Libusb se requiere en Unix pero no en Windows. Para obtener más información acerca de AVR-Doper, consulte obdev. at/avrusb/avrdoper. html. Para USBtinyISP, que es un dispositivo simplista que no implementa números de serie, varios dispositivos se pueden distinguir por su ubicación en la jerarquía USB. Consulte la sección Solución de problemas. por ejemplo. Para los programadores que se conectan a un puerto serie usando algún tipo de protocolo de nivel superior (en oposición a los programadores de estilo bit-bang), el puerto se puede especificar como red. anfitrión. Puerto. En este caso, en lugar de intentar abrir un dispositivo local, se establece una conexión de red TCP con el puerto (TCP) del host. Se supone que el punto final remoto es un servidor de terminal o consola que conecta el flujo de red a un puerto serie local al que se ha conectado el programador real. Se supone que el puerto está configurado correctamente, por ejemplo utilizando una conexión de datos transparente de 8 bits sin paridad a 115200 Baud para un STK500. Esta característica no está implementada actualmente para los sistemas Win32. Deshabilita (o suprime) la salida de la barra de progreso mientras lee o escribe en el dispositivo. Especifique una segunda vez para una operación aún más silenciosa. Desactiva el comportamiento por defecto de la lectura de los fusibles tres veces antes de la programación, luego verificando al final de la programación que los fusibles no han cambiado. Si desea cambiar los fusibles, deberá especificar esta opción, ya que avrdude verá que los fusibles han cambiado (aunque quisiera) y los cambiará de nuevo para su quotsafetyquot. Esta opción fue diseñada para evitar casos de bits de fusibles que cambian mágicamente (usualmente llamado safemode). Si uno de los archivos de configuración contiene una línea safemode está deshabilitado de forma predeterminada. En este caso se niega el efecto lsquo-u rsquo optionrsquos, i. mi. Permite safemode. Safemode siempre está deshabilitado para los dispositivos AVR32, Xmega y TPI. Deshabilitar las indicaciones de modo seguro. Cuando safemode descubre que uno o más bits de fusible han cambiado involuntariamente, pedirá confirmación con respecto a si debe o no intentar recuperar el (los) bit (es) de fusible. La especificación de este indicador desactiva el mensaje y asume que los bits de fusible deben recuperarse sin pedir primero la confirmación. Indica a AVRDUDE que entre en el modo ldquoterminalrdquo interactivo en lugar de subir o descargar archivos. Vea a continuación una descripción detallada del modo de terminal. - U memtype. Op. Filename: format Realiza una operación de memoria. Se pueden especificar varias opciones lsquo - U rsquo para operar en múltiples memorias en la misma invocación de línea de comandos. El campo memtype especifica el tipo de memoria para operar. Utilice la opción lsquo - v rsquo en la línea de comandos o el comando part desde el modo terminal para mostrar todos los tipos de memoria soportados por un dispositivo en particular. Normalmente, una configuración de memoria devicersquos contiene al menos los tipos de memoria flash y eeprom. Todos los tipos de memoria actualmente conocidos son: Uno o más bytes de los datos de calibración del oscilador RC. EEPROM del dispositivo. El byte de fusible ampliado. La ROM flash del dispositivo. El byte de fusible en dispositivos que sólo tienen un único byte de fusible.


No comments:

Post a Comment