亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1891 | 回復(fù): 4
打印 上一主題 下一主題

[其它] 這測試代碼的問題在哪里??? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-11-17 16:59 |只看該作者 |倒序瀏覽
測試了一整天,還是沒有找到問題。本來是要做 watchdog 定時 產(chǎn)生 中斷,點燈的實驗~~~現(xiàn)在程序出了點問題,把代碼 閹割了,找問題~~
但是現(xiàn)在,還是未能得到預(yù)期結(jié)果
***********************************************************
Makefile

objs := head.o main.o

led.bin: $(objs)
        arm-linux-ld -Ttext 0x00000000 -o led_elf $^
        arm-linux-objcopy -O binary -S led_elf $@
        arm-linux-objdump -D -m arm led_elf > led.dis
       
%.o:%.c
        arm-linux-gcc -Wall -O2 -c -o $@ $<

%.o:%.S
        arm-linux-gcc -Wall -O2 -c -o $@ $<

clean:
        rm -f led.bin led_elf led.dis *.o

***************************************************************
head.S

.extern        main
.text
.global _start
_start:
        b        Reset
       
HandleUndef:
        b        HandleUndef
       
HandleSWI:
        b        HandleSWI
       
HandlePrefetchAbort:
        b        HandlePrefetchAbort
       
HandleDataAbort:
    b   HandleDataAbort
       
HandleNotUsed:
    b   HandleNotUsed

HandleIRQ:
        b   HandleIRQ

HandleFIQ:
    b   HandleFIQ
       
Reset:                   
        ldr        sp, =4096         @ 設(shè)置堆棧,
    bl        clock_init       @初始化系統(tǒng)時鐘
       
        msr cpsr_c, #0xd2    @ 進入中斷模式
        ldr sp,=3072
                       
        msr cpsr_c, #0xd3    @ 進入系統(tǒng)模式
        ldr sp, =4096
       
        msr cpsr_c, #0x5f   @設(shè)置I-bit=0,開IRQ中斷
                       
                       
        ldr lr, =halt_loop      @ 設(shè)置返回地址
        ldr pc, =main           @ 調(diào)用main函數(shù)
halt_loop:
    b   halt_loop
                       
******************************************************************

main.c(主程序)

#define S3C2440_MPLL_200MHZ        ((0x5c<<12)|(0x01<<4)|(0x02))

//初始化系統(tǒng)時鐘 FCLK=200MHz,HCLK=100MHz,PCLK=50MHz

void clock_init(void)
{
        CLKDIVN  = 0x03;
       
        __asm__(
    "mrc    p15, 0, r1, c1, c0, 0\n"      
    "orr    r1, r1, #0xc0000000\n"         
    "mcr    p15, 0, r1, c1, c0, 0\n"     
    );
       
        MPLLCON = S3C2440_MPLL_200MHZ;
       
}

void led_on()         //亮燈
{
        GPFDAT&=~(0X7<<4);
}

void led_off() //滅燈
{
        GPFDAT|=(0X7<<4);
}

void led_init() //初始化 LED 管腳
{       
        //清理 0
        GPFCON&=~((3<<|(3<<10)|(3<<12));
        //置 1
        GPFCON|=((1<<|(1<<10)|(1<<12));
       
        led_off();
}

/*  屏蔽*************************
void init_irq()  //初始化中斷(watchdog)
{
        //設(shè)置為 每 1 秒 產(chǎn)生一次中斷
        WTCON = 0x3d<<8;
        WTDAT = 50000;
        WTCNT = 50000;
        WTCON|= (1<<5)|(1<<2);
        //開 watchdog 中斷
        INTSUBMSK&=~(0x1<<13);
        INTMSK&=~(0x1<<9);
}
*/
void  wait(volatile unsigned long dly)

{       
         for(; dly > 0; dly--);
}

static int flag=0;
void WAT_Handl()
{
        //清除中斷
        SUBSRCPND = 0x1<<13;
        SRCPND = 0x1<<9;
    INTPND = 0x1<<9;
        if(flag==0)
        {
                led_on();
                flag=1;
                wait(3000000)
        }
        else
        {       
                led_off();
                flag=0;
                wait(3000000)
        }

}

int main(void)
{
        led_init();
        //init_irq();
       
        while(1)
        {
                void WAT_Handl()
        }
        return 0;
}

論壇徽章:
0
2 [報告]
發(fā)表于 2013-11-17 17:00 |只看該作者
把,生成的 led.bin文件,燒寫 到開發(fā)板,
燈 只是亮 ,不會滅

論壇徽章:
0
3 [報告]
發(fā)表于 2013-11-17 19:24 |只看該作者
求救啊~~~給位大神

論壇徽章:
0
4 [報告]
發(fā)表于 2013-11-17 20:00 |只看該作者
我把代碼精簡成這樣

static int  flag=0;
void WAT_Handl()
{
        if(flag==0)
        {
                led_on();
                flag=1;
                wait(300000);
        }
        else
        {       
                led_off();
                flag=0;
                wait(300000);
        }

}

void disable_watchdog()
{
        WTCON = 0;
}

int main(void)
{
        led_init();
        disable_watchdog();
       
        while(1)
        {
                WAT_Handl();
        }
        return 0;
}


還是不行~~~~燈 亮了 就 不滅

論壇徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵節(jié)徽章
日期:2015-03-06 15:50:392015亞冠之大阪鋼巴
日期:2015-06-12 16:01:352015年中國系統(tǒng)架構(gòu)師大會
日期:2015-06-29 16:11:2815-16賽季CBA聯(lián)賽之四川
日期:2018-12-17 14:10:21
5 [報告]
發(fā)表于 2013-11-18 09:55 |只看該作者
你把flag作為 WAT_Handl的參數(shù)傳遞
main里的while里面這么寫

WAT_Handl(1)
sleep(1)
WAT_Handl(0)
就閃爍了
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP