Latest commits (Ultibo core 1.1.127)

Releases, updates and announcements from the Ultibo team.
User avatar
Site Admin
Posts: 2217
Joined: Sat Dec 19, 2015 3:49 am
Location: Australia

Latest commits (Ultibo core 1.1.127)

Postby Ultibo » Wed Apr 27, 2016 5:39 am

The latest commits for Ultibo core are now available on GitHub. Changes include DMA controller support, bug fixes and new functionality.

Brief list of changes:

  • Fix USBControlRequest wait until request is cancelled on timeout
  • Fix File system driver FindNextFile always returned False even on success and did not set GetLastError on failure
  • Fix File system driver FindFirstFile did not set GetLastError on failure
  • Fix Raspberry Pi Zero activity LED reversed
  • Fix Winsock/Winsock2 overloaded versions of getsockopt/setsockopt not typecasting parameters causing endless loop
  • Fix Missing GetProcessID and GetThreadID in system unit (Required for some packages)
  • Add GetDefault/SetDefault for many device types
  • Add UART unit skeleton to make the serial unit generic (Allow for USB serial etc)
  • Add DMA device unit and DMA driver for Raspberry Pi
  • Add DMA support for many console drawing functions
  • Other fixes, improvements and additions for networking and new drivers that are still in progress
DMA (Direct Memory Access) support:

The DMA implementation includes a generic DMA device unit which provides the API as well as a DMA controller driver for the specific functionality of the Raspberry Pi. This is a complete implementation and includes support for all available channels, memory fill and copy operations, peripheral read and write operations as well as 2D stride copy. All DMA transfers are interrupt driven and a thread can either wait for completion or pass a callback function to be alerted when the transfer completes.

The API includes a number of simplified wrapper functions in the Platform unit such as:

  • DMAAvailable - Check if DMA is available
  • DMAFillMemory - Fill a block of memory with a byte value using DMA
  • DMACopyMemory - Copy one block of memory to another using DMA
  • DMAAllocateBuffer - Allocate a block of memory compatible with DMA controller requirements
  • DMATransfer - Perform a customized DMA transfer such as a list of blocks to copy and parameters for each block
See the comments in the header of each function for details of the required parameters, for more advanced requirements the DMA unit itself includes additional functions to customize the transfer parameters and behaviour. The console unit has been updated to take advantage of DMA transfers for many operations (Fill, Clear, Scroll, Line, Box etc) and provides a working example of how to use much of the functionality.

The DMA functionality will form the basis for a number of future features including graphics support and certain peripheral devices.

For details of how to apply the latest source to your Ultibo core installation and rebuild your run time library see the wiki page Building from Source. | Make something amazing

Return to “Ultibo”

Who is online

Users browsing this forum: No registered users and 1 guest