1. SHARC处理器核心架构与开发环境搭建
任务目标
本案例完成SHARC处理器开发环境搭建,并基于ADSP-SC589评估板实现一个LED闪烁程序,用于验证JTAG仿真器连接、CrossCore Embedded Studio (CCES)工具链以及目标板供电是否正常。完成本案例后,你将拥有一个可重复使用的硬件最小验证工程。
环境与硬件清单
- 硬件:ADSP-SC589 EZ-KIT评估板、ICE-1000/2000 JTAG仿真器(或板载调试接口)、5V电源适配器、USB线缆(用于仿真器与PC连接)。
- 软件:CrossCore Embedded Studio 2.x(含SHARC编译器)、ADI官网下载的ADSP-SC589 EZ-KIT Board Support Package(BSP)。
- 驱动:安装CCES时勾选ICE-1000/2000驱动;首次连接仿真器时,Windows设备管理器应识别为“ADI Debug Agent”。
核心实现
LED闪烁程序直接操作SC589的GPIO寄存器。SC589的LED0连接至PORTG的Pin 14(参考EZ-KIT原理图,PG14)。通过设置PORTG_DATA_DIR寄存器将PG14配置为输出,然后循环翻转PORTG_DATA寄存器中的对应位。以下代码为最小完整实现,不依赖BSP库,直接映射寄存器地址。
#include <stdint.h>
/* ADSP-SC589 内存映射寄存器地址(参考HRM手册) */
#define REG_PORTG_DATA (*(volatile uint32_t *)0x3100C000)
#define REG_PORTG_DATA_DIR (*(volatile uint32_t *)0x3100C004)
/* PG14 对应LED0 */
#define LED0_PIN (1u << 14)
/* 简单延时函数:基于循环计数,约200ms @ 500MHz内核时钟 */
static void delay_loop(volatile uint32_t count) {
while (count--) {
__asm__("nop");
}
}
int main(void) {
/* 1. 将PG14配置为输出 */
REG_PORTG_DATA_DIR |= LED0_PIN;
/* 2. 初始状态:LED灭(高电平为灭,低电平为亮,取决于板载电路) */
REG_PORTG_DATA |= LED0_PIN;
while (1) {
/* 翻转LED状态 */
REG_PORTG_DATA ^= LED0_PIN;
delay_loop(2500000); /* 约200ms延时 */
}
return 0;
}
工程创建与编译
- 打开CCES,选择 File > New > CrossCore Project。
- 工程类型选择 SHARC,处理器型号选择 ADSP-SC589。
- 在工程属性中,将上述代码保存为
main.c并添加至工程。 - 编译配置选择 Debug,点击 Build(锤子图标)。编译通过后,会在Debug目录生成
.dxe可执行文件。
硬件连接与程序加载
- 断开评估板电源,连接ICE-1000仿真器至PC与评估板的JTAG接口。
- 给评估板上电,打开CCES的 Target > Connect,选择对应的仿真器型号。
- 连接成功后,点击 Target > Load,选择生成的
.dxe文件。 - 加载完成后,点击 Target > Run(或按F5)运行程序。
验证方法与通过标准
- 编译验证:CCES控制台无错误输出,生成
.dxe文件。 - 连接验证:CCES的Target窗口显示“Connected”,寄存器窗口可读取到
PORTG_DATA地址值。 - 功能验证:程序运行后,评估板上的LED0(通常标记为DS1或LED0)以约200ms间隔闪烁。若LED不亮或常亮,检查
REG_PORTG_DATA_DIR是否配置正确,以及LED极性(部分板卡低电平点亮,可尝试将初始赋值改为REG_PORTG_DATA &= ~LED0_PIN;)。
若LED按预期闪烁,说明JTAG链路、电源、内核时钟以及GPIO外设均工作正常,开发环境搭建成功。