【无标题】

根据《基于仿真器调试S5P4418-基础实验指导书》4.1节的要求,实验目标是控制板载的4个GPIO LED(分别连接至 GPIOC1、GPIOA30、GPIOB0、GPIOB6)实现轮流闪亮。以下给出完整的工程源码、实验步骤说明及预期结果。


实验4.1:基于 S5P4418 接口-GPIO LED 实验

1. 实验目的

  • 熟悉 Eclipse 开发环境与 ARM 裸机编程。
  • 掌握 S5P4418 GPIO 的输出控制方法。

2. 实验内容

编写程序控制实验箱上的 4 个 LED (D7~D10)依次循环点亮,形成流水灯效果。

3. 硬件连接与原理

  • LED与GPIO映射

    LED 标号 GPIO
    D7 GPIOC1 GPIOC1
    D8 MCU_CAM1_D0 GPIOA30
    D9 MCU_CAM1_D1 GPIOB0
    D10 MCU_CAM1_D4 GPIOB6
  • 控制方法

    1. 关闭对应 GPIO 的复用功能,将其设为 GPIO 模式。
    2. 配置 GPIOxOUTENB 寄存器的对应位为 1,设为输出模式。
    3. 向 GPIOxOUT 寄存器的对应位写 1 输出高电平(LED亮),写 0 输出低电平(LED灭)。

4. 实验步骤概要

  1. 打开 VMware 中的 Windows 7 虚拟机,启动 Eclipse。
  2. 导入已有的工程 Intl_gpioleds(或新建工程,加入必要的启动文件、链接脚本等)。
  3. 编译工程:右键工程名 → Build Project ,生成 Intl_gpioleds.elf
  4. 配置调试参数:将拨码开关 SW3 设为 001 (仿真器裸机调试模式),连接仿真器,打开实验箱电源,启动 Server 并连接。
  5. 在 Eclipse 中进入 Debug Configurations ,选择 Zyin Embedded debug (Native),点击 Debug 按钮。
  6. 程序下载运行后,观察开发板上 LED 的轮流闪亮现象。

5. 完整源代码(main.c)

c 复制代码
#include "s5p4418.h"

// 简易延时函数(毫秒)
void delay_ms(int ms)
{
    int i, j;
    while (ms--) {
        for (i = 0; i < 5; i++)
            for (j = 0; j < 514; j++)
                ;
    }
}

int main(void)
{
    // 1. 配置 GPIO 为输出模式
    GPIOC.OUTENB |= (0x1 << 1);   // GPIOC1  (LED D7)
    GPIOA.OUTENB |= (0x1 << 30);  // GPIOA30 (LED D8)
    GPIOB.OUTENB |= (0x1 << 0);   // GPIOB0  (LED D9)
    GPIOB.OUTENB |= (0x1 << 6);   // GPIOB6  (LED D10)

    while (1) {
        // 全部熄灭
        GPIOC.OUT &= ~(0x1 << 1);
        GPIOA.OUT &= ~(0x1 << 30);
        GPIOB.OUT &= ~(0x1 << 0);
        GPIOB.OUT &= ~(0x1 << 6);
        delay_ms(500);

        // 点亮 LED D7 (GPIOC1)
        GPIOC.OUT |= (0x1 << 1);
        delay_ms(500);
        GPIOC.OUT &= ~(0x1 << 1);

        // 点亮 LED D8 (GPIOA30)
        GPIOA.OUT |= (0x1 << 30);
        delay_ms(500);
        GPIOA.OUT &= ~(0x1 << 30);

        // 点亮 LED D9 (GPIOB0)
        GPIOB.OUT |= (0x1 << 0);
        delay_ms(500);
        GPIOB.OUT &= ~(0x1 << 0);

        // 点亮 LED D10 (GPIOB6)
        GPIOB.OUT |= (0x1 << 6);
        delay_ms(500);
        GPIOB.OUT &= ~(0x1 << 6);
    }

    return 0;
}

6. 预期实验结果

  • 开发板上的 LED D7、D8、D9、D10 依次循环点亮(每个亮约 500ms),形成流水灯效果。

7. 注意事项

  • 实验中需确保 Jtag 仿真器已正确连接,虚拟机能识别仿真器。
  • 编译前检查工程包含 start.Ss5p4418.initmap.ldsMakefile 等必要文件,且 Makefile 中的 NAME 需与工程名一致。
  • 每次切换工程时,先关闭当前工程再导入新工程,避免编译冲突。

通过以上步骤和代码,即可完成实验 4.1,观察到 GPIO LED 的轮流闪亮。

相关推荐
FreakStudio8 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
✎ ﹏梦醒͜ღ҉繁华落℘5 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
u152109648495 天前
S.S.Audio PRO A2音频隔离器
嵌入式硬件·音视频·实时音视频·视频编解码·视频
zd8451015005 天前
RS485 总线详解
单片机·嵌入式硬件
半条-咸鱼5 天前
【STM32】I2C协议原理、HAL读写与OLED显示操作
嵌入式硬件·c·信息与通信
wohoo_wangzi6 天前
苏州晟雅泰电子:关于W25Q128JVSIQ这个芯片物料的参数,规格及应用领域
嵌入式硬件
✎ ﹏梦醒͜ღ҉繁华落℘6 天前
编程基础 --高内聚,低耦合
c语言·单片机
科芯创展6 天前
1A,1MHz,30VIN,XZ4115,降压恒流LED驱动芯片
单片机·嵌入式硬件
集芯微电科技有限公司6 天前
四通道2A输出集成功率电感降压模块专为紧凑型方案设计
人工智能·单片机·嵌入式硬件·生成对抗网络·计算机外设
踏着七彩祥云的小丑6 天前
嵌入式测试学习第 37 天:异常场景测试:断电、拔插、干扰、非法指令
单片机·嵌入式硬件·学习