Download
Magazine
Develop
Account
Download
Magazine
Develop
Login
Forgot Account/Password
Create Account
Language
Help
Language
Help
×
Login
Login Name
Password
×
Forgot Account/Password
Category:
Software
People
PersonalForge
Magazine
Wiki
Search
OSDN
>
Find Software
>
System
>
Operating System Kernels
>
Hyper Operating System(ITRON仕様OS)
>
Forums
>
Help
>
SCIでオーバーランエラーが発生してしまいます
Hyper Operating System(ITRON仕様OS)
Fork
Description
Project Summary
Developer Dashboard
Web Page
Developers
Image Gallery
List of RSS Feeds
Activity
Statistics
History
Downloads
List of Releases
Stats
Source Code
Code Repository list
Git
hos-v4a
CVS
View Repository
Ticket
Ticket List
Milestone List
Type List
Component List
List of frequently used tickets/RSS
Submit New Ticket
Documents
Communication
Forums
List of Forums
Developers (758)
Help (688)
Open Discussion (342)
Mailing Lists
list of ML
hos-cvs
hos-git
News
Forums:
Help
(Thread #9304)
Return to Thread list
RSS
SCIでオーバーランエラーが発生してしまいます (2005-11-12 04:12 by
knuth
#17807)
Reply
Create ticket
H8/3068アドバンスモードで16MHz動作させています。
HOSの搭載を終え、SCIの受信ルーチンを登録したのですが、9600BPSでも数十バイトの受信でオーバーランエラーが出てしまいます。
受信の割り込みルーチン内では受信用のリングバッファ(内蔵RAM)にRDRの値を格納後クリアしているだけの最小限の処理にとどめているつもりです。
hospac.h内のH83_IMSK_UI_BITとH83_IMSK_LEVEL?等をからめてchg_imskやfchg_imskを適所で発行することでこの問題は解決可能なのでしょうか?
それともchg_imskやfchg_imskは目的として見当違いなのでしょうか...
受信割込みをOSの割込ハンドラーの管理から外して直接ベクタ割込みを処理する方法も試してみようかと思案中です。
Reply to #17807
×
Subject
Body
Reply To Message #17807 > H8/3068アドバンスモードで16MHz動作させています。 > HOSの搭載を終え、SCIの受信ルーチンを登録したのですが、9600BPSでも数十バイトの受信でオーバーランエラーが出てしまいます。 > 受信の割り込みルーチン内では受信用のリングバッファ(内蔵RAM)にRDRの値を格納後クリアしているだけの最小限の処理にとどめているつもりです。 > hospac.h内のH83_IMSK_UI_BITとH83_IMSK_LEVEL?等をからめてchg_imskやfchg_imskを適所で発行することでこの問題は解決可能なのでしょうか? > それともchg_imskやfchg_imskは目的として見当違いなのでしょうか... > 受信割込みをOSの割込ハンドラーの管理から外して直接ベクタ割込みを処理する方法も試してみようかと思案中です。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: SCIでオーバーランエラーが発生してしまいます (2005-11-12 18:45 by
hamayan
#17811)
Reply
Create ticket
すいません、今忙しくて実験できないのですが、SCIで取りこぼしを防ぐには、少なくとも割り込みの優先度を上げて使う必要があると思います。
OSの管理外の割り込みとする場合でも、やはり優先度をOSの割り込みより上げる必要があります。
H8のSCIにはバッファが無いので、結構厳しいんですよね。
Reply to
#17807
Reply to #17811
×
Subject
Body
Reply To Message #17811 > すいません、今忙しくて実験できないのですが、SCIで取りこぼしを防ぐには、少なくとも割り込みの優先度を上げて使う必要があると思います。 > OSの管理外の割り込みとする場合でも、やはり優先度をOSの割り込みより上げる必要があります。 > > H8のSCIにはバッファが無いので、結構厳しいんですよね。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: SCIでオーバーランエラーが発生してしまいます (2005-11-14 16:05 by
knuth
#17841)
Reply
Create ticket
アドバイスいただきありがとうございます。
試行錯誤の結果、下記の方法にてオーバーランエラーが発生しなくなりました
この方法であればSCIの割り込みをOSの管理外にしなくても済みそうです。
(1024バイトの一括受信で38400BPSまで確認した結果です)
(1)スタートアップルーチンにてSYSCRのUEを1にセット、
割り込み優先順位の制御を有効にしておく。
SYSCR .equ h'fee012
mov.b #h'01,r0l ;CCR-UIビットを割込マスクビットとして使用
mov.b r0l,@SYSCR
(2)SCI0,SCI1,SCI2の初期化ルーチンにてIRPBの対応ビットを1にセット、
SCI割り込みの優先順位を上げる。
INTC.IPRB.BIT._SCI0 = 1; /* SCI0の割り込みは高優先 */
INTC.IPRB.BIT._SCI1 = 1; /* SCI1の割り込みは高優先 */
INTC.IPRB.BIT._SCI2 = 1; /* SCI2の割り込みは高優先 */
(3)OSタイマ用ITU0の割り込みハンドラの入り口で割り込みマスクの設定を変更、
fchg_imskの引数はH83_IMSK_LEVEL1とする。
void OsTimer_TimerHandler(VP_INT exinf)
{
fchg_imsk(H83_IMSK_LEVEL1);
ITU.TISRA.BIT.IMFA0 = 0; /* 割り込み要因クリア */
isig_tim(); /* タイムティック更新 */
}
以上です、多重割込制御の理解があやしいのであくまで実績なのですが...
xxx_imskの使用方法が間違っいるようでしたら御指摘のほどお願いします
尚、レジスタ名称はルネサス提供CPU別ヘッダ-ファイルでの定義名称です
Reply to
#17807
Reply to #17841
×
Subject
Body
Reply To Message #17841 > アドバイスいただきありがとうございます。 > > 試行錯誤の結果、下記の方法にてオーバーランエラーが発生しなくなりました > この方法であればSCIの割り込みをOSの管理外にしなくても済みそうです。 > (1024バイトの一括受信で38400BPSまで確認した結果です) > > > (1)スタートアップルーチンにてSYSCRのUEを1にセット、 > 割り込み優先順位の制御を有効にしておく。 > > SYSCR .equ h'fee012 > mov.b #h'01,r0l ;CCR-UIビットを割込マスクビットとして使用 > mov.b r0l,@SYSCR > > (2)SCI0,SCI1,SCI2の初期化ルーチンにてIRPBの対応ビットを1にセット、 > SCI割り込みの優先順位を上げる。 > > INTC.IPRB.BIT._SCI0 = 1; /* SCI0の割り込みは高優先 */ > INTC.IPRB.BIT._SCI1 = 1; /* SCI1の割り込みは高優先 */ > INTC.IPRB.BIT._SCI2 = 1; /* SCI2の割り込みは高優先 */ > > (3)OSタイマ用ITU0の割り込みハンドラの入り口で割り込みマスクの設定を変更、 > fchg_imskの引数はH83_IMSK_LEVEL1とする。 > > void OsTimer_TimerHandler(VP_INT exinf) > { > fchg_imsk(H83_IMSK_LEVEL1); > ITU.TISRA.BIT.IMFA0 = 0; /* 割り込み要因クリア */ > isig_tim(); /* タイムティック更新 */ > } > > 以上です、多重割込制御の理解があやしいのであくまで実績なのですが... > xxx_imskの使用方法が間違っいるようでしたら御指摘のほどお願いします > 尚、レジスタ名称はルネサス提供CPU別ヘッダ-ファイルでの定義名称です
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: SCIでオーバーランエラーが発生してしまいます (2005-11-14 17:27 by
hamayan
#17842)
Reply
Create ticket
御世話になっています。
h83.txtの「3. H8/300H 固有の関数」を読む限り、この使い方で大丈夫そうですね。
なんとなく、H8の多重割り込みの具体例が示されたのはこれが始めての様な気がします。
貴重な情報ありがとうございます。
きっとこの後、m-araiさんが何か良い事を言うに違いない。
Reply to
#17841
Reply to #17842
×
Subject
Body
Reply To Message #17842 > 御世話になっています。 > > h83.txtの「3. H8/300H 固有の関数」を読む限り、この使い方で大丈夫そうですね。 > なんとなく、H8の多重割り込みの具体例が示されたのはこれが始めての様な気がします。 > 貴重な情報ありがとうございます。 > > きっとこの後、m-araiさんが何か良い事を言うに違いない。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: SCIでオーバーランエラーが発生してしまいます (2005-11-14 18:57 by
m-arai
#17846)
Reply
Create ticket
良いことは言えませんが出てきました。
#フォローするなら実験してみてからと思っていたら、
#出遅れました。最近、週末は気力なく寝て過ごして
#しまう傾向がありまして(-_-;
SCIの割り込み優先度を上げての多重割り込みは効果が
あったようですね。
実は使ったことはありませんが、xxx_imskの使い方は
問題ないと思います。
とまぁ、これだけでは何なので、ふと思いついた
別解(になるかもしれない)を一つ。
それは、システムが許せばの話ですが、タイム
スケールを大きくすること、場合によってはタイム
テックの供給を必要に応じて一時的に止めてしまう
ことです。
かなり無理やり(かつ疑問含み)ですが。
Reply to
#17842
Reply to #17846
×
Subject
Body
Reply To Message #17846 > 良いことは言えませんが出てきました。 > > #フォローするなら実験してみてからと思っていたら、 > #出遅れました。最近、週末は気力なく寝て過ごして > #しまう傾向がありまして(-_-; > > SCIの割り込み優先度を上げての多重割り込みは効果が > あったようですね。 > > 実は使ったことはありませんが、xxx_imskの使い方は > 問題ないと思います。 > > とまぁ、これだけでは何なので、ふと思いついた > 別解(になるかもしれない)を一つ。 > > それは、システムが許せばの話ですが、タイム > スケールを大きくすること、場合によってはタイム > テックの供給を必要に応じて一時的に止めてしまう > ことです。 > > かなり無理やり(かつ疑問含み)ですが。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: SCIでオーバーランエラーが発生してしまいます (2005-11-14 23:36 by
knuth
#17856)
Reply
Create ticket
hamayan様
m-arai様
ありがとうございました!
おかげさまで安心できました。
引き続きオーバーランエラーをモニターしながら通信部の上位層を作り込んでみます。
またよろしくお願い致します<(_ _)>
Reply to
#17846
Reply to #17856
×
Subject
Body
Reply To Message #17856 > hamayan様 > m-arai様 > ありがとうございました! > > おかげさまで安心できました。 > 引き続きオーバーランエラーをモニターしながら通信部の上位層を作り込んでみます。 > > またよろしくお願い致します<(_ _)>
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel