0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式技术之GPIO控制LED工作原理

454398 来源:博客园 作者:wanglinwei 2020-09-24 10:59 次阅读

基本概念:

1.GPIO--通用IO口,通过芯片针脚来控制或读取外设的数据。

2.GPIO口的使用原理,通过设置GPXXCON, GPXXDAT, GPXXPUL等寄存器来设置GPIO口的状态。

原理图:

硬件相关的部分,一定要阅读原理图,然后通过查找SoC的用户手册来查找相应的寄存器设置即可。

底板电路图:

核心板电路图:

可知在OK6410上4个LED灯是通过GPM这一组的GPIO口控制的,分别是GPM0-GPM3四组。

然后打开S3C6410X User's Manual,查找GPM相关的寄存器:

通过上面内容找到:

GPMCON 地址 0x7F008820

GPMDAT 地址 0x7F008824

由于LED连接着GPM0-GPM3,所以通过上面的内容可以知道,GPMCON设置的值应该为0x00001111,意思是将GPM0-GPM3设置为输出,这样通过设置GPMDAT[5:0]来控制响应针脚的高低电平,使LED亮或灭。

代码:(以下代码参考了友善之臂Tiny6410的汇编代码,并非原创

汇编代码:

start.S

Makefile:

1 led.bin: start.o

 2         arm-linux-ld -Ttext 0x50008000 -o led.elf $^
 3         arm-linux-objcopy -O binary led.elf led.bin
 4         arm-linux-objdump -D led.elf > led_elf.dis
 5 %.o : %.S
 6         arm-linux-gcc -o $@ $< -c
 7 
 8 %.o : %.c
 9         arm-linux-gcc -o $@ $< -c 
10 
11 clean:
12         rm *.o *.elf *.bin *.dis  -rf

然后make,可以得到led.bin,通过tftp下载到开发板中:

然后就可以看到OK6410板上的四个LED灯开始一起闪烁。

总结:

1.GPIO口的使用其实是SoC外设控制中最简单的,只要抓住GPIO的几个寄存器,将他们的值设置正确,就可以完成相应的控制功能。

2.一定要学会查看SoC的User's Manual的方法,这样当SoC换成其他品牌时,可以以不变应万变。

3.使用ld来链接.o文件时,一般会指定-Ttext选项,表示该代码会在内存的哪个地址加载,通过查看User's Manual,你可以决定这个地址的范围,如下图,0x50000000-0x6FFFFFFF地址区间映射到DRAM上,所以绝大部分的资料中,S3C6410中的内存地址都是0x5xxxxxxx类似的地址。也有一些0xcxxxxxxx类似的地址,这是打开SoC中的MMU后进行物理地址和虚拟地址映射后的结果,如果打开了MMU,就可以使用0xcxxxxxxx这样的地址,否则无法使用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led灯
    +关注

    关注

    22

    文章

    1551

    浏览量

    107024
  • 嵌入式技术
    +关注

    关注

    10

    文章

    349

    浏览量

    34262
  • GPIO
    +关注

    关注

    16

    文章

    1132

    浏览量

    50558
收藏 人收藏

    评论

    相关推荐

    嵌入式热门发展方向有哪些?

    的需求,从而降低生产成本。此外,在工业自动化领域,嵌入式系统还可以实现智能监控、工件检测、过程控制等功能。例如,通过人脸识别、行为分析和异常检测等技术,可以检测和识别监控区域内的人员、车辆和物体,实现智能
    发表于 04-11 14:17

    如何成为一名嵌入式C语言高手?

    的特性和工作原理对于嵌入式C语言编程至关重要。你应该学习如何与外设进行交互、如何配置寄存器和控制器等。阅读相关设备的数据手册和技术文档,参加硬件相关的课程,可以帮助你更好地理解
    发表于 04-07 16:03

    如何成为一名嵌入式C语言高手?

    的特性和工作原理对于嵌入式C语言编程至关重要。你应该学习如何与外设进行交互、如何配置寄存器和控制器等。阅读相关设备的数据手册和技术文档,参加硬件相关的课程,可以帮助你更好地理解
    发表于 03-25 14:12

    嵌入式工程师需要掌握哪些技术?

    嵌入式工程师需要掌握哪些技术? 嵌入式系统是当今科技领域中的重要组成部分,它们存在于我们生活的方方面面,从智能手机到汽车控制系统,从家电到医疗设备。因此,对于那些想要进入
    发表于 03-04 16:38

    嵌入式系统发展前景?

    应用领域。随着汽车电子化和智能化程度的不断提高,嵌入式系统将在汽车控制、安全系统、自动驾驶等方面发挥更为重要的作用。 工智能和机器学习技术的发展为嵌入式系统提供了新的发展机遇。
    发表于 02-22 14:09

    嵌入式学习步骤

    开发。 嵌入式学习步骤总结如下: (1).确定目标平台:选择适合您要开发的嵌入式系统的硬件平台。这取决于您要控制的设备以及您需要执行的任务。 (2).选择编程语言:嵌入式系统通常使用C
    发表于 02-02 15:24

    嵌入式自学好书推荐

    嵌入式自学好书推荐 在数字时代的浪潮中,嵌入式系统一直是数字电子产品中的重要组成部分。无论是家用电器、工业控制、汽车电子、医疗保健、军事应用还是物联网,嵌入式系统都无处不在,展现了广阔
    发表于 01-11 15:13

    到底要不要放弃嵌入式这条路?

    技术一直都是计算机科学领域中的重要分支,从智能手机到汽车控制系统,它贯穿了各个工业和消费电子设备领域。尽管当下有新兴的技术涌现,但嵌入式仍有稳定的市场需求,这也就意味着这个领域仍然有
    发表于 12-07 10:43

    为什么嵌入式没有35岁危机?

    岁危机呢? 首先,嵌入式技术的应用领域非常广泛。它不仅仅局限于软件开发,还需要与硬件密切结合。相比之下,其他IT岗位如软件工程师、系统管理员等更容易受到年龄因素的限制。嵌入式技术
    发表于 11-17 10:33

    天花板嵌入式led灯电路图

    工作原理及其制作过程。 一、天花板嵌入式LED灯的电路图 天花板嵌入式LED灯的电路图如下图所示: 二、天花板
    的头像 发表于 10-16 16:29 1986次阅读
    天花板<b class='flag-5'>嵌入式</b><b class='flag-5'>led</b>灯电路图

    从事嵌入式工作有哪些优势?

    职业发展相对顺利。从事企业应用软件的人,工作范围广,项目变化大,日常的积累很难产生质变,容易遭遇职业瓶颈;而从事嵌入式软件的人,所涉及的专业技术范围就是那些,时间长了会越来越有经验。 嵌入式
    发表于 10-08 15:05

    GPIO的基本概念、工作原理及关键技术

    通用输入输出(General Purpose Input/Output,GPIO)是一种广泛应用于嵌入式系统的接口技术。通过GPIO,我们可以方便地
    的头像 发表于 09-26 17:21 5812次阅读

    嵌入式编程和微控制器应用

    欢迎进入嵌入式编程和微控制器应用的世界!使用日益流行且价格适宜的AtmelAVR嵌入式控制器作为学习平台。本书是目前可以获得的最佳书籍之一。对于初学者,本书将会是极好的选择。随着
    发表于 09-20 07:52

    led恒流恒压工作原理

    led恒流恒压工作原理  作为一种新型电源控制技术LED恒流恒压工作原理
    的头像 发表于 09-04 17:48 2136次阅读

    嵌入式学习路线你知道吗?

    外围设备的硬件工作原理,以及如何使用C语言来编程、控制这些硬件。除了要学习对硬件编程之外,还需要学习嵌入式硬件的知识,但是对于嵌入式软件工程师来讲,重点是学习硬件的
    发表于 06-14 16:00