AM64x MCU+ SDK  08.06.00
Introduction

Attention
A53 NORTOS, A53 FREERTOS and A53 FREERTOS SMP support is a experimental feature, see Experimental Features

Welcome to MCU+ SDK for AM64X. This SDK contains examples, libraries and tools to develop RTOS and no-RTOS based applications for ARM R5F, ARM M4F, ARM A53 (single core and SMP on both cores) CPUs and related peripherals.

This SDK also contains examples to interface these ARM R5F, ARM M4F applications with Processor SDK Linux based Cortex-A applications.

Getting Started

To get started, see Getting Started

Migration Information

When migrating from Processor SDK RTOS, see Migration Guides for more details.

Block Diagram

Given below is a block diagram of the SW modules in this SDK,

Software Block Diagram

The main software components in the block diagram are described below

Software Components Documentation Page Description
OS Kernel
No RTOS NO RTOS Contains modules which implement no-RTOS execution environment consisting of timers, ISR, main thread. Allows software on top to run in bare metal mode.
FreeRTOS Kernel FreeRTOS FreeRTOS Kernel, provides a execution environment consisting of tasks, semaphores, timers, see https://www.freertos.org/RTOS.html
FreeRTOS POSIX FreeRTOS Limited POSIX APIs with FreeRTOS underneath, provides pthreads, mqueue, semaphore, see https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_POSIX/index.html
Driver Porting Layer (DPL) Driver Porting Layer (DPL) APIs used by drivers to abstract the OS environment. Example, Semaphore, HW interrupts, mutex, clock.
Device Drivers and HAL (Hardware Abstraction Layer)
SOC Peripheral Drivers SOC Peripheral Drivers Device Drivers library and APIs for peripherals within the SOC. Example, I2C, GPIO, UART.
Board Peripheral Drivers Board Peripheral Drivers Device Drivers library and APIs for peripherals on the board or EVM. Example, Flash, EEPROM.
Industrial Protocol Firmware (FW) HAL Industrial Communications FWHAL Hardware abstraction layer APIs to higher level industrial protocol stacks. Example, EtherCAT FW HAL
Protocol Stacks and Middleware
Motor Control Motor Control Drive protocols for EnDAT, HDSL and Benchmark demo for CFFT, FIR and FOC.
LwIP Enet Lwip CPSW Example Enet Lwip ICSSG Example TCP/UDP IP networking stack
Mbed-TLS CPSW Lwip HTTPS Server Example TLS and SSL protocol implementation with respective cryptographic algorithm support
TinyUSB USB USB device stack. Example, CDC device.
Industrial Protocol Stacks Industrial Communications Toolkit Industrial protocol stacks for protocols like EtherCAT, Profinet, EtherNet/IP
FreeRTOS+FAT FreeRTOS+FAT File System FAT FileSystem which can be used with block devices like SD Card, eMMC
Software Diagnostics Library
SDL Software Diagnostics Library (SDL) Software Diagnostics Libaray
Examples and Demos
Examples and Demos Examples and Demos Examples and demos showing usage of different SW libraries and APIs
Tools (used on host machine)
Code Composer Studio (CCS) Using SDK with CCS Projects IDE used to build projects, debug programs.
TI CLANG Compiler Toolchain TI CLANG HOMEPAGE CLANG based ARM compiler from TI for ARM R5F and M4F
SysConfig Using SDK with SysConfig System configuration tool, used to configure peripherals, pinmux, clocks and generate system initialization code
TI Resource Explorer (TIREX) Using SDK with TI Resource Explorer Web broswer based tool to explore the SDK, select, import and run the examples
SDK Tools and Utilities Tools and Utilities Additional tools and utilities, like flashing tools, booting tools, CCS loading scripts used with the SDK development flow

Directory Structure

Given below is a overview of the directory structure to help you navigate the SDK and related tools.

Folder/Files Description
${SDK_INSTALL_PATH}/
README_FIRST_AM64X.html Open this file in a web browser to reach this user guide
makefile Top level makefile to build the whole SDK using "make"
imports.mak Top level makefile to list paths to dependant tools
docs/ Offline browseable HTML documentation
examples/ Example applications for AM64X, across multiple boards, CPUs, NO-RTOS, RTOS
source/ Device drivers, middleware libraries and APIs
tools/ Tools and utilities like CCS loading scripts, initialization scripts.
${SDK_INSTALL_PATH}/source/
board/ Board peripheral device drivers
drivers/ SOC peripheral device drivers
fs/ File System drivers
industrial_comms/ Industrial Communication Protocol stacks and Industrial Protocol FW HAL(Firmware and Hardware Abstraction Layer)
kernel/ NO RTOS and RTOS kernel and Driver Porting layer (DPL) for these environments
motor_control/ Motor control related encoder libraries like HDSL and EnDATc
networking/ LwIP, ICSS-EMAC, ICSS Timesync and mbedtls_library
security/ Crypto drivers libraries like SA2UL and DTHE
usb/ USB stack and related drivers
pru_io/ PRU related libraries for Serial & Parallel Communication, IPC between PRUs and R5F
${SDK_INSTALL_PATH}/examples/
drivers/ SOC and board level focused device drivers examples. The examples are based on both NO-RTOS and RTOS
empty/ Template projects to copy to your workarea and then modify based on your custom application needs
industrial_comms/ Examples for EtherCAT SubDevice, EtherNet/IP Adapter, IO-Link Controller and Profinet Device
kernel/ NO RTOS and RTOS kernel focused examples
motor_control/ Motor control encoder and benchmark focused examples
networking/ Networking focused examples
security/ Security focused examples
usb/ USB focused examples
pru_io/ PRU I/O Control examples : Interfacing High Speed & High Precision ADCs
${SDK_INSTALL_PATH}/tools/
/ Additional tools and utilities used by the SDK

Given below are the paths where the different tools needed outside the SDK, like CCS, SysConfig are installed by default in Windows. In Linux, the tools are installed by default in ${HOME}/ti.

Folder/Files Description
C:/ti/ccs1210 Code composer studio
C:/ti/sysconfig_1.14.0 SysConfig. NOTE, SysConfig is also installed as part of CCS at ${CCS_INSTALL_PATH}/ccs/utils/sysconfig_x.x.x
C:/ti/ti-cgt-armllvm_2.1.2.LTS TI ARM CLANG compiler tool chain

Licenses

The licensing information of this SDK, as well as any third-party components included which are made available under a number of other open-source licenses are enumerated as part of the manifest. A complete manifest along with export control information is detailed here [LINK] and the SDK Software License Agreement (SLA) is here [LINK]

Help and Support

For additional help and support, see https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum

Documentation Credits

This user guide is generated using doxygen, v1.8.20. See https://www.doxygen.nl/index.html