请问仿真飞凌嵌入式官方LED裸奔程序无反映是什么原因?
我安装飞凌官方的教程安装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,
;设置控制寄存器
ldr r0,=GPMCON
ldr r1,=0x00011111 ;设置为输出01
str r1, ;=r1,将r1中的字数据保存在所指的内存地址中
;关闭上下拉电阻
ldr r0,=GPMPUD
mov r1,#0
str r1,
show
;设置数据位
ldr r0,=GPMDAT
mov r1,#0x0000000a
str r1,
bl delay
bl delay
bl delay
bldelay
ldr r0,=GPMDAT
mov r1,#0x00000005
str r1,
bl delay
bl delay
bl delay
bldelay
b show
;GPG
;设置控制寄存器
;ldr r0,=GPGCON;4
;ldr r1,=0x00010000
;tr r1,
;ldr r0,=GPGPUD
;mov r1,#0
;str r1,
;ldr r0,=GPGDAT
;mov r1,#0x0000004
;str r1,
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();
} 飞凌的支持不能回答该问题吗? 顶一下,期望解答? 检查一下对寄存器的操作,地址是否正确 这是官方逻辑视频提供的程序,我对比了下,对寄存器的操作没有错。 所以感觉很迷惑,官方裸机视频也没有看到实际运行情况。AXD的表现与官方教程一样,就是LED能不亮。 是不是设置什么的有问题呢,好好检查一下吧
页:
[1]