- 1、本文档共107页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 部件工作原理与编程示例
本章主要以S3C4510B的几个常用功能部件为编程对象,介绍基于S3C4510B的系统的程序设计与调试,同时简介BootLoader的基本原理和编程方法,通过对本章的阅读,可以使读者了解S3C4510B各功能部件的工作原理及基本编程方法。
本章的主要内容包括:
- 嵌入式系统应用程序设计的基本方法。
- S3C4510B通用I/O口的工作原理与编程示例。
- S3C4510B串行通信控制器的工作原理与编程示例。
- S3C4510B中断控制器的工作原理与编程示例。
- S3C4510B定时器的工作原理与编程示例。
- S3C4510B DMA控制器的工作原理与编程示例。
- S3C4510B IIC总线控制器的工作原理与编程示例。
- S3C4510B 以太网控制器的工作原理。
- Flash存储器的工作原理与编程示例。
- BootLoader简介。
6.1 嵌入式系统的程序设计方法
一般来说,对于一个完整的嵌入式应用系统的开发,硬件的设计与调试工作仅占整个工作量的一半,应用系统的程序设计也是嵌入式系统设计一个非常重要的方面,程序的质量直接影响整个系统功能的实现,好的程序设计可以克服系统硬件设计的不足,提高应用系统的性能,反之,会使整个应用系统无法正常工作。
本章从应用的角度出发,以S3C4510B的各个功能模块为编程对象,介绍一些实用的程序段,读者既可按自己的需要修改,也可吸收其设计思想和方法,以便设计出适合于自己特定应用系统的实用程序。同时,由于ARM体系结构的一致性,尽管以下的应用程序段是针对特定硬件平台开发的,其编程思路同样适合于其他类型的ARM微处理器。
不同于基于PC平台的程序开发,嵌入式系统的程序设计具有其自身的特点,程序设计的方法也会因系统或因人而异,但其程序设计还是有其共同的特点及规律的。在编写嵌入式系统应用程序时,可采取如下几个步骤:
明确所要解决的问题:根据问题的要求,将软件分成若干个相对独立的部分,并合理设计软件的总体结构。
合理配置系统资源:与基于8位或16位微控制器的系统相比较,基于32位微控制器的系统资源要丰富得多,但合理的资源配置可最大限度地发挥系统的硬件潜能,提高系统的性能。对于一个特定的系统来说,其系统资源,如Flash 、EEPROM、SDRAM、中断控制等,都是有限的,应合理配置系统资源。
程序的设计、调试与优化:根据软件的总体结构编写程序,同时采用各种调试手段,找出程序的各种语法和逻辑错误,最后应使各功能程序模块化,缩短代码长度以节省存储空间并减少程序执行时间。
此外,由于嵌入式系统一般都应用在环境比较恶劣的场合,易受各种因素的干扰,从而影响到系统的可靠性,因此,应用程序的抗干扰技术也是必须考虑的,这也是嵌入式系统应用程序不同于其他应用程序的一个重要特点。
6.2 部件工作原理与编程示例
6.2.1 通用I/O口工作原理与编程示例
S3C4510B提供了18个可编程的通用I/O端口,用户可将每个端口配置为输入模式、输出模式或特殊功能模式,由片内的特殊功能寄存器IOPMOD和IOPCON控制。
端口0~7的工作模式仅由IOPMOD寄存器控制,但通过设置IOPCON寄存器,端口8~11可用作外部中断请求INTREQ0~INTREQ3的输入,端口12、端口13可用作外部DMA请求XDREQ0、XDREQ1的输入,端口14、端口15可作为外部DMA请求的应答信号XDACK0、XDACK1,端口16可作为定时器0的溢出TOUT0,端口17可作为定时器1的溢出TOUT1。
I/O端口的功能模块如图6.1所示:
图6.1 通用I/O口的功能模块
控制I/O口的特殊功能寄存器一共有3个:IOPMOD、IOPCON和IOPDATA,简要描述如下:
I/O口模式寄存器(IOPMOD):
I/O口模式寄存器IOPMOD用于配置P17~P0。
寄存器 偏移地址 操作 功能描述 复位值 IOPMOD 0x5000 读/写 I/O口模式寄存器 0x0000,0000
[0]P0口的I/O模式位
0=输入
1=输出
[1]P1口的I/O模式位
0=输入
1=输出
[2]P2口的I/O模式位
0=输入
1=输出
[3~17]P3~P17口的I/O模式位
0=输入
1=输出
I/O口控制寄存器(IOPCON):
I/O口控制寄存器IOPCON用于配置端口P8~P17的特殊功能,当这些端口用作特殊功能(如外部中断请求、外部中断请求应答、外部DMA请求或应答、定时器溢出)时,其工作模式由IOPCON寄存器控制,而不再由IOPMOD寄存器控制。
对于特殊功能输入端口,S3C4510B提供了一个滤波器用于检测特殊功能信号的输入,如果输入信号电平宽度等于三个系统时钟周期,该信号被认为
文档评论(0)