主题 : rvds环境下tiny6410的简单裸机程序,无法调试和运行,请教。。。 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 68356
精华: 0
发帖: 20
金钱: 105 两
威望: 21 点
贡献值: 0 点
综合积分: 40 分
注册时间: 2012-04-21
最后登录: 2017-06-15
楼主  发表于: 2014-03-02 09:17

 rvds环境下tiny6410的简单裸机程序,无法调试和运行,请教。。。

tiny6410的开发板的一个裸机跑马灯程序,不知道问题出在哪儿?从rvds中debug后,在AXD启动的同时,弹出一个对话框提示"Failed to set breakpoint"
之后在单步调试的时候一直停留在bl    Main
全速运行后,跳到Disassembly。。。

代码如下:
//init.s
    IMPORT        Main

    AREA |C$$code|, CODE, READONLY
    global        start

start
    bl        Main
    
    END

//main.c
// 功能:四个发光二极管LED将轮流闪烁,最终实现流水灯效果
// LED1,LED2,LED3,LED4 = GPK4,GPK5,GPK6,GPK7


#define rGPKCON0    (*(volatile unsigned *)(0x7F008800))
#define rGPKCON1    (*(volatile unsigned *)(0x7F008804))
#define rGPKDAT        (*(volatile unsigned *)(0x7F008808))
#define rGPKPUD        (*(volatile unsigned *)(0x7F00880C))

void DelayMs(int time)
{
    volatile unsigned int i,j;
    for(i=0 ; i<2000000 ; i++)
    {
        for(j=0 ; j<time ; j++)
        {
            
        }
    }
}

void GpioInit(void)
{
    rGPKCON0 = 0x11111111;
    rGPKCON1 = 0x11111111;
    rGPKDAT = 0xFFFF;
    rGPKPUD = 0x00000000;
}

void LedTest(void)
{
    volatile unsigned int i;
    while(1)
    {
        for(i=0 ; i<4 ; i++)
        {
            rGPKDAT = ~(1<<(i+4));//GPK4,GPK5,GPK6,GPK7
            DelayMs(10);
        }
    }
}

void Main(void)
{
    GpioInit();
    LedTest();
}

请高人指点一下。。。。。
级别: 新手上路
UID: 68356
精华: 0
发帖: 20
金钱: 105 两
威望: 21 点
贡献值: 0 点
综合积分: 40 分
注册时间: 2012-04-21
最后登录: 2017-06-15
1楼  发表于: 2014-03-02 09:26

 回 楼主(xzw0924) 的帖子

使用的是JTAG