ti的处理器平台am57xx是多核异构结构的soc,片上有一到两个arm核(arm cortex-a15)和一到两个dsp(c66x)核。am57xx处理器是高度集成的器件,可用于实现高性能和多媒体应用。板载加速器提供加速视觉和深度学习功能,支持多个工业以太网协议和视频处理。多核soc的软件相对单核系统比较复杂,ti的am57xx的软件包是processor sdk。
sdk默认arm 跑linux系统,dsp跑opencl monitor。arm通过opencl接口使用dsp,dsp起到加速运算的作用,如下图所示:
图1,基于opencl的工作方式
很多客户希望自主使用dsp,不用opencl框架。ti也提供了基于ipc的arm dsp工作框架,如下图所示:
图2,基于ipc的工作方式
本文介绍图2的工作方式和操作步骤。本文编译工作都是在一台linux pc上操作,建议操作系统使用ubuntu1604或者1804版本。本文基于processor sdk 06.01.00.08版本操作,其他版本sdk操作步骤大致相似。分步骤操作如下:
1,安装am57xx rtos sdk和linux sdk。linux sdk下载链接如下: http://software-dl.ti.com/processor-sdk-linux/esd/am57x/latest/index_fds.html
点击下面链接下载linux sdk
在ubuntu系统下,首先通过chmod +x ….给下载文件一个可执行权限,然后./xxx执行这个安装包,根据提示安装到默认目录。
同理,安装linux版本rtos sdk ,链接如下:http://software-dl.ti.com/processor-sdk-rtos/esd/am57x/latest/index_fds.html
在ubuntu系统下,首先通过chmod +x ….给下载文件一个可执行权限,然后./xxx执行这个安装包,根据提示安装到默认目录。
rtos sdk安装好后会在/home/xxx/ti目录下出现如下文件:
2,安装linux版本ccs
最新版本ccs下载链接:http://www.ti.com/tool/download/ccstudio
下载这个文件到ubuntu系统:
下载解压后会得到如下文件:
在ubuntu桌面系统中(注意要登录桌面,不要远程控制台登录),通过控制台执行./ ccs_setup_9.2.0.00013.bin,然后根据提示把ccs安装到/home/xxx/ti目录。
注意:第一次打开ccs会问是否需要导入rtos安装的一系列组件,选择“是”。
3,新建开发板启动sd卡,编译kernel。
准备一张空白sd卡,插入usb转sd工具,将工具插入ubuntu pc usb口。然后通过控制台进入ti-processor-sdk-linux-am57xx-evm-06.01.00.08bin,执行./ create-sdcard.sh。根据提示选择sd卡,最终得到一张可以用于启动的sd卡。
把这张卡插入am5728 idk,上电可以正常启动linux系统。
在ti-processor-sdk-linux-am57xx-evm-06.01.00.08路径下,执行make linux可以把linux kernel重新编译。
4,编译ipc example。本文要编译的demo路径是:tiipc_3_50_04_07examplesdra7xx_linux_elf。首先到ipc_3_50_04_07目录编辑products.mak
设置toolchain_longname,toolchain_install_dir,toolchain_prefix,kernel_install_dir等参数。
进入processor_sdk_rtos_am57xx_6_01_00_08目录,编辑makefile如下:
在processor_sdk_rtos_am57xx_6_01_00_08目录执行./setupenv.sh && make ipc_example,如果一切顺利可以在ipc_3_50_04_07examplesdra7xx_linux_elf目录下获得编译好的demo binary文件。
5,本文测试ex02_messageq这个demo,在dra7xx_linux_elf目录下找到如下文件复制到开发板上linux系统。
app_host是arm linux跑的软件,server_xxx分别是在dsp1/2,ipu1/2上面跑到软件。把server_xx这几个文件复制到/lib/firmware下面。删除现有的dra7-dsp1-fw.xe66,dra7-dsp2-fw.xe66,dra7-ipu1-fw.xem4,dra7-ipu2-fw.xem4软连接。然后重新建立软链接:
ln -s server_dsp1.xe66 /lib/firmware/dra7-dsp1-fw.xe66
ln -s server_dsp2.xe66 /lib/firmware/dra7-dsp2-fw.xe66
ln -s server_ipu1.xem4 /lib/firmware/dra7-ipu1-fw.xem4
ln -s server_ipu2.xem4 /lib/firmware/dra7-ipu2-fw.xem4
重启系统。
分别执行:./app_host dsp1(dsp2,ipu1,ipu2),可以获得如下输入打印,说明运行成功:
6,进一步开发。进入./ti/pdk_am57xx_1_0_16/packages目录,执行source ./pdksetupenv.sh。修改pdkprojectcreate.sh 文件中的ccs路径如下:
执行“./pdkprojectcreate.sh am572x all little all all dsp”创建dsp demo的ccs工程。
一切顺利可以在.tipdk_am57xx_1_0_16packagesmyexampleprojects目录创建一些ccs工程如下:
这些是基于ti rtos的一些外设接口的demo软件,他们可以导入到ccs进行编译和调试,读者可以把需要的demo移植到ipc example里,从而实现自己dsp软件。
总结:本文介绍了如何编译测试am57xx平台ipc的demo。首先需要安装ubuntu操作系统的pc,并在ubuntu下安装rtos和linux sdk,然后安装linux版本ccs。软件安装完毕,需要修改编译脚本,先编译ipc example,然后创建基于ccs的dsp rtos demo。后续需要读者把rtos demo移植到ipc example从而实现自己的dsp软件。
如何看待智能家居产品及行业前景
如何让openEuler在WSL上运行
电路、报文、分组交换的特点和比较
湿电转膜仪操作规程
央视财经CCTV2报道:普渡机器人在呷哺呷哺!
AM57XX IPC DEMO编译及使用
半导体电子产业 经济学思维连载之九:权利是人赋而非天赋
使用逻辑分析仪调试时序问题
三大运营商将于今年11月30日之前在全国范围内提供携号转网服务
英飞凌PSoC62 实现超低功耗温湿度计
Python的只读属性定义方法
Samsung Galaxy S8 选择 IDT 高效无线电源解决方案
怎样才算是真正意义上的5G时代
荣耀V9、华为Mate9对比评测:华为荣耀V9与华为Mate9除了性能,续航、拍照、格调各有所长你选谁?
MAX7401, MAX7405 八阶、低通、贝塞尔、开关电
光伏发电系统简介—MPPT技术
咖啡机上的显示问题
IR推出IR3846 SupIRBuck 35A集成式稳压器
计算机辅助频域仿真分析
奥拓电子XR虚拟影棚在北美启动