yoyoic 发表于 2011-11-23 10:43:39

请问仿真飞凌嵌入式官方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();
}

yoyoic 发表于 2011-11-23 12:38:34

飞凌的支持不能回答该问题吗?

yoyoic 发表于 2011-11-23 13:31:55

顶一下,期望解答?

飞凌-chongzi 发表于 2011-11-23 13:33:17

检查一下对寄存器的操作,地址是否正确

yoyoic 发表于 2011-11-23 13:43:12

这是官方逻辑视频提供的程序,我对比了下,对寄存器的操作没有错。

yoyoic 发表于 2011-11-23 13:44:46

所以感觉很迷惑,官方裸机视频也没有看到实际运行情况。AXD的表现与官方教程一样,就是LED能不亮。

flower 发表于 2011-11-25 12:39:32

是不是设置什么的有问题呢,好好检查一下吧

不得了 发表于 2012-5-8 21:44:05

页: [1]
查看完整版本: 请问仿真飞凌嵌入式官方LED裸奔程序无反映是什么原因?