S3C2440系统时钟
r3,[r2] ; 将数据寄存器(r2)里的值放入r3
bic r3,r3,#0x1e0 ; 清除bit[5]~bit[8],bit[n]代表led1~led4
orr r3,r3,#0x1c0 ; 清对应Led位-亮灯,设置相应位-灭灯(点亮led1)
str r3,[r2] ; 将控制亮灯数据写入数据寄存器r2
ldr r0,=DELAYVAL ; 设置延迟数
bl delay ; 调用延迟子程序
ldr r3,[r2] ; 将数据寄存器(r2)里的值放入r3
bic r3,r3,#0x1e0 ; 清除bit[5]~bit[8],bit[n]代表led1~led4
orr r3,r3,#0x1a0 ; 清对应Led位-亮灯,设置相应位-灭灯(点亮led2)
str r3,[r2] ; 将控制亮灯数据写入数据寄存器r2
ldr r0,=DELAYVAL ; 设置延迟数
bl delay ; 调用延迟子程序
ldr r3,[r2] ; 将数据寄存器(r2)里的值放入r3
bic r3,r3,#0x1e0 ; 清除bit[5]~bit[8],bit[n]代表led1~led4
orr r3,r3,#0x160 ; 清对应Led位-亮灯,设置相应位-灭灯(点亮led3)
str r3,[r2] ; 将控制亮灯数据写入数据寄存器r2
ldr r0,=DELAYVAL ; 设置延迟数
bl delay ; 调用延迟子程序
ldr r3,[r2] ; 将数据寄存器(r2)里的值放入r3
bic r3,r3,#0x1e0 ; 清除bit[5]~bit[8],bit[n]代表led1~led4
orr r3,r3,#0xe0 ; 清对应Led位-亮灯,设置相应位-灭灯(点亮led4)
str r3,[r2] ; 将控制亮灯数据写入数据寄存器r2
ldr r0,=DELAYVAL ; 设置延迟数
bl delay ; 调用延迟子程序
b led_loop
delay
sub r0,r0,#1 ; r0=r0-1
cmp r0,#0x0 ; 将r0的值与0相比较
bne delay ; 比较的结果不为0,继续调用delay
mov pc,lr ; 返回
END ; 程序结束符
该实验首先关闭了看门狗定时器,然后修改系统时钟,将默认系统工作频率12MHz提高到400MHz,由于CPU工作在较高频率下,其执行速度明显比未启动系统时钟时高的多,可以通过注释掉系统时钟初始化代码跳转指令bl clock_init,对比LED的跑马灯效果可以证明。
++++++++++++++++++++++++++++++++++++++++++
S3C2440系统时 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)