M522XX Developer's Page

The µTasker project grew up with the Freescale M522XX Coldfires. Although these devices have been surpassed in recent years by the Kinetis Cortex M4/M0+ parts, the M522XX project is still maintained to allow legacy users to be able to benefit from many new features that that have been developed. This is where you can find latest information about this work as well as getting involved with trying out latest pre-release/development code.

Towards the bottom of the page regular code images are made available which can be used by registered M522XX developers, either for early adoption in working projects or for study of the new features and code details. Please send an email to the M522XX address at the bottom of the start side in case you would like to be involved.


µTasker FAT Emulation

- 31.10.2015 This new document explains the use of FAT emulation to allow linear data to be viewed as FAT files at a PC host - either as raw data or as formatted data for easy import into data analysis tools: µTasker - FAT Emulation.

µTasker Spansion S25FL164K Driver with Automatic Erase Suspend and Resume to allow immediate Reading and Programming in other Sectors

- 3.5.2015 During the course of development of a new SPI flash based FAT interface supporting block management and wear-levelling it was identified that the relatively slow SPI Flash erasure times (typically 50ms for a 4k sector) can be a cause of reduced performance when subsequent reading and programming is needed whilst the operation is in progress; in comparision, reading of sectors is limited only by the communication speed and programming sectors is subject to a programming time of about 1.5ms.

See the µTasker S25FL164K Driver discussion concerning the the use of automatic suspend and resume control for details of how reads and write interrupt erasures in progress to ensure fast and efficient operation.

USB Composite Devices

- 2.3.2015 The µTasker USB device support includes USB-CDC, USB-MSD and USB HID mouse and keyboard. These can however be flexibly mixed as composite devices. More details concerning how the desired composite configuration can be controlled by a few defines are available at µTasker USB Device Configuration and keyboard testing, including also an interesting keyboard test that is built into the framework.

What does MAC OS X do when external drives are connected?

- 6.2.2015 USB-MSD is popular as a method of upgrading software to embedded devices. This is due to the fact that USB-MSD doesn't require a driver to be installed (this is getting more complicated - ex. with Windows 8 which will only accept signed drivers without awkward workarounds) and also because the in-built file manager can be used to see existing software in the device (assuming this is supported by the device's software). Copying new firmware to what the PC sees as an external hard drive is quick and easy (drag-and-drop can be used as standard) and so no special software is require on the PC for this confortable operation. The result is that if a file can be distributed containing the new firmware anyone with a PC can load it to the device without needing to use any non-standard software, and on any platform.
Read more details at µTasker USB-MSD Loader MAC OS X Compatibility

SSL/TLS Security for IoT Devices

- 28.1.2015 The following page follows investigations into the integration of an SSL/TLS security layer in the µTasker project, particularly in light of developments targeting the IoT (Internet Of Things).

M522XX Development Code Archive

  • Registered developers can use the following passwords for code extraction.

  • 16.11.2015 Complete [3.23MBytes] - Adds:
    - IGMP
    - utFAT2.02
    - Integrated FreeMaster USB/serial support with additional write support in internal and/or external SPI Flash (provisional implementation)
    - Composite USB-MSD serial loader configuration
    - Ethernet Boot Loader added
    - KBOOT 1.0.2 HID mode added to serial loader
    - KBOOT serial mode option added to serial loader
    - USB-MSD loader full MAC OSX and Windows 8.1 compatibility
    - Display worst-case stack use depth
    - Optional AN2295 Freescale Developer's Serial Bootloader compatibility mode added to the serial loader
  • If there is an error in mass_storage.c due to missing EMULATED_FAT_LUMS add this in its define section:
    #if !defined EMULATED_FAT_LUMS
        #define EMULATED_FAT_LUMS            DISK_COUNT
    In fnPutFlashAdd() in M5223XSim.c change RAM_START_ADDRESS at line 944 with FLASH_START_ADDRESS.

    Add the following at the end of usb.h (before final #endif) if using USB and CodeWarrior so that padding is diabled outside of the file.
    #if defined _CODE_WARRIOR_CF                                             // ensure alignment continues outside of this file
        #pragma pack(0)

    Note that SPI_FILE_SYSTEM is enable in the application by default.

  • 02.11.2015 Complete [4.5MBytes] - Adds:
    - Emulated FAT
    - HID raw USB device support added
    - USB HID keyboard mode
    - Multiple USB-CDC interfaces added, also in combination with other composite classes
    - Composite USB device configurations added (mixtures of USB-MSD, USB-HID (mouse or keyboard) and (mutiple) USB-CDC)
    - USB IN/OUT endpoints can share a single Coldfire USB controller endpoint
  • 20.10.2015 Complete [4.6MBytes] - Adds:
    - Long File Name delete added using define UTFAT_LFN_DELETE
    - New I2C simulation devices (PCA9539, PCF2129A)
    - define HTTP_POST_DEFINES_PAGE allows user file to be served as specified by the file name in a POST, rather than special uFile name
    - define HTTP_SET_USERFILE_START_PAGE allow a specific user file to act as HTTP default start side
    - define HTTP_SERVE_ONLY_USER_FILES allows serving exclusively user files - if a defined user file is not found display 404 error rather than a uFileSystem equivalent
    - Ethernet bridging support
    - Buzzer output simulation (eg. for use with keypad)
    - Frontpanel simulation support with connection of keys and LEDs to ports - including external I2C port expanders
    - User button simulation in front-panel and configurable frontpanel image
    - x,y coordinates shown when mouse is on keypad/front panel
    - TCP/IP stack adapted for multiple interface and multiple network support - see http://www.utasker.com/forum/index.php?topic=1748.0 for details about application compatibility.
    - FTP client only commands ASCII or Binary modes when it is not know in which mode it is presently in and a change is needed
    - FTP client Listing and Getting requires both the server's success response and the data connection to be closed before terminating and informing of success
    - FTP client now supports operation with servers over IPv6
    - Reset TCP connections when SYN (without ACK) received on connected TCP port.
    - Optional polling of SD card to detect removal during operation (by reading a sector), by polling card detect switch, or based on card detect switch interrupt (see http://www.utasker.com/forum/index.php?topic=1747.msg6270#msg6270)
    - Managed read and managed write support added
    - uTaskerV1.4 project uses a new include file for debug.c called debug_hal.h. This includes some hardware specific functions allowing easier management of processor and hardware target types
    - MEMORY_DEBUGGER adds a memory debugger (memory display, memory modify and memory fill) to the command line interface
    - PHY_POLL_LINK support for designs without PHY interrupt line
    - Add Micrel PHY SMI mode
    - uTaskerCombine has new optional srec output as well as srec/ihex offset parameter
    - DHCP_HOST_NAME option for DHCP
    - Respect peer's MSS when sending HTTP frames
    - TCP polling timer enabled only when required by a socket
    - Optional high resolution TCP polling timer resolution (T_TCP_PERIOD)
    - Don't reply to NetBios requests when DHCP is still resolving
    - _EXTENDED_HTTP_MIME_CONTENT_SUPPORT activates HTTP content-type to be added to HTTP header
    - Magic Ethernet frame reception support added
    "The define _MAGIC_RESET_FRAME enables magic frame checking support.
    Initially no checking is done until it is enabled by calling fnEnableMagicFrames(1).
    It can later be disabled if require by calling fnEnableMagicFrames(0).
    When active, each received Ethernet frame is checked directly in the receive interrupt routine for Ethernet payloads of 93 bytes in length.
    The definition of _MAGIC_RESET_FRAME determines the magic frame pattern that is expected (repeated 16 bit value) - for example
    #define _MAGIC_RESET_FRAME        0x1234
    A magic frame must then contain this value repeated 24 times in the first 60 bytes of the payload (following the two Ethernet II MAC addresses) in order to be recognised.
    The 61st byte in the frame can then be used as code to trigger an action. The value 0x01 causes the board to reset and place a code in the boot loader mail box so that the boot loader can recognise that the board was reset via use of a magic frame. The boot loader will normally remain in the boot loader mode (possibly for a limited period of time) to allow software updates to be accepted.
    The final 32 bytes of the frame are undefined and can have any pattern. The user can use these as optional information bytes if required (for example, there is adequate space to pass 2 IPv6 addresses for special configuration purposes, etc.)
    The handling interface has to be supplied by the user (eg. in application.c) as follows:
    extern void fnMagicFrame(unsigned char ucType, unsigned char usOptionalDate[32]) {}"
    - ELZET80 Network-Utility for discovery and commanded reset to boot loader mode
    - Add IP multicast rx and tx
    - Added general purpose routine uReverseMemcpy() [same as memcpy but in reverse order - useful when right-shifting buffers]
    - PARAMETER_NO_ALIGNMENT option to improve parameter block efficiency when byte writes are not needed (the application must write aligned blocks)
    - Memory debug interface improved and extended with storage display and modification capabilities
    - Encrypted SD card loader support
    - Updated extended file system to require the user to avoid using more that 61 blocks in the standard range and changed from "ZXXX" to "zXXX".
    - Optional multiple FTP sessions supported (FTP_CONNECTIONS defines the quantity) 2 allows operation with FTP clients that require more than one for file transfers (such as Internet Explorer).
    - TELNET client
    - Updated SNMPv1/V2c for enterprise MIB operation
    - Software FIFO (queue) driver added
    - Microchip ENC624J600 driver allowing dual-port Ethernet operation on parts with Ethernet or Ethernet extension for parts without
    - Spansion S25FL SPI flash driver added with automatic suspend/resume to interrupt sector erasure
    - Modbus ASCII possible on multiple USB-CDC interfaces, together with command line menu and USB-UART bridges on further CDCs.
    - Optional out-of-order TCP frame input buffer (USE_OUT_OF_ORDER_TCP_RX_BUFFER)
    - Time keeper module added which controls RTC, time-zones, daylight saving, time conversions, display and SNTP operation (based on simple second counter or RTC)
    - IGMP    
Return to the M522XX landing page

µTasker M522XX Development. Copyright (c) 2004..2015 M.J.Butcher Consulting