(toppers-users 3401) Re: INTNO_XXXの利用について

suikan suikan7 @ yahoo.co.jp
2011年 2月 10日 (木) 22:45:27 JST


酔漢です

杉本さん、高田先生、回答ありがとうございます。

インクルードすべきファイルについてはわかりました。ポーティング・ガイドの
方針は、実装側が
すべきことととしては理解していましたが、ユーザーがどうするべきかという点
でよく理解できてい
なかったため、質問した次第です。kernel.h、sil.hに加えてターゲット名.hを
インクルードするようにします。

ありがとうございました。

酔漢

(2011/02/09 10:13), Hiroaki TAKADA wrote:
> 酔漢さん、杉本さん
>
> 杉本さんの認識で合っています。
>
> target_config.hをアプリ―ションからインクルードするのは避ける
> べきです。ターゲット毎の定義ファイルについては、ポーティング
> ガイドの6.1.1節(a)に記述してあります。
>
> JSPカーネルでは、この辺が整理できていなかったのですが、ASPカー
> ネルでは整理してあるはずです。
>
> 高田広章
> 名古屋大学
>
> (11/02/08 23:12), Meika Sugimoto wrote:
>> 酔漢さん
>>
>> 杉本です.
>>
>> 正確なところは分からないのですが,私の認識を
>> 書くことにします.
>>
>>> 1) INTNO_XXXは必須か
>> 必須でないものと考えてポーティングしています.
>> その根拠ですが,INTNO_XXXはタイマ割り込み,シリアル割り込みなど
>> 慣例的に使われてはいるものの,ターゲット依存部で自由に
>> 命名することができるためです.
>>
>> target_serial.cfgやtarget_timer.cfgで別の名前を
>> 使ってもターゲット依存部に閉じているので影響はありません.
>>
>> ということから必須でないと捉えています.
>>
>>> 2) INTNO_XXXを利用する方法
>> target_config.hはカーネル実装のターゲット依存部という
>> 位置付けなので,アプリケーションからインクルードするものでは
>> ないと位置付けのファイルではないでしょうか.
>>
>> そうすると割り込み番号などの情報を得るとすると
>> ターゲット毎の定義ファイルになりそうです.
>> m68kであればdve68k.hをインクルードすることになります.
>>
>> アプリケーションからすると環境が変わるとインクルードする
>> ファイルが変わることになりますが,そもそも割り込み関連は
>> どうしても違いが出るので,しかたないのかなと思います.
>>
>>
>> ちなみにアプリケーションからターゲットに依存せず割り込み操作を
>> しようという意図でしょうか?
>> その場合,直接ena_intやdis_intを使わずに,ドライバの方にI/Fを設けて
>> 隠蔽するほうがお行儀としてはよさそうですね.
>> ASPのタイマ,シリアルにそのような機能はありませんが…
>>
>> 以上,よろしくお願いします.
>>
>>
>> (2011/02/08 22:51), suikan wrote:
>>> こんにちは。酔漢です。
>>>
>>> TOPPERS/ASPのLPC1768(CORTEX-M3)用非公式ターゲット依存部をメンテしてい
>>> ます。
>>> http://sourceforge.jp/projects/toppersasp4lpc/
>>>
>>> 表題の件について二つほど質問があります(カーネル非依存部1.6)。
>>>
>>> 1) INTNO_XXXは必須か
>>> まず、INTNO_XXXの扱いですが、この定数はASPカーネルではターゲット依存部が
>>> 用意しなくても良いのでしょうか。JSPカーネルの場 合、doc/config.xtにて
>>> 「ena_int, dis_intを実装するときには」INTNO_XXXをユーザーアプリケーショ
>>> ン用に用意すべきとなっています。しかし、ASPカーネルの場合はdoc 以下の文
>>> 書にはそのような記述はありません。
>>>
>>>
>>> INTNO_XXXはオプションなのでしょうか。アプリケーションやCFGファイルで使用
>>> しますので、ターゲット依存部で必ず宣言するよう取り決 めていただく方が
>>> ユーザーとしては助かります。調べたところ、CORTEX-M3のCQ-STARM依存部で
>>> は、INTNO_XXXを宣言してい ません。
>>>
>>> 2) INTNO_XXXを利用する方法
>>> m68k実装を見ると、INTNO_XXXはターゲット名と同じ名前のインクルードファイ
>>> ル(dve68k.h)にて宣言されており、これを target_config.hがインクルードして
>>> います。
>>>
>>> しかし、target_config.hは、kernel.h、sil.hいずれからもインクルードされて
>>> いません。結局、ena_int()を アプリケーションで使おうとすると、m68k実装
>>> (およびそれに倣った他の実装)では、引数でINTNO_XXXを使うためには
>>> target_config.hを別に読み込まなければなりません。
>>>
>>> これはどうも、カーネル設計の意図するところではないような気がするのです
>>> が、バグでしょうか。それとも、明示的に target_config.hを読み込んで使うと
>>> 言うことでしょうか。
>>>
>>> 以上、どなたかお教えくださいますようお願いします。
>>>
>>> 酔漢
>>>
>>> --------------------------------------
>>> Get the new Internet Explorer 8 optimized for Yahoo! JAPAN
>>> http://pr.mail.yahoo.co.jp/ie8/
>>>
>>
>


-- 
酔漢
Blackfin 空挺団           http://blackfin.s36.coreserver.jp/
TOPPERS/JSP for Blackfin  http://sourceforge.jp/projects/toppersjsp4bf/
Blog                      http://blackfin.g.hatena.ne.jp/suikan/

--------------------------------------
Get the new Internet Explorer 8 optimized for Yahoo! JAPAN
http://pr.mail.yahoo.co.jp/ie8/