前 言 3
1 开发环境搭建
2 CCS工程编译与加载
3 FreeRTOS与Baremetal案例
评估板简介
创龙科技TL62x-EVM是一款基于TI Sitara系列AM62x单/双/四核ARM Cortex-A53 单核ARM Cortex-M4F异构多核处理器设计的高性能低功耗工业评估板,由核心板和评估底板组成。处理器ARM Cortex-A53(64-bit)主处理单元主频高达1.4GHz,ARM Cortex-M4F实时处理单元主频高达400MHz,采用16nm最新工艺,具有可与FPGA高速通信的GPMC并口,同时支持双屏异显、3D图形加速器。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。
评估板接口资源丰富,引出3x Ethernet(两路支持TSN)、3x CAN-FD、9x UART、多路DI/DO、GPMC、USB、MIPI、LVDS LCD、TFT LCD、HDMI等接口,板载WIFI模块,支持4G模块,可选配外壳直接应用于工业现场,方便用户快速进行产品方案评估与技术预研。
评估板正面图
前 言
本文主要介绍基于AM64x的FreeRTOS、Baremetal(裸机)案例使用说明。本文同时提供了Cortex-A53、Cortex-M4F核心对应的CCS工程。
适用开发环境:
Windows开发环境:Windows 7 64bit、Windows 10 64bit
虚拟机:VMware15.5.5
Linux开发环境:Ubuntu 18.04.4 64bit
Linux Processor SDK:ti-processor-sdk-linux-rt-am64xx-evm-08.01.00.39
U-Boot:U-Boot-2021.01
CCS版本:CCS11.2.0
MCU SDK:mcu_plus_sdk_am64x_08_03_00_18
SysConfig:sysconfig-1.12.1_2446
GCC AARCH64 Compiler:gcc-arm-9.2-2019.12-mingw-w64-i686-aarch64-none-elf
FreeRTOS案例位于“4-软件资料DemoRTOS-demos”目录下,Baremetal案例位于“4-软件资料DemoBaremetal-demos”目录下。案例project目录分别存放Cortex-A53、Cortex-M4F核心对应的CCS工程源码,bin目录分别存放Cortex-A53、Cortex-M4F核心对应的程序可执行文件。
表 1
RTOS-demos | led_flash |
---|---|
uart_echo | |
Baremetal-demos | led_flash |
uart_echo |
本文档默认使用TL-XDS200仿真器进行程序加载,如要求更高的加载、固化、调试速度,或具有网络远程调试、Trace等功能,推荐使用创龙科技的TL-XDS560V2仿真器。
开发环境搭建
本章节主要介绍FreeRTOS、Baremetal(裸机)案例的开发环境搭建。
CCS环境安装
安装CCS11.2.0工具
请将产品资料“4-软件资料ToolsWindowsCCS11.2.0.00007_win64.zip”压缩包解压至Windows非中文路径目录下,并双击解压目录中的
进行安装。
在弹出的CCS安装界面中,勾选
选项,点击Next。
图 1
在弹出界面中选择安装目录,可根据实际情况修改。点击Next,进入安装环境检测界面。
图 2
图 3
备注:如出现如下界面,则表示环境检查未通过。请尝试关闭Windows防火墙,再重新安装。
图 4
进入如下界面中,选择需添加的组件。勾选"Sitara AM3x,AM4x,AM5x and AM6x MPUs"和"Sitara AM2x MCUs"选项,点击Next。
图 5
在后续界面中,请继续点击Next选项,直至安装完成。
图 6
图 7
安装MCU SDK组件
请将产品资料“4-软件资料ToolsWindowsmcu_plus_sdk_am64x_08_03_00_18_all.zip”MCU SDK组件压缩包解压至CCS安装目录。
图 8
双击打开CCS11.2.0,点击"Window -> Preferences"。
图 9
打开Products选项,确保"Product discovery path"选项框已存在MCU SDK的安装目录。如该安装目录不存在,请点击''Add..."添加,然后点击Refresh,即可在"Discovered products"选项框显示。
图 10
安装SysConfig工具
SysConfig(System Configuration)是一个综合的图形化配置工具集合,用于配置引脚、外设、子系统和其他组件。该工具的输出文件包括C头文件和代码文件,可用于配置CCS工程。
双击“4-软件资料ToolsWindowssysconfig-1.12.1_2446-setup.exe”,将SysConfig工具安装至CCS安装目录下。
图 11
双击打开CCS11.2.0,点击菜单栏"Window -> Preferences",打开Products选项,点击"install..."添加sysconfig1.12.1工具所在路径,然后点击Refresh,即可在"Discovered products"选项框显示,最后点击"Apply and Close"完成。
图 12
图 13
安装GCC AARCH64 Compiler
将产品资料“4-软件资料ToolsWindowsgcc-arm-9.2-2019.12-mingw-w64-i686-aarch64-none-elf.tar”压缩包解压至CCS安装目录,该交叉编译工具链用于Cortex-A53端程序编译。
备注:Cortex-M4F端工程使用CCS工具自带的交叉编译工具链。
图 14
双击打开CCS11.2.0,点击"Window -> Preferences",导入GCC AARCH64 Compiler。
图 15
打开"Build -> Compilers"选项,确保Compilers选项框已存在GCC AARCH64 Compiler工具链的安装目录。如该安装目录不存在,请点击"Add..."添加,然后点击Refresh,即可在"Discovered tools"选项框显示。
图 16
安装GCC ARM (R5F) Compiler
将产品资料“4-软件资料ToolsWindowsgcc-arm-none-eabi-7-2017-q4-major-win32.zip”压缩包解压至CCS安装目录,该交叉编译工具链用于Cortex-R5F端程序编译。
图 17
点击"Window -> Preferences",添加GCC ARM (R5F) Compiler工具链。
图 18
打开"Build -> Compilers"选项,确保Compilers选项框已存在GCC ARM (R5F) Compiler的安装目录。如该安装目录不存在,请点击"Add..."添加,然后点击Refresh,即可在"Discovered tools"选项框显示。
图 19
安装Python
使用CCS编译CCS工程时,需使用Python工具进行命令解析。
请双击“4-软件资料ToolsWindowspython-3.9.1-amd64.exe”安装包,勾选"Add Python 3.9 to PATH"选项,点击"Install Now"进行安装。
图 20
安装完成如下图所示。
图 21
打开Windows CMD命令行,执行如下命令,可查看Python是否已安装成功。
CMD# python --version
图 22
Python安装过程中,一般会附带安装pip包管理器,执行如下命令进行确认。
CMD# python -m pip --version
图 23
执行如下命令,安装Python增量包,以支持部分程序固化功能。
CMD# python -m pip install pyserial xmodem tqdm --proxy=
图 24
CCS工程编译与加载
本章节主要演示FreeRTOS、Baremetal(裸机)案例CCS工程的导入和编译方法。
工程导入
打开CCS11.2.0,点击"Project -> Import CCS Projects...",导入FreeRTOS或Baremetal(裸机)案例CCS工程。
图 25
选择CCS工程所在文件夹,选中CCS工程,选完后点击Finish。
图 26
环境配置
右键选中CCS工程,弹出菜单列表中选择Properties,打开工程属性界面。
图 27
点击"General -> Products",确认已包含"SysConfig1.12.1"及"MCU SDK for AM64x"组件。如未存在,请点击"Add..."选项添加。
图 28
点击"Linked Resources -> Path Variables",确认MCU SDK组件、交叉编译工具链等已全部配置为实际安装路径(如下图所示)。具体说明如下所示:
CCS_BASE_ROOT:CCS安装目录的ccs_base文件夹绝对路径
CCS_INSTALL_ROOT:CCS安装目录绝对路径
CG_TOOL_ROOT:交叉编译工具链安装目录绝对路径(请根据实际工程进行配置)
COM_TI_MCU_PLUS_SDK_AM64X_INSTALL_DIR:MCU SDK安装目录绝对路径
MCU_PLUS_SDK_PATH:MCU SDK安装目录绝对路径
PROJECT_LOC:CCS工程目录绝对路径
WORKSPACE_LOC:workspace目录绝对路径
图 29
工程编译
右键点击CCS工程,弹出菜单中选择"Rebuild Project"进行编译。
图 30
编译成功后,Console窗口将打印"Build Finished"信息,并在Debug目录下生成程序可执行文件。
图 31
图 32
CPU初始化
本小节主要讲述如何调用GEL脚本初始化CPU的方法。
在Windows右键“我的电脑”,选择“属性(R) -> 高级系统设置”,打开如下系统属性界面。
图 33
图 34
图 35
点击“环境变量(N)…”,打开如下界面。点击“系统变量(S)”的“新建(W)…”,添加MCU SDK安装路径,具体如下:
变量名(N):MCU_PLUS_SDK_AM64X_PATH
变量值(V):D:/ti/mcu_plus_sdk_am64x_08_03_00_18(MCU SDK实际安装路径)
图 36
打开CCS,点击菜单"View -> Target Configurations"打开仿真器配置界面。
图 37
按照如下配置新建am64x-xds200.ccxml仿真配置文件。Connection选择对应的仿真器型号,在"Board or Device"下拉框中选择AM64x_GP_EVM,点击Save保存。
图 38
请将仿真器与评估板TI Rev B JTAG接口进行连接,将评估板上电。在ccxml配置文件窗口中,点击"Test Connection",测试仿真器与评估板之间是否已连接成功。连接成功将打印如下类似信息。
图 39
图 40
在"Target Configrations"配置窗口中,右击ccxml仿真配置文件,在弹出的界面中点击"Launch Selected Configuration"进入Debug界面。
图 41
点击View -> Scripting Console选项,打开Scripting Console窗口。
图 42
在"Scripting Console"窗口执行如下命令,调用GEL脚本初始化CPU,打印如下类似信息说明CPU初始化成功,即可正常加载运行程序。
js:> loadJSFile "D:timcu_plus_sdk_am64x_08_03_00_18toolsccs_loadam64xload_dmsc.js"
图 43
程序加载
在Debug窗口中,右击选中CortexA53_0核心,点击"Connect Target"进行连接。成功连接则显示Suspended状态,此时CCS与CortexA53_0核心已正常连接。如需连接其他核心,操作方法类似。
图 44
点击"Run -> Load -> Load Program…"进入程序加载界面。
图 45
在如下加载界面中,选择对应的CCS工程*.out格式可执行文件。
图 46
点击"Run -> Resume",即可运行程序。本次加载运行led_flash程序,可看到评估底板LED以0.5s的时间间隔进行闪烁。
图 47
FreeRTOS与Baremetal案例
led_flash案例
案例功能
案例功能:控制评估底板用户LED每隔0.5s闪烁一次。
案例测试
请加载运行led_flash程序,运行成功后,串口调试终端将会打印如下信息,同时评估底板用户LED将会每隔0.5s闪烁一次。
图 48
GPIO配置说明
请参考“CCS工程编译与加载”章节导入并编译案例工程,双击打开工程界面的"*.syscfg"文件。
图 49
点击GPIO,弹出如下GPIO配置界面。
图 50
用户可根据实际应用配置GPIO引脚,在代码中调用已配置的GPIO引脚是以"*.syscfg"配置文件中的Name为标识。本案例Name为GPIO_LED1,对应代码中的GPIO_LED1_BASE_ADDR、GPIO_LED1_PIN、GPIO_LED1_DIR配置。
关键代码
配置GPIO。
图 51
控制LED每隔0.5s状态翻转。
图 52
uart_echo案例
案例功能
案例功能:实现串口回显功能。
案例测试
请加载运行uart_echo程序,程序运行后,等待串口输入8个字符,然后回显输入字符。串口调试终端将会打印如下类似信息。
图 53
UART配置说明
请参考“CCS工程编译与加载”章节导入并编译案例工程,双击打开工程界面的"*.syscfg"文件。
图 54
点击UART,弹出如下UART配置界面。
图 55
用户可根据实际应用配置UART,在代码中调用已配置的UART引脚是以"*.syscfg"配置文件中的Name为标识。本案例Name为CONFIG_UART_CONSOLE,对应代码中的CONFIG_UART_CONSOLE配置。
关键代码
配置串口。
图 56
使用阻塞模式。接收完数据后,UART_read返回;发送完数据后,UART_write返回。
图 57