Microchip Libraries for Applications (MLA) is a collection of Microchip firmware libraries and demo projects. Not all firmware libraries and demo projects from Microchip are distributed in this package; rather, this package includes a few specific libraries that tend to be used together. By distributing libraries that are used often together, Microchip can provide example projects that integrate the use of multiple libraries. MLA is currently being distributed mainly in the source code form to provide the maximum flexibility for end designers to customize firmware to fit his/her applications.

Microchip Libraries for Applications (MLA) is a collection of Microchip firmware libraries, drivers, demo projects, documentation and utilities for different type of applications including USB, Graphic displays, File I/O (Memory cards), TCP IP, Smartphone and many more.

Not all firmware libraries and demo projects from Microchip are distributed in this package; rather, this package includes a few specific libraries that tend to be used together. By distributing libraries that are used often together, Microchip can provide example projects that integrate the use of multiple libraries.

This library can be downloaded from Michrochip web site: Microchip Libraries for Applications section. Download and install the Microchip Libraries for Applications (MLA) from the Microchip Inc website that support the PC operating system that you are using (Windows, MAC or Linux). At the time of writing this article the current version is MLA v2015-08-10. Michrochip updates from time to time these Libraries, the older versions can be accessed from the Downloads Archive tab. At the time of writing this article the current version is MLA v2015-08-10, figure 1 below shows the included libraries with the PIC they support. For example, the USB library is supported by 8-bit PIC Microcontrollers with USB (PIC16F and PIC18F) and 16-bit PIC Microcontrollers with USB (PIC24 and dsPIC). It shows that this USB library is not supported by 32-bit PIC Microcontrollers (PIC32). PIC32 users should use either the MPLAB® Harmony software suite or the MLA for Legacy Demos for USB.

The demo projects, documentation and utilities are grouped inside the MLA root folder in different folders:

1. apps folder: 

Contains the application examples demonstrating an application which can use one or more middleware libraries or drivers. For starters, you can use these examples and modify them according to your project requirements. The apps folder in the installation directory has structure similar to:

Each folder in turns has it’s own sub-folders. Using the USB apps folder as an example, it has 3 main sub-folders: The device, the factory-demo and the host folders.

The device folder : This folder has various demo examples to implement USB device (slave) applications. This folder has examples for USB audio microphone, USB audio midi, USB bootloaders, USB CDC basic, USB CDC serial emulator, USB composite hid msd, USB HID custom, USB HID digitizer multi touch, USB HID digitizer single touch, USB joystick, USB HID keyboard, USB HID mouse, USB HID UPS, USB MSD internal flash and USB MSD SD Card reader. This folder has some utilities  and drivers as well.

The factory_demo folder: This folder contains pre-programmed demo .hex ready to run in Microchip development boards

The host folder: This folder has various demo examples to implement USB host applications. This folder has examples for USB CDC basic, USB HID keyboard, USB HID mouse, USB MSD Bootloader, USB MSD Data Logger and USB Simple Demo
2. bsp: 

If you are using Microchip’s development boards, this folder contains the board support packages for the hardware dependent code which is common and shared between various application examples.
3. doc:

Contains common documentation, license files, release notes and middleware specific help files.
4. framework:

Contains drivers and various middleware libraries
5. utilities:

Contains common utilities that are used by multiple application examples and\or middleware libraries.
The framework folder which is the sub-folder of the installation root has structure similar to one below: