嵌入式技术应用教程——基于SC第四章.docVIP

嵌入式技术应用教程——基于SC第四章.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式技术应用教程——基于SC第四章.doc

第四章 S3C2410A的I/O口 从这一章开始,就进入了S3C2410A底层驱动程序开发的学习过程中了。在第一章已经介绍了ARM系统开发的层级结构,本课程的内容符合层次结构中的第二层底层驱动开发,但是这里不包含启动代码的编写和操作系统移植。一般来讲ARM开发系统如广州友善之臂的micro2440开发板,英贝特公司的开发板,在加上达盛公司的实验系统等等,出厂时各类底层的相关驱动程序和应用的操作系统移植都已经编写测试完毕,其中ARM的启动代码是现成可以使用的,不需要重新编写。另外,出厂时的底层驱动代码都是可以直接使用的,这些代码可以提供给使用者自学时参考,当然如果觉得这些代码在结构上表达上都不尽如人意,读者随时都可以自行修改。达盛公司的实验系统的底层驱动程序也是现成可以使用的,但是鉴于教学需要,本课程会引导读者在理解底层硬件的基础上对这些程序进行修改或者重写编写部分驱动程序,以便使读者能够熟练掌握S3C2410A底层的驱动开发。 4.1 S3C2410A的GPIO S3C2410A CPU有117个多功能复用的I/O口,共分为8组。 (1)16bit I/O端口为:Port C、Port D、Port E和Port G (2)11bit I/O端口为:Port B和Port H (3)23bit I/O端口为:Port A (4)8bit I/O端口为:Port F (5)在这里需要说明几个问题: ① 端口的bit数是什么意思? 例如,Port C为16bit I/O端口,即Port C共有16位,从Port C[0]到Port C[15]都可以应用。 ② 多功能复用是什么意思? ARM7和ARM9这些CPU的I/O口都可以配置成不同的功能,也就是说这些端口可以作为普通的输入输出端口使用,也可以配置成UART使用,还可以配置成I2C、SPI和SSI等总线信号使用。 (6)如何操作这些I/O端口? 用配置和访问S3C2410A的功能寄存器的方法可以操作S3C2410A的硬件资源。 I/O端口的控制寄存器 下面这些宏定义摘自头文件2410ADDR.H,这些通过这些寄存器就可以控制S3C2410A的I/O端口了。还有一些功能寄存器在这里没有列出,读者可自行在2410ADDR.H这个文件中查找学习。 // I/O PORT #define rGPACON (*(volatile unsigned *)0 //Port A control #define rGPADAT (*(volatile unsigned *)0 //Port A data #define rGPBCON (*(volatile unsigned *)0 //Port B control #define rGPBDAT (*(volatile unsigned *)0 //Port B data #define rGPBUP (*(volatile unsigned *)0 //Pull-up control B #define rGPCCON (*(volatile unsigned *)0 //Port C control #define rGPCDAT (*(volatile unsigned *)0 //Port C data #define rGPCUP (*(volatile unsigned *)0 //Pull-up control C #define rGPDCON (*(volatile unsigned *)0 //Port D control #define rGPDDAT (*(volatile unsigned *)0 //Port D data #define rGPDUP (*(volatile unsigned *)0 //Pull-up control D #define rGPECON (*(volatile unsigned *)0 //Port E control #define rGPEDAT (*(volatile unsigned *)0 //Port E data #define rGPEUP (*(volatile unsigned *)0 //Pull-up control E #define rGPFCON (*(volatile u

文档评论(0)

zhangningclb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档