(toppers-users 4555) Re: toppers/atk1のSH7147への移植

Y.Yoshimi bay.dragoon @ gmail.com
2016年 6月 8日 (水) 22:12:52 JST


智彦様

吉見です。アドバイスをくださり、誠にありがとうございます。
調べてみましたが、スタックサイズはどうやら足りているようでした…。


2016年6月6日 19:03 智彦 <fujii-tomohiko @ live.jp>:
>   Cプログラミングで20数年食べて来たプログラマです。
>
>  タスクが暴走する時最初に疑うのはタスクのスタックサイズです。
>
>   Windowsプログラマの場合、スタックサイズはWindowsが自動延長してくれるので
>
> 意識しなくてもいいんですが、toppersのように管理されていない場合自分で意識
>
> してサイズ管理する必要があります。
>
>  静的API CRE_TSK で指定しているスタックサイズは適正でしょうか。
>
>  以上、当たっていなかったらごめんなさい。
>
>                  2016/06/06 19:01 藤井智彦
>
>
>
>
> ________________________________
> 差出人: users-bounces @ toppers.jp <users-bounces @ toppers.jp> が Y.Yoshimi
> <bay.dragoon @ gmail.com> の代理で送信
> 送信日時: 2016年6月5日 20:36
> 宛先: users @ toppers.jp
> 件名: (toppers-users 4541) Re: toppers/atk1のSH7147への移植
>
> 片岡様
>
> 情報提供くださり、誠にありがとうございます。
>
> SH系が遅延スロットが無いマイコンだったかは確認してみないといけませんね…。
>
> 移植されたOSでは、「モータの制御をオンにしなかった場合は、1時間放置していても止まる現象が発生しなかった(※)」ので、もしかしたらモータ制御の方に問題があるかもしれません。
> ※モータ制御有りにすると、フリーズする場合は30秒もあればフリーズしていましたので、明らかに有意な差があると考えています。
>
> 付属のサンプルプログラムはおおよそ動いていたと記憶しておりますが、
> たまたま止まらずにいただけかも知れませんので、一度確認してみたほうが良いかもしれませんね…。
>
> 2016年6月4日 16:52 片岡 歩 <kata @ witz-inc.co.jp>:
>> 吉見さん
>>
>> 初めまして。片岡と申します。
>>
>> ATK1では、主に旧三菱系のM32Cなどを担当しておりました。
>> SH系はあまり詳しくは無いため、有識者よりご意見をいただきたいところです。
>>
>> また、最近はATK2の方がサポーターが多いと思いますので、時間が取れるので
>> あれば、そちらの方にチャレンジいただいても良いかと思います。
>> 保護機能などがついているものは少々移植難易度が高いと思いますが、
>> SC1という保護機能の無いクラスであれば、ATK1と大きな差は無いかと思います。
>>
>>
>> さて、私からは、機種依存部の構造としてわかる範囲で回答させていただきます。
>>
>> まず、記載いただいているactivate_rの処理ですが、タスクの先頭にジャンプする
>> 部分かと思います。
>> M32Cの様に遅延スロットが無いマイコンであれば、修正案と同様に
>>  1.割込みを許可
>>  2.タスクの先頭にジャンプ
>> というコードを記載します。
>> そもそも、タスク先頭にジャンプする直前であれば、OS内の管理データへの
>> アクセスは終えているはずなので、割込みを許可しても問題はありません。
>>
>> モーター制御プログラムの内容は分からないのでコメントが難しいですが、
>> 移植されたOSで、他に怪しいところはございませんでしょうか?
>> 割込みの出入口処理などは、意外とミスが入り込みやすいので、確認して
>> 頂ければと思います。
>>
>> ちなみに、移植されたときに、付属のサンプルプログラムはおおよそ動いている
>> という認識で良いでしょうか。
>>
>> 以上、よろしくお願いします。
>>
>> ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
>> ||
>> || (株)ヴィッツ
>> || 高信頼性PF開発部 ←部署名が11月1日から変わりました
>> ||
>> || 片岡 歩 E-mail:kata @ witz-inc.co.jp
>> ||
>> || 〒460-0008 名古屋市中区栄2-13-1 名古屋パークプレイス
>> || TEL:(052)220-1218
>> || FAX:(052)218-5855
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> -----Original Message----- From: Y.Yoshimi
>> Sent: Saturday, June 04, 2016 11:23 AM
>> To: users @ toppers.jp
>> Subject: (toppers-users 4539)toppers/atk1のSH7147への移植
>>
>> 初めまして。 吉見と申します。
>> このMLの主旨とは離れる内容なのかもしれませんが、質問(相談)をさせてください。
>>
>>
>>
>> 趣味でマイコンプログラミングをしているのですが、toppersを用いたプログラミングに興味を持ち、見よう見まねでSH7147にtoppers/atk1を移植してみました。
>>
>>
>> 移植したものの、上手く起動せず、
>>
>> cpu_Support.srcファイル内、activate_rの
>>
>> jmp @r2
>> ldc r3 , sr ; 遅延スロット、割り込み許可
>>
>>>>
>> ldc r3 , sr ; 遅延スロット、割り込み許可
>> jmp @r2
>> nop
>>
>> としたら、起動するようになりました。
>>
>> しかし、その後モータを動かしていると、
>> 頻繁にフリーズするようになりました。
>>
>> モータ制御中に止まることがあるので、モータ制御のプログラムが悪い可能性もありますが、
>> 上記の変更の結果、「割り込み許可しちゃいけない所で割り込み許可をしてしまったこと」が原因なのかと考えていますが、元に戻すと起動しないという状況で…。
>>
>> もし、移植時に似たようなトラブルを抱えたことがある方がいらっしゃいましたら
>> 何かアドバイスをご教示くださると有難いです。
>>
>> 以上、よろしくお願いします。