毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

基于ARM的大屏幕LED显示系统的设计 第13页

更新时间:2009-6-1:  来源:毕业论文
基于ARM的大屏幕LED显示系统的设计 第13页
时将程序计数器PC指向子程序的入口,当子程序执行完返回调用处时,只需
将存放在LR中的返回地址重新复制给PC即可。
ARM体系结构支持C/C十+以及与汇编语言的混合编程,在一个完整的程序
设计中,除了初始化部分用汇编语言完成以外,其主要的编程任务都用心/C+十
完成,程序在执行时首先完成初始化过程,然后跳转到C/C++程序代码中,汇
编程序和c/c++程序之间一般没有参数的传递,也没有频繁的相互调用词。
2基于ARM的系统初始化过程
基于ARM的芯片53C4510B为复杂的片上系统,这种复杂系统里的硬件模
块是可配置的,需要有软件来设置其需要的工作状态。因此在用户的应用程序
启动之前,需要有专门的一段启动代码来完成对系统的初始化。由于这类代码
直接面对处理器内核和硬件控制器进行编程,一般都使用汇编语言。
系统启动程序所执行的操作跟具体的开发系统相关,通用的内容包括:
(1)中断向量表
ARM要求中断向量表必须放置在从O地址开始,连续8x4字节的空间内。
各个中断向量在向量表中的位置分配如图5一3所示。当一个中断发生后,ARM
处理器便强制把既指针置为向量表中对应中断类型的地址值,因为每个中断
只占据向量表中1个字的存储器空间,只能放置1条ARM指令,所以通常在向
量表中放的是跳转指令,使程序能从向量表里跳转到存储器里的其它地方,再
执行中断处理[56j。外部快速中断
普通外部中断
保留
数据异常
指令预取异常
软件中断
未定义指令中断
复位中断
图5一3中断向量表
硕士学位论文
(2)初始化存储器系统
初始化存储器系统的编程对象是系统的存储器控制器,存储器控制器并不
是A哪内核的一部分,不同的系统其设计不尽相同。一个复杂的系统可能存在
多种存储器类型的接口,需要根据实际的系统设计对此加以配置,对同一种存
储器类型来说,因为访问速度的差异,需不同的时序设置。FLASH和SRAM同属
于静态存储器类型,可合用同一个存储器端口;而SDRAM因为有动态刷新和地
址线复用等特性,通常配有专用的存储器端口。
当一个系统上电后,程序将自动从O地址处开始执行,因此在系统的初始
状态,必须保证在O地址处存在正确的代码,即要求O地址开始处的存储器是
非易失性的ROM或FLASH等。但是因为ROM或FLASH的访问速度相对较慢,每
次中断发生后,都要从读取ROM或FLASH上面的向量表开始,影响了中断响应
速度。因此有的系统便提供一种地址重映射方法,可把O地址重新指向到R胡
中去,接下去执行的指令将来自SDRAM空间。
(3)初始化堆栈
ARM处理器有7种执行状态,每一种状态的堆栈指针寄存器(SP)都是独
立的,因此,对程序中需要用到的每一种模式都要给SP寄存器定义一个堆栈
地址。方法是改变状态寄存器(CPSR)内的状态位,使处理器切换到不同的状
态,然后给SP赋值。
(4)初始化有特殊要求的端口和设备
这要由具体的系统和用户需求而定,一般的外设初始化可以在系统初始化
之后进行。
(5)初始化应用程序执行环境
映像一开始总是存储在ROM/FLASH里的,其R0部分既可在ROM/FLASH里执
行,也可转到速度更快的SDRAM中;而RW和ZI这两部分是必须转移到可写的
SDRAM中,所谓应用程序执行环境的初始化,就是完成必要的从FLAsH到SDRAM
的数据传输和内容清零。
(6)呼叫主应用程序
当所有的系统初始化工作完成后,就需要把程序流程转入主应用程序。可
直接从启动代码跳转到应用程序的主函数入口,主函数名字可由用户自己定
义。1.6显示程序的总体结构
显示屏控制软件用ARM汇编语言和C/C++语言编写,基于53C4510B的L印
显示屏软件的主要功能是接收上位机下载的显示数据,向屏体提供显示数据和
各种控制信号。显示程序由主程序和串行口中断服务程序两部分组成,主程序
完成必要的初始化和对LED显示屏的动态扫描控制,按要求读出显示数据并产
生需要的控制信号;中断服务程序解决与上位机进行通信的问题。
由于ARM要求中断向量表必须放置在从0地址开始的连续8x4字节的空
间内,而程序的启动又是从OxOO开始的,所以只能在主程序的开头安排一条
跳转指令。地址OX18是串行通信的中断服务程序首地址,同样安排了一条跳
转指令,跳转到真正的服务程序首地址工RQ一andler。
显示数据可分为两类,一类是固化在FLASH之中的固定数据,另一类是从
上位机接收的存储于SDRAM之中的显示数据。固化的显示数据在开机时进行显
示,直到S3C451OB接收到上位机下载的显示数据之后,改为显示新收到的数
据。安排固化数据的显示,一方面在开机时不会出现显示空白,使显示屏具有
一开就亮的效果,适应人们使用的心理状态,另一方面也便于脱开上位机进行
文修。
系统上电或复位时,CPU从FLASH中读取程序运行,在完成必要的初始化
工作以后,将全部运行代码及存储在FLASH中的显示数据拷贝到SDRAM中,因
此,固化数据的显示过程,是先从FLASH中把整个显示数据读到SDR胡中,然
后再从SDRAM中读出进行显示,这样就和从上位机接收数据的显示过程一样了。
系统初始化工作主要是配置SYSCFG特殊功能寄存器,将53C4510B片内的
SK一体化的SR八M配置为4KCaChe,4KSR产幼,并将用户堆栈设置在片内的SRAM
中。4KSRAM的地址为ox3FE,0000一(ox3FE,1000一1),由于S3C451OB的堆栈由
高地址向低地址生成,将SP初始化为Ox3FE,1000。完成上述操作后,程序跳
转到Ma角函数执行,保存工nit.s,并添加到新建的项目,再新建一个文件,
名为main.c
AREA
ENTRY
B
B

具体内容如下:
工nit,c0DE,READONLY;定义一个名为Init的代码段
ResetHandler
;标识程序的入口
;复位异常向量,跳转到程序开始位置
未定义指令异常,跳转到当前位置;SWI异常,跳转到当前位置
;指令预取中止异常,跳转到当前位置
;数据访问中止异常,跳转到当前位置
工RQHandler;工RQ异常,跳转到响应中断服务程序
;F工Q异常,跳转到当前位置
ResetHandler
;*************
LDRRO,=Ox3FF000O
LDRRl,=OxE7FFFFSO;配置SYSCFG,4KCaehe,4KS尺AM
STRRl,仁RO〕
LDRSP,=Ox3FEI000:SP指向4KSRAM的尾地址
BLMain;程序跳转到Main函数执行
B
END
动态扫描的工作原理如前所述,在此给出程序流程图,如图5一4所示。
平读取一个‘乡节送出
GP工00输出八个脉冲
行信息送完
、、否子产产
GP工02输出一个脉冲
GP工03输出一个脉冲
图5一4动态扫描程序流程

 << 上一页  [11] [12] [13] [14] [15] [16] [17] [18] 下一页

基于ARM的大屏幕LED显示系统的设计 第13页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。