Mini210S 開発キットOSなしのプログラム開発手順連載(22)

Mini210S/Tiny210等開発ボード関連のフォラーム

Mini210S 開発キットOSなしのプログラム開発手順連載(22)

投稿記事by dwtechadm » 金 5 10, 2013 5:50 pm

Mini210S 開発キット詳細URL


第XVII章 ウォッチドッグタイマとリセット

第一節  S5PV210ウォッチドッグタイマ
S5PV210の ウォッチドッグタイマは普通の16bitタイマと同じで、それは PWM タイマと異なったのはウォッチドッグタイマがreset発信できます。S5PV210 ウォッチドッグタイマの構造図は下記の通りです:
画像


第二節 程序相关讲解プログラム説明
完全なコードは、ディレクトリ17.watchdogご参照ください。

1. main.c
手順は4つあります:
ステップ 1 シリアルポート初期化;
ステップ 2 割り込み初期化;
ステップ 3 ウォッチドッグテスト、関数 wtd_test()を呼び出し、 wtd.c 中に定義されます;
ステップ 4 無限ループ、ウォッチドッグ割り込み発生を待ちます;

2. wtd.c
wtd_test()手順は4つあります:
ステップ 1 VIC 割り込み設定、 WTDハンドラ関数をisr_wtd()と設定し、割り込みをオンにします;
ステップ 2 ウォッチドッグタイマ機能テスト、関数 wtd_operate()を呼び出し、ここではタイマ機能を使用して、 reset 機能は使用しません;
wtd_operate()コード:

void wtd_operate(unsigned long uenreset、 unsigned long uenint、 unsigned long uselectclk、
unsigned long uenwtd、 unsigned long uprescaler、unsigned long uwtdat、 unsigned long
uwtcnt)
{
WTDAT = uwtdat;
WTCNT = uwtcnt;

/*uenreset: resetオン状態判断
*uenint: 割り込みオン状態判断
*uselectclk: 分周係数
*uenwtd: タイマオン状態判断
*bit[8:15]:プリスケーラ因子
*/
WTCON= (uenreset<<0)|(uenint<<2)|(uselectclk<<3)|(uenwtd<<5)|((uprescaler)<<8);
}
先ずカウント相関のレジスタWTDAT と WTCNTを設定します、レジスタ WTDAT はウォッチドッグタイマのタイムアウト時間を管理します的、ウォッチドッグタイマ起動後、レジスタ WTDATの値は自動的レジスタ WTCNTに送信します、 WTCNTのカウントは 0になると:割り込みがオンな場合、割り込みします;resetがオンな場合、resetを送信します、WTDATの値をロードし、リカウントします。
画像
レジスタ WTCON を設定し、 reset機能、割り込み、分周、タイマ機能などを設定します:
画像
ウォッチドッグの割り込みハンドラ関数、コードは:
void isr_wtd()
{
//割り込み回数を記録
static int wtdcounter=0;
printf("%d\r\n"、++wtdcounter);

// ウォッチドッグ割り込みクリア
WTCLRINT = 1;
// VIC 割り込みクリア
intc_clearvectaddr();
if(wtdcounter==5)
{
// reset ウォッチドッグ
printf("waiting system reset\r\n");
wtd_operate(1、1、0、1、100、100000000、100000000);
}
}
手順は3つあります:
ステップ 1 割り込み回数をプリントアウト;
ステップ 2 割り込みクリア;
ステップ 3 割り込みが5回発生すると、ウォッチドッグの reset機能を使用、システムリセット;


第三節 コードコンパイルとプログラミングの実行
コードをコンパイルし、Fedora端末で下記のコマンドを実行します:
# cd 17.watchdog
# make
 17.watchdogのディレクトリ下にwatchdog.binを生成し、それを開発ボードにプログラムします。


第四節 実験現象
先ず 1、2、3、4...、をプリントアウトし、5になると、ウォッチドッグの reset機能起用、システムがrise、ウォッチドッグのリセット機能が正常に作動します。実際効果は下記図ご参照ください:
画像





---続く
dwtechadm
 
記事: 60
登録日時: 月 2 25, 2013 1:35 pm

Return to Cortex-A8関連

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[0人]

cron