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.
To get started, see Getting Started
When migrating from Processor SDK RTOS, see Migration Guides for more details.
Given below is a block diagram of the SW modules in this SDK,
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 | LwIP with Ethernet Example | TCP/UDP IP networking stack |
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 |
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 |
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 and ICSS Timesync |
security/ | Crypto drivers libraries like SA2UL and DTHE |
usb/ | USB stack and related drivers |
${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 Slave, EtherNet/IP Adapter, IO-Link Master 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 |
${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/ccs1110 | Code composer studio |
C:/ti/sysconfig_1.11.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_1.3.0.LTS | TI ARM CLANG compiler tool chain |
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]
For additional help and support, see https://e2e.ti.com/support/processors/f/processors-forum
This user guide is generated using doxygen, v1.8.20. See https://www.doxygen.nl/index.html