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. |
Protocol Stacks and Middleware | ||
LwIP | Enet Lwip CPSW 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. |
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) | ||
Memory Configurator | Memory Configurator | Memory Configurator is a tool which provides option to choose critical parameters to generate linker files for a seamless, hassle-free experience. |
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 |
kernel/ | NO RTOS and RTOS kernel and Driver Porting layer (DPL) for these environments |
networking/ | LwIP 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 |
kernel/ | NO RTOS and RTOS kernel 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/ccs1281 | Code composer studio |
C:/ti/sysconfig_1.21.2 | 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_4.0.1.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/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum
This user guide is generated using doxygen, v1.8.20. See https://www.doxygen.nl/index.html