6

私は組み込みプログラミングの初心者です。私はクレーンボード(ARM Cortex A8)に取り組んでいます。ソースコードはgithubで入手できます。

GPIOを介して接続された外部LEDを点滅させるためのCコードを作成しました。u-bootコンソールでコマンドとして実行できます。現在、

Ctrl-CでLEDの点滅を止めることができません。
Ctrl-C割り込みのコーディングはどこにありますか?

ret=set_mmc_mux();
if(ret<0)
    printf("\n\nLED failed to glow!\n\n");
else{
        if(!omap_request_gpio(lpin))
    {
        omap_set_gpio_direction(lpin,0);

        for(i=1;i<21;i++)
        {
            ctr=0;
            if((i%2)==0)
            {
                num=num-1;
                omap_set_gpio_dataout(lpin,num);
            }
            else
            {
                num=num+1;
                omap_set_gpio_dataout(lpin,num);
            }

                    udelay(3000000);
             }

        }
}

親切に案内してください。

4

2 に答える 2

3

ubootctrlc関数を試してください:

if(ctrlc())
    return 1; // or whatever else you want to do
于 2013-02-27T08:14:07.090 に答える
1

低レベルで作業しているため、使用する必要のあるメソッドも低レベルです。

  • ループ内のUARTの「データ利用可能」フラグを確認します。これはハードウェアに大きく依存しますが、通常はレジスタを読み取り、一部のビットをマスクして、正しいビットが設定されているかどうかを確認します。
  • データが利用可能な場合は、それがCTRL-C()文字であるかどうかを確認し、利用可能な場合は0x03終了し、利用できない場合は破棄します

nneonneoの答えを見たので、それが関数のctrlc()機能だと思います...

于 2013-02-27T10:56:00.753 に答える