X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/0c40ef8897448c56709bd26fb766c6e30635eea9..0091b3c819f96812933e4b0a0e5b01a023341771:/Bootloaders/Printer/BootloaderPrinter.txt?ds=inline diff --git a/Bootloaders/Printer/BootloaderPrinter.txt b/Bootloaders/Printer/BootloaderPrinter.txt index a2c661dce..cfa51d4cf 100644 --- a/Bootloaders/Printer/BootloaderPrinter.txt +++ b/Bootloaders/Printer/BootloaderPrinter.txt @@ -54,6 +54,12 @@ * When the bootloader is running, the board's LED(s) will flash at regular intervals to distinguish the * bootloader from the normal user application. * + * \section Sec_Running Running the Bootloader + * + * This bootloader is designed to be started via the HWB mechanism of the USB AVRs; ground the HWB pin (see device + * datasheet) then momentarily ground /RESET to start the bootloader. This assumes the HWBE fuse is set and the BOOTRST + * fuse is cleared. + * * \section Sec_Installation Driver Installation * * This bootloader uses the Generic Text-Only printer drivers inbuilt into all modern operating systems, thus no @@ -104,12 +110,18 @@ * #define BOOTLOADER_MAGIC_SIGNATURE 0xDCFB * * #define BOOTLOADER_CLASS_SIGNATURE_START (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 4)) - * #define BOOTLOADER_CDC_SIGNATURE 0xCDC1 + * #define BOOTLOADER_PRINTER_SIGNATURE 0xDF20 * * #define BOOTLOADER_ADDRESS_START (BOOTLOADER_API_TABLE_START + (BOOTLOADER_API_TABLE_SIZE - 8)) * #define BOOTLOADER_ADDRESS_LENGTH 4 * \endcode * + * From the application the API support of the bootloader can be detected by reading the FLASH memory bytes located at address + * \c BOOTLOADER_MAGIC_SIGNATURE_START and comparing them to the value \c BOOTLOADER_MAGIC_SIGNATURE. The class of bootloader + * can be determined by reading the FLASH memory bytes located at address \c BOOTLOADER_CLASS_SIGNATURE_START and comparing them + * to the value \c BOOTLOADER_PRINTER_SIGNATURE. The start address of the bootloader can be retrieved by reading the bytes of FLASH + * memory starting from address \c BOOTLOADER_ADDRESS_START. + * * \subsection SSec_API_MemLayout Device Memory Map * The following illustration indicates the final memory map of the device when loaded with the bootloader. * @@ -148,11 +160,20 @@ * +----------------------------+ FLASHEND * \endverbatim * - * Bootloaders reporting a device release revision number of 1.00 or greater are bootloader API enabled. From the application - * the API support of the bootloader can be detected by reading the FLASH memory bytes located at address \c BOOTLOADER_MAGIC_SIGNATURE_START - * and comparing them to the value \c BOOTLOADER_MAGIC_SIGNATURE. The class of bootloader can be determined by reading the - * FLASH memory bytes located at address \c BOOTLOADER_CLASS_SIGNATURE_START and comparing them to the value \c BOOTLOADER_CDC_SIGNATURE. - * The start address of the bootloader can be retrieved by reading the bytes of FLASH memory starting from address \c BOOTLOADER_ADDRESS_START. + * + * \section Sec_KnownIssues Known Issues: + * + * \par On Linux machines, new firmware fails to be sent to the device via CUPS. + * Only a limited subset of normal printer functionality is exposed via the + * bootloader, causing CUPS to reject print requests from applications that + * are unable to handle true plain-text printing. For best results, the low + * level \c lpr command should be used to print new firmware to the bootloader. + * + * \par After loading an application, it is not run automatically on startup. + * Some USB AVR boards ship with the BOOTRST fuse set, causing the bootloader + * to run automatically when the device is reset. In most cases, the BOOTRST + * fuse should be disabled and the HWBE fuse used instead to run the bootloader + * when needed. * * \section Sec_Options Project Options *