点led灯(进阶)——c语言
2014-04-05 18:51
197 查看
.globl _start
_start:
/* 硬件相关的设置 */
/* Peri port setup */
ldr r0, =0x70000000
orr r0, r0, #0x13
mcr p15,0,r0,c15,c2,4 @ 256M(0x70000000-0x7fffffff)
/* 关看门狗 */
/* 往WTCON(0x7E004000)写0 */
ldr r0, =0x7E004000
mov r1, #0
str r1, [r0]
/* 设置栈 */
ldr sp, =8*1024 //c函数中的局部变量和返回地址都保存在栈里边,注意:程序大小小于8k才可以,否则需用到DDR
bl XXXX //调用XXXX函数
halt:
b halt
/***********c函数**************/
void delay()
{
volatile int i = 0x10000;
while (i--);
}
int XXXX()
{
int i = 0;
volatile unsigned long *gpmcon = (volatile unsigned long *)0x7F008820;
volatile unsigned long *gpmdat = (volatile unsigned long *)0x7F008824;
—优化—>
//加入volatile,防止被优化
/* gpm0,1,2,3设为输出引脚 */
*gpmcon = 0x1111;
while (1)
{
*gpmdat = i;
i++;
if (i == 16)
i = 0;
delay();
}
return 0;
}
相关文章推荐
- c语言学习之基础知识点介绍(十四):指针的进阶
- C语言进阶-7讲: 递归经典:汉诺塔
- 分享一个香橙派PC2的C语言点亮LED程序
- C语言进阶-第15~16讲:结构体应用(玩转日期和时间)
- TLC59731 LED 驱动芯片 C语言驱动程序
- C语言高手进阶知识点
- C语言及程序设计进阶例程-35 标准文件读写方法
- C语言个人进阶
- 裸机程序二:GPIO点亮led灯 c语言
- [C语言]进阶|链表
- C语言进阶——基于数组的查找
- C语言进阶:串口
- [土狗之路]coursera C语言进阶习题 计算矩阵边缘元素之和
- C语言的单链表面试题----进阶
- C语言模拟LED流水灯代码
- c语言实现单链表面试题——进阶
- C语言及程序设计进阶例程-13 结构体数组及其应用
- C语言进阶-第36~37讲:随机读写&二进制文件&文件操作整理
- C语言及程序设计进阶例程-36 文件的随机读写
- C语言进阶3