5.1 GPIO硬件介绍

  可以不通过他们输出高低电平或者通过它们读入应交的状态

  S3C2410有117个I/O端口,分为A~H共8组:GPA、GPB、。。。GPH

S3C2440有130个I/O端口,分为A~H共9组:GPA、GPB、。。。GPJ

  5.1.1通过寄存器来操作GPIO引脚

    GPxCON用于选择引脚的功能,GPxDAT用于读/写引脚数据,GPxUP用于确定是否使用内部上拉电阻。x为ABCD。。。H/J,没有GPAUP寄存器

(1)GPxCON寄存器

    GPACON中每一位对应一根引脚(23根)为0时为输出引脚,设置GPADAT让相应引脚输出低或高电平,1时相应引脚为地址线或地址控制此时GPADAT无用

   (2)GPxDAT寄存器

    GPxDAT寄存器用于读/写引脚

(3)GPxUP寄存器

某位为1时,相应引脚无内部上拉电阻,为0时,相应引脚使用内部上拉电阻

  5.1.2怎样使用软件来访问硬件

(1)访问单个引脚

     单个引脚操作3种:输出高电平、检测引脚状态、中断,对某个引脚的操作一般通过读写寄存器完成

   (2)以总线方式访问硬件

NORflash为总线访问

5.2GPIO操作实例:LED和按键 

  5.2.1 硬件设计

5.2.2程序设计及代码详解

  (1)汇编源代码:

  Makefile:

2行-g加入GDB能使用的调试信息,-c只编译不链接

3行-T指定代码的代码段

4行-O指定的格式来输出文件(BFD库中描述的标准格式)

6行-f忽略不存在的文件,强制删除,无任何提示。

(2)使用c语言代码点亮一个LED

  c语言程序执行的第一条指令,并不在main函数中。生成一个c程序的可执行文件时,编译器通常会在我们的代码中加上几个被称为启动文件的代码------crt1.o、crti.o、crtend.o等,它们是标准库文件。这些代码设置c程序的堆栈等,然后调用main函数

  ctr0.S:

c程序:

Makefile:

6行:-D反汇编所有段

-m可以查看更多支持的指令集架构

3、使用按键来控制LED

  

  

  

第五章GPIO接口的更多相关文章

  1. “全栈2019”Java第六十五章:接口与默认方法详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  2. JZ2440 裸机驱动 第5章 GPIO接口

    本章目标:     掌握嵌入式开发的步骤:编程.编译.烧写程序.运行     通过GPIO的操作了解软件如何控制硬件 5.1 GPIO硬件介绍     S3C2440A有130个多功能输入/输出口引脚 ...

  3. “全栈2019”Java第六十四章:接口与静态方法详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  4. “全栈2019”Java第八十五章:实现接口中的嵌套接口

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  5. 《Linux内核设计与实现》读书笔记 第五章 系统调用

    第五章系统调用 系统调用是用户进程与内核进行交互的接口.为了保护系统稳定可靠,避免应用程序恣意忘形. 5.1与内核通信 系统调用在用户空间进程和硬件设备间添加了一个中间层, 作用:为用户空间提供了一种 ...

  6. 《Linux内核设计与实现》课本第五章学习笔记——20135203齐岳

    <Linux内核设计与实现>课本第五章学习笔记 By20135203齐岳 与内核通信 用户空间进程和硬件设备之间通过系统调用来交互,其主要作用有三个. 为用户空间提供了硬件的抽象接口. 保 ...

  7. Getting Started With Hazelcast 读书笔记(第五章,第六章)

    第五章 监听 本章应该是Hazelcast的核心机制了,Hazelcast通过注册各种监听器获悉集群中其他应用对数据的修改,成员的加入,退出等. 分为3个层次. 1.EntryListener(对数据 ...

  8. 《LINUX内核设计与实现》读书笔记之第五章

    第五章——系统调用 5.1 与内核通信 1.为用户空间提供一种硬件的抽象接口 2.保证系统稳定和安全 3.除异常和陷入,是内核唯一的合法入口. API.POSIX和C库 关于Unix接口设计:提供机制 ...

  9. [Effective Java]第五章 泛型

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

随机推荐

  1. 用shell在一个文件后面的每一行追加数据

    在shell分析log的时候,需要将数据过滤后转为csv的格式: 要在分析好的数据后面追加逗号: sed 's/$/&,/g' no2.log > ccc.log 结果保存在ccc.lo ...

  2. HDMI学习

    市面上大多4K显示器都配备了HDMI 1.4接口,仅能实现30Hz的刷新率,不足以带来流畅的显示效果, 酱紫情况,就算是搭配了HDMI 2.0高清线也是无法发挥其作用.只有更先进的HDMI 2.0标准 ...

  3. 自定义ViewGroup

    ViewGroup --->A ViewGroup is a special view that can contain other views (called children.) The v ...

  4. 自定义TextField清除按钮

    当需要设置TextField的清除按钮的时候,系统的总是不满足需求,这就需要我们自定义了,代码如下: // // TextFieldDemoViewController.m // OCDemo // ...

  5. 01 Apache Solr:提升检索体验 为什么是Solr

    背景:      最近开发一个大型的仓储管理平台项目,项目的前身是无数个版本的历史悠久的基于CS模式的Windows桌面程序.然后对于每一个客户,我们可能需要为之定制比较个性化的特殊功能.于是,有一个 ...

  6. css 清除浮动最佳方法!

    .clear:after{content:'\0020';display:block;height:0;clear:both} .clear{*zoom:1}

  7. NGUI 灰化按钮或图标

    在游戏中某些地方可能需要对按钮进行灰化显示,从而表示不能点击!在网上找了一下有些方法是直接用UITexture+灰化shader去做这件事!另外有些方案写的不太清楚,看不懂!不过也基本都是要使用灰化s ...

  8. PL/SQL远程连接Oracle的方式,无需安装客户端

    第一次用PL/SQL Developer这个非官方的软件,遇到了种种困难,幸好通过万能的Google已经全部解决,记录下来备察. 前提是保证你的远程oracle服务器一切正常.   微软客户端设置 使 ...

  9. Android进程间的通信之AIDL

    Android服务被设计用来执行很多操作,比如说,可以执行运行时间长的耗时操作,比较耗时的网络操作,甚至是在一个单独进程中的永不会结束的操作.实现这些操作之一是通过Android接口定义语言(AIDL ...

  10. requirejs+cdn

    当requirejs加上cdn.cdn固然可以在requirejs里面配置.但是在a.html里面却不能通过给自己引用的requirejs文件添加版本戳. 最重要的是requirejs不能引进css当 ...