TX2440 裸跑实验-LED灯闪烁(ADS1.2编译) 进阶(一)
2013-04-21 12:36
471 查看
TX2440 裸跑实验-LED灯闪烁(ADS1.2编译) 进阶(一)
一.实验目的:
理解汇编的编程结构,了解arm汇编的子程序调用.
二.实验环境:
TX2440平台
三.实验工具:
ADS1.2 + AXD + JLINK调试
四.实验步骤:
1.在ads 上建立新工程,增加源文件init.s
init.s源码:
;我的LED程序,EastonWoo procedure
LED_CONFIG equ 0x56000050
LED_SWITCH equ 0x56000054
LED_UP equ (1<<1) ;第二个灯 ,我的第1个灯坏了
DELAY_TIME equ 0x70010000 ;这个时间像是没有效果,但是单步调试,灯还是会闪的.
area init,code,readonly
entry ;一个进程中至少有一个.
start
ldr sp,=0x33ff8000 ;程序有效开始指令地址:0x30000000,,堆栈设在内存里面,也就是大于0x30000000,注意不要跟代码区冲突;
;如果设成0x1000,是写不进栈的,读出来是0xFFFFFFFF.
bl initial ;子程序 ;在内存中的地址为0x30000004
loop ;主循环
;关灯
ldr r0,=LED_SWITCH
ldr r1,[r0]
orr r1,r1,#LED_UP
str r1,[r0]
;延时DELAY_TIME
ldr r0,=DELAY_TIME
bl delay_here
;开灯
ldr r0,=LED_SWITCH
ldr r1,[r0]
mvn r2,#LED_UP
and r1,r1,r2
str r1,[r0]
;延时DELAY_TIME
ldr r0,=DELAY_TIME
bl delay_here
b loop ;类似于goto
initial
ldr r0,=LED_CONFIG ;控制内容给r0
ldr r1,[r0]
and r1,r1,#0xffffff00 ;控制内容清低8位
orr r1,r1,#0x55 ;控制内容低8位赋值.
str r1,[r0]
mov pc,lr
delay_here
sub r1,r1,#1
cmp r1,#0
bne delay_here
mov pc,lr
end
一.实验目的:
理解汇编的编程结构,了解arm汇编的子程序调用.
二.实验环境:
TX2440平台
三.实验工具:
ADS1.2 + AXD + JLINK调试
四.实验步骤:
1.在ads 上建立新工程,增加源文件init.s
init.s源码:
;我的LED程序,EastonWoo procedure
LED_CONFIG equ 0x56000050
LED_SWITCH equ 0x56000054
LED_UP equ (1<<1) ;第二个灯 ,我的第1个灯坏了
DELAY_TIME equ 0x70010000 ;这个时间像是没有效果,但是单步调试,灯还是会闪的.
area init,code,readonly
entry ;一个进程中至少有一个.
start
ldr sp,=0x33ff8000 ;程序有效开始指令地址:0x30000000,,堆栈设在内存里面,也就是大于0x30000000,注意不要跟代码区冲突;
;如果设成0x1000,是写不进栈的,读出来是0xFFFFFFFF.
bl initial ;子程序 ;在内存中的地址为0x30000004
loop ;主循环
;关灯
ldr r0,=LED_SWITCH
ldr r1,[r0]
orr r1,r1,#LED_UP
str r1,[r0]
;延时DELAY_TIME
ldr r0,=DELAY_TIME
bl delay_here
;开灯
ldr r0,=LED_SWITCH
ldr r1,[r0]
mvn r2,#LED_UP
and r1,r1,r2
str r1,[r0]
;延时DELAY_TIME
ldr r0,=DELAY_TIME
bl delay_here
b loop ;类似于goto
initial
ldr r0,=LED_CONFIG ;控制内容给r0
ldr r1,[r0]
and r1,r1,#0xffffff00 ;控制内容清低8位
orr r1,r1,#0x55 ;控制内容低8位赋值.
str r1,[r0]
mov pc,lr
delay_here
sub r1,r1,#1
cmp r1,#0
bne delay_here
mov pc,lr
end
相关文章推荐
- TX2440 裸跑实验-汇编C语言混编(ADS1.2编译) 进阶(二)
- TX2440 裸跑实验-伪指令学习例子(ADS1.2编译) 进阶(三)
- TX2440 裸跑实验-跑马灯(ADS1.2编译) 入门
- TX2440 裸跑实验-段分布图(ADS1.2编译) 补充知识
- LPC21O3第一课:第一个实验,LED灯闪烁及ADS1.2的初步使用
- AT91SAM7S64入门笔记----LED闪烁实验
- Zigbee之旅(二):第一个CC2430程序——LED灯闪烁实验
- Arduino实例2-LED 闪烁实验
- Arduino 实验2 - 控制LED闪烁
- 1.3.第二个实验—让LED闪烁
- TX2440 看手册学习2440-UART的配置(ADS1.2编译)
- 2013-10-08 实验之定时器控制Led等闪烁
- 【Arduino官方教程第一辑】示例程序 2-1 LED闪烁进阶
- uC/OS-III学习2::uC/OS-III LED闪烁实验
- Zigbee之旅(二):第一个CC2430程序——LED灯闪烁实验(转)
- TX2440 看手册学习2440-NANDFLASH时序理解(ADS1.2编译)
- CC2530基础实验(1)—LED灯闪烁
- TX2440 看手册学习2440-深入理解中断处理机制(ADS1.2编译)
- 开发板自动启动的LED闪烁实验
- 1.LED闪烁实验