2. 开发环境搭建与Hello World
任务目标
在CEVA-X DSP平台上完成首个可运行程序:搭建最小交叉编译环境,编写Hello World程序并编译通过,生成可在CEVA-X目标板上加载的.out可执行文件。本案例聚焦于工具链验证与编译流程打通,不涉及硬件调试。
环境依赖
- CEVA-X DSP开发板或模拟器(如CEVA-XM4/XM6)
- CEVA Toolbox(含C编译器
cxcc、汇编器、链接器) - 主机系统:Linux x86_64或Windows(以Linux为例)
实现代码
创建hello.c,内容如下:
#include <stdio.h>
int main(void) {
printf("Hello from CEVA-X!\n");
return 0;
}
编译与运行
- 设置环境变量(假设Toolbox安装在
/opt/ceva/toolbox):
export PATH=/opt/ceva/toolbox/bin:$PATH
export CEVA_BASE=/opt/ceva/toolbox
- 编译生成可执行文件:
cxcc -c hello.c -o hello.o
cxcc hello.o -o hello.out
若需指定具体DSP架构(如XM4),添加-arch xm4参数。
- 在模拟器上运行(若使用硬件则通过JTAG加载):
cxsim hello.out
验证方法
- 编译通过:上述命令无报错,生成
hello.o与hello.out文件。 - 运行输出:模拟器终端显示
Hello from CEVA-X!,退出码为0。 - 文件检查:执行
file hello.out,输出包含CEVA或DSP标识,确认生成的是目标平台可执行格式。
常见问题
- 找不到
cxcc:检查PATH是否包含Toolbox的bin目录,或使用路径调用。 - 链接错误:确认
stdio.h路径在Toolbox的include目录下;若使用硬件运行,需链接对应的运行时库(-lc)。 - 架构不匹配:编译时未指定
-arch,默认架构可能与模拟器/目标板不一致,需显式指定。
本案例验证了CEVA-X工具链的完整编译链路,后续所有算法移植均基于此环境进行。