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;
}

工程创建与编译

  1. 打开CCES,选择 File > New > CrossCore Project。
  2. 工程类型选择 SHARC,处理器型号选择 ADSP-SC589。
  3. 在工程属性中,将上述代码保存为 main.c 并添加至工程。
  4. 编译配置选择 Debug,点击 Build(锤子图标)。编译通过后,会在Debug目录生成 .dxe 可执行文件。

硬件连接与程序加载

  1. 断开评估板电源,连接ICE-1000仿真器至PC与评估板的JTAG接口。
  2. 给评估板上电,打开CCES的 Target > Connect,选择对应的仿真器型号。
  3. 连接成功后,点击 Target > Load,选择生成的 .dxe 文件。
  4. 加载完成后,点击 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外设均工作正常,开发环境搭建成功。