ダウンロード
Magazine
開発
アカウント
ダウンロード
Magazine
開発
ログイン
アカウント/パスワードを忘れた
アカウント作成
言語
ヘルプ
言語
ヘルプ
×
ログイン
ログイン名
パスワード
×
アカウント/パスワードを忘れた
日本語の翻訳状況
カテゴリ:
ソフトウェア
人物
PersonalForge
Magazine
Wiki
検索
OSDN
>
ソフトウェアを探す
>
システム
>
オペレーティングシステム カーネル
>
Hyper Operating System(ITRON仕様OS)
>
フォーラム
>
ヘルプ
>
CRE_CYC のサンプルありませんか?
Hyper Operating System(ITRON仕様OS)
Fork
概要
プロジェクト概要
開発ダッシュボード
Webページ
開発メンバー
画像ギャラリー
公開フィード一覧
活動
統計情報
活動履歴
ダウンロード
リリース一覧
統計
ソースコード
コードリポジトリリスト
Git
hos-v4a
CVS
リポジトリ閲覧
チケット
チケット一覧
マイルストーン一覧
チケットの種類一覧
コンポーネント一覧
よく使われるチケット一覧のリスト/RSS
新規チケット登録
文書
コミュニケーション
フォーラム
フォーラム一覧
開発者 (758)
ヘルプ (688)
公開討議 (342)
メーリングリスト
MLの一覧
hos-cvs
hos-git
ニュース
フォーラム:
ヘルプ
(スレッド #1112)
話題(スレッド)一覧に戻る
RSS
CRE_CYC のサンプルありませんか? (2002-09-18 20:30 by
匿名
#2030)
返信
チケットに引用
CRE_CYCを試そうと、以下のように準備したのですが
system,cfg
/* 周期ハンドラの生成 */
CRE_CYC(CYCID_SAMPLE1, {TA_STA, 4, Cychdr1, 100, 0});
sample.h
void Initialize(VP_INT exinf);
void Task1(VP_INT exinf);
void Task2(VP_INT exinf);
void Task3(VP_INT exinf);
void Cychdr1(VP_INT exinf);
sample.c
/* 初期化ハンドラ */
void Initialize(VP_INT exinf)
{
act_tsk(TSKID_SAMPLE1);
act_tsk(TSKID_SAMPLE2);
act_tsk(TSKID_SAMPLE3);
sta_cyc(CYCID_SAMPLE1);
}
void Cychdr1(VP_INT exinf){
int id;
short v;
id=(ID)exinf;
*(short *)0xa4000000=(short)id;/* LED */
}
...
で実行で、Task1,Task2,Task3は実行されてますがCychder1が実行されてない。
いい CRE_CYCのサンプルないでしょうか?
メッセージ #2030 への返信
×
題名
本文
メッセージ #2030 への返信 > CRE_CYCを試そうと、以下のように準備したのですが > system,cfg > /* 周期ハンドラの生成 */ > CRE_CYC(CYCID_SAMPLE1, {TA_STA, 4, Cychdr1, 100, 0}); > sample.h > void Initialize(VP_INT exinf); > void Task1(VP_INT exinf); > void Task2(VP_INT exinf); > void Task3(VP_INT exinf); > void Cychdr1(VP_INT exinf); > > sample.c > /* 初期化ハンドラ */ > void Initialize(VP_INT exinf) > { > act_tsk(TSKID_SAMPLE1); > act_tsk(TSKID_SAMPLE2); > act_tsk(TSKID_SAMPLE3); > sta_cyc(CYCID_SAMPLE1); > } > > void Cychdr1(VP_INT exinf){ > int id; > short v; > id=(ID)exinf; > *(short *)0xa4000000=(short)id;/* LED */ > } > ... > で実行で、Task1,Task2,Task3は実行されてますがCychder1が実行されてない。 > > いい CRE_CYCのサンプルないでしょうか?
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル
RE: CRE_CYC のサンプルありませんか? (2002-09-18 20:36 by
tkohama
#2032)
返信
チケットに引用
匿名でポストしてしまった。
試したソースは
http://dai5futou.tripod.co.jp/itron/sjis_hosv4.lzh
です。
#2030
への返信
メッセージ #2032 への返信
×
題名
本文
メッセージ #2032 への返信 > 匿名でポストしてしまった。 > 試したソースは > http://dai5futou.tripod.co.jp/itron/sjis_hosv4.lzh > です。
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル
RE: CRE_CYC のサンプルありませんか? (2002-09-18 22:05 by
m-arai
#2034)
返信
チケットに引用
これは多分バグです。
hos-v4/src/kernel/tim/sta_cyc.c
をご覧下さい。
/* コンテキストチェック */
#ifdef HOS_ERCHK_E_CTX
if ( mknl_sns_wai() )
{
mknl_unl_sys(); /* システムのロック解除 */
eturn E_CTX; /* コンテキスト不正 */
}
#endif
system.cfgでTA_STA属性にしても、初期化ハンドラで
sta_cyc()しても E_CTXになっているはずです。
取り敢えずの対策としては、優先順位最高のタスクの
先頭でsta_cycしてみてください。おそらく動きます。
#2032
への返信
メッセージ #2034 への返信
×
題名
本文
メッセージ #2034 への返信 > これは多分バグです。 > hos-v4/src/kernel/tim/sta_cyc.c > をご覧下さい。 > > /* コンテキストチェック */ > #ifdef HOS_ERCHK_E_CTX > if ( mknl_sns_wai() ) > { > mknl_unl_sys(); /* システムのロック解除 */ > eturn E_CTX; /* コンテキスト不正 */ > } > #endif > > system.cfgでTA_STA属性にしても、初期化ハンドラで > sta_cyc()しても E_CTXになっているはずです。 > > 取り敢えずの対策としては、優先順位最高のタスクの > 先頭でsta_cycしてみてください。おそらく動きます。
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル
RE: CRE_CYC のサンプルありませんか? (2002-09-18 22:12 by
m-arai
#2035)
返信
チケットに引用
最優先順位で、かつTA_ACT属性になっているか、初期化ハ
ンドラでsta_tsk()されているもの=一番最初に実行状態
になるタスク。
#同一優先順位だったら実行順位はどうなったっけか?
#2034
への返信
メッセージ #2035 への返信
×
題名
本文
メッセージ #2035 への返信 > 最優先順位で、かつTA_ACT属性になっているか、初期化ハ > ンドラでsta_tsk()されているもの=一番最初に実行状態 > になるタスク。 > > #同一優先順位だったら実行順位はどうなったっけか?
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル
RE: CRE_CYC のサンプルありませんか? (2002-09-19 08:49 by
匿名
#2043)
返信
チケットに引用
動作確認できました。感謝
sample.c
/* ------------------------------------------------------------------------ */
/* Hyper Operating System V4 サンプルプログラム */
/* */
/* Copyright (C) 1998-2002 by Project HOS */
/*
http://sourceforge.jp/projects/hos/
*/
/* ------------------------------------------------------------------------ */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "kernel.h"
#include "kernel_id.h"
#include "sh7750.h"
#include "sci.h"
/* メイン関数 */
int main()
{
/* 開始メッセージ */
*(short *)0xa4000002 = 0; /* IRQ1 off */
*(short *)0xa4000000 = 7; /* LED1..3 off */
prime_dumb_sci_scif(B38400);
printf("HOS-V4/SH4 sample program start. shc ver=%04x \n",__HITACHI_VERSION__);
sci_init(0);
sci_open(1,B38400);
sci_open(2,B38400);
sta_hos();
return 0;
}
/* 初期化ハンドラ */
void Initialize(VP_INT exinf)
{
act_tsk(TSKID_SAMPLE1);
act_tsk(TSKID_SAMPLE2);
act_tsk(TSKID_SAMPLE3);
}
/* サンプルタスク */
void Task1(VP_INT exinf)
{
int id;
SYSTIM st;
char buffer[32];
char hello[]="Task1 start\r\n";
id=(ID)exinf;
sci_puts(1,hello);
sta_cyc(CYCID_SAMPLE1); /* Cychdr1 開始 */
for ( ; ; )
{
/* タイマ値取得 */
get_tim(&st);
/* タイマ値出力 */
sprintf(buffer,"%f:sin=%f\r",(float)st.ltime/1000., sin((float)rand()/RAND_MAX));
sci_puts(1,buffer);
/* タスクメッセージ */
/* 0.007秒待つ */
dly_tsk(7);
}
}
void Task2(VP_INT exinf){
int id;
SYSTIM st;short v;
char buffer[32];
char hello[128]="Task2 start\r\n";
id=(ID)exinf;
sci_puts(2,hello);
for( ; ; )
{
get_tim(&st);
/* タイマ値出力 */
sprintf(buffer,"%f:Task%d \r",(float)st.ltime/1000., id);
sci_puts(2,buffer);
/* 0.005秒待つ */
dly_tsk(5);
}
}
void Task3(VP_INT exinf){
for( ; ; )
{
/* 0.030秒待つ */
dly_tsk(30);
}
}
void Cychdr1(VP_INT exinf){
short v;
v=*(short *)0xa4000000;
v++;
*(short *)0xa4000000=v; /* LED */
}
/* ------------------------------------------------------------------------ */
/* Copyright (C) 1998-2002 by Project HOS */
/*
http://sourceforge.jp/projects/hos/
*/
/* ------------------------------------------------------------------------ */
また、匿名
#2030
への返信
メッセージ #2043 への返信
×
題名
本文
メッセージ #2043 への返信 > 動作確認できました。感謝 > sample.c > /* ------------------------------------------------------------------------ */ > /* Hyper Operating System V4 サンプルプログラム */ > /* */ > /* Copyright (C) 1998-2002 by Project HOS */ > /* http://sourceforge.jp/projects/hos/ */ > /* ------------------------------------------------------------------------ */ > > #include <stdio.h> > #include <stdlib.h> > #include <math.h> > > #include "kernel.h" > #include "kernel_id.h" > #include "sh7750.h" > #include "sci.h" > > /* メイン関数 */ > int main() > { > /* 開始メッセージ */ > *(short *)0xa4000002 = 0; /* IRQ1 off */ > *(short *)0xa4000000 = 7; /* LED1..3 off */ > prime_dumb_sci_scif(B38400); > printf("HOS-V4/SH4 sample program start. shc ver=%04x \n",__HITACHI_VERSION__); > > sci_init(0); > sci_open(1,B38400); > sci_open(2,B38400); > > sta_hos(); > > return 0; > } > > > /* 初期化ハンドラ */ > void Initialize(VP_INT exinf) > { > act_tsk(TSKID_SAMPLE1); > act_tsk(TSKID_SAMPLE2); > act_tsk(TSKID_SAMPLE3); > } > > /* サンプルタスク */ > void Task1(VP_INT exinf) > { > int id; > SYSTIM st; > char buffer[32]; > char hello[]="Task1 start\r\n"; > id=(ID)exinf; > sci_puts(1,hello); > sta_cyc(CYCID_SAMPLE1); /* Cychdr1 開始 */ > for ( ; ; ) > { > /* タイマ値取得 */ > get_tim(&st); > /* タイマ値出力 */ > sprintf(buffer,"%f:sin=%f\r",(float)st.ltime/1000., sin((float)rand()/RAND_MAX)); > sci_puts(1,buffer); > /* タスクメッセージ */ > /* 0.007秒待つ */ > dly_tsk(7); > } > } > void Task2(VP_INT exinf){ > int id; > SYSTIM st;short v; > char buffer[32]; > char hello[128]="Task2 start\r\n"; > id=(ID)exinf; > sci_puts(2,hello); > for( ; ; ) > { > get_tim(&st); > /* タイマ値出力 */ > sprintf(buffer,"%f:Task%d \r",(float)st.ltime/1000., id); > sci_puts(2,buffer); > /* 0.005秒待つ */ > dly_tsk(5); > } > } > void Task3(VP_INT exinf){ > for( ; ; ) > { > /* 0.030秒待つ */ > dly_tsk(30); > } > } > > void Cychdr1(VP_INT exinf){ > short v; > v=*(short *)0xa4000000; > v++; > *(short *)0xa4000000=v; /* LED */ > } > > /* ------------------------------------------------------------------------ */ > /* Copyright (C) 1998-2002 by Project HOS */ > /* http://sourceforge.jp/projects/hos/ */ > /* ------------------------------------------------------------------------ */ > > また、匿名
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル
RE: CRE_CYC のサンプルありませんか? (2002-09-19 20:57 by
m-arai
#2069)
返信
チケットに引用
貴重な報告をありがとうございました。
CRE_CYCでのTA_STA属性指定が無効になってしまっていたのは
バグですが、初期化ハンドラでのsta_cycで周期ハンドラが実行状態
にならないことについては、今後の拡張も考慮に入れた上で改めて
非タスクコンテキストでは無効とする仕様であることを確認するなり、
有効になるようにするなりの措置をとることなるでしょう。
#2043
への返信
メッセージ #2069 への返信
×
題名
本文
メッセージ #2069 への返信 > 貴重な報告をありがとうございました。 > > CRE_CYCでのTA_STA属性指定が無効になってしまっていたのは > バグですが、初期化ハンドラでのsta_cycで周期ハンドラが実行状態 > にならないことについては、今後の拡張も考慮に入れた上で改めて > 非タスクコンテキストでは無効とする仕様であることを確認するなり、 > 有効になるようにするなりの措置をとることなるでしょう。 >
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル