- 积分
- 9
贡献31
飞刀4 FD
注册时间2016-8-6
在线时间6 小时
扫一扫,手机访问本帖
|
我安装飞凌官方的教程安装RVDS2.2成功,编译飞凌官方的LED裸奔程序成功,用AXD的Loader Image命令装载编译好的文件成功,AXD连接Jlink运行显示正常,就是LED灯无任何反映。运行网上找的汇编程序,能正常仿真LED,说明板子上的LED灯正常。这肯定是官方的LED程序有问题。可我看不出来。我把两个程序贴上,请飞凌官方和高手给一个运行飞凌官方程序的方法。谢谢!
正常程序:
s3c6410.inc文件内容:
;GPM
GPMCON EQU 0x7F008820
GPMDAT EQU 0x7F008824
GPMPUD EQU 0x7F008828
;GPG
GPGCON EQU 0X7F0080C0
GPGDAT EQU 0X7F0080C4
GPGPUD EQU 0X7F0080C8
;WT
WTCON EQU 0x7E004000
END
start.s文件内容:
INCLUDE s3c6410.inc
AREA |C$$code|, CODE, READONLY
EXPORT StartUp ;声明全局变量
ENTRY
StartUp
;关闭看门狗
ldr r0,=WTCON
mov r1,#0
str r1,[r0]
;设置控制寄存器
ldr r0,=GPMCON
ldr r1,=0x00011111 ;设置为输出01
str r1,[r0] ;[r0]=r1,将r1中的字数据保存在[r0]所指的内存地址中
;关闭上下拉电阻
ldr r0,=GPMPUD
mov r1,#0
str r1,[r0]
show
;设置数据位
ldr r0,=GPMDAT
mov r1,#0x0000000a
str r1,[r0]
bl delay
bl delay
bl delay
bl delay
ldr r0,=GPMDAT
mov r1,#0x00000005
str r1,[r0]
bl delay
bl delay
bl delay
bl delay
b show
;GPG
;设置控制寄存器
;ldr r0,=GPGCON ;4
;ldr r1,=0x00010000
;tr r1,[r0]
;ldr r0,=GPGPUD
;mov r1,#0
;str r1,[r0]
;ldr r0,=GPGDAT
;mov r1,#0x0000004
;str r1,[r0]
b .
;loop
; b loop
delay ;即循环1000*100次
MOV R0,#1000
0
MOV R1,#1000
1
SUBS R1,R1,#1 ;r1-1
BNE %B1 ;如果r1不等于0
SUBS R0,R0,#1 ;如果r1=0,即1000减到为0,r0-1,就是100-1
BNE %B0 ;如果r0不等于0
MOV PC,LR
THEEND
END
飞凌官方LED程序(LED无变化):
init.s文件内容:
IMPORT Main
AREA |C$$code|, CODE, READONLY
global start
start
bl Main
END
main.c文件内容:
#define rGPMCON (*(volatile unsigned *)(0x7F008820))
#define rGPMDAT (*(volatile unsigned *)(0x7F008824))
#define rGPMPUD (*(volatile unsigned *)(0x7F008828))
void msDelay(int time)
{
volatile unsigned int i,j;
for(i = 0; i < 2000000; i++)
for(j=0; j<time; j++);
}
void GPIO_Init(void)
{
rGPMCON = 0x11111;
rGPMPUD = 0x00;
rGPMDAT = 0X1F;
}
void LedTest(void)
{
volatile unsigned int i;
while (1)
{
for(i=0; i<4; i++)
{
rGPMDAT = ~(1<<i);
msDelay(10);
}
}
}
void Main(void)
{
GPIO_Init();
LedTest();
} |
|