プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になっています。
組込み分野によく、OSを搭載するという話を聞きます。
私自身、Keilという会社のIDEであるμVisionという統合開発環境を使って、ARM7TDMIコアCPUのプログラムをC言語で書いています。特に、グラフィックLCDを使ったので、1ライン(8bit)を書くのに費やす時間を極限まで(自分でできる限り^^;)縮小して、メインのループの邪魔にならないように、処理しました。

OSを使えば、タスク処理ができるとの情報を得て、興味がわき、調べてみました。LCDを使ってたので、処理を個別に記述して、あとはタスクに任せれば、メインのループ処理とのかねあいをあまり気にせずプログラミングできるのではないかとの漠然とした考えからです。

私の使用しているCPU自体は、どうやらOSというものを搭載することができるそうなのですが、OSを使用してののプログラミングのイメージがつかみにくい、またそもそもOSとはバイナリで提供され、それをCPUへダウンロードするのか? 等々、いろいろな本を買い漁ったり(会社経費^^;)、WEBを探したりしましたが、やはり漠然としかわからないままでいてます。

OSを使って開発するというのは、いま私が使用しているKeil開発環境以外のものを使って開発・デバッグするということでしょうか?
また気軽にOSを入れて(?)プログラミングができるようなお試し環境などあるのでしょうか?

せめて、「こういう本読め」のようなご意見でもかまいませんので、よろしくご指導お願いいたします。

A 回答 (6件)

>特に、グラフィックLCDを使ったので、1ライン(8bit)を書くのに費やす時間を極限まで(自分でできる限り^^;)縮小して、メインのループの邪魔にならないように、処理しました。


LCDの制御ぐらいでしたら、タイマ割り込みで実現可能ではないでしょうか?タイマで一定周期で割り込んで、LCDの表示処理を行えばメインループへの負荷もさほど問題とならないと思います。
これで問題あるようなメインループ処理なら、タスク処理にすること事態に無理があります。

このあたりを参考に↓
http://www.cqpub.co.jp/hanbai/books/33/33441.htm
ITRONって何だって話なら下記を参照してください。
http://ja.wikipedia.org/wiki/ITRON
んで、詳しく知りたいならこちらなど。
http://www.cqpub.co.jp/hanbai/books/33/33351.htm

>またそもそもOSとはバイナリで提供され、それをCPUへダウンロードするのか?
組み込みOSは、基本的に周辺装置の違いからターゲットごとのカスタマイズが不可欠ですから、もらってそのまま動くもは考えられないです。カーネルはライブラリとかはあるかも知れませんけど。

>OSを使って開発するというのは、いま私が使用しているKeil開発環境以外のものを使って開発・デバッグするということでしょうか?
OS毎にデバッガの利用できるかは様々ですから分からないですね。Keil社自体がRTOSを出しているみたいですが、これはどうなんでしょうね?
http://www.keil.com/arm/rl-arm/
(flexible royalty-free RTOS with source code)って書いてあるので無料みたいですが。

>また気軽にOSを入れて(?)プログラミングができるようなお試し環境などあるのでしょうか?

気軽に組み込めるかどうかは不明ですが、Design Wave MagazineのバックナンバーでARMにRTOSを載せる記事があります。
http://www.cqpub.co.jp/dwm/contents/dwm0101i.htm
ちなみに、TOPPERS/JSPはオープンソースで提供されるITRONです。
http://www.toppers.jp/jsp-kernel.html

なんかITRONばっかの説明になってしまいましたが、他にもOSは沢山あります。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

>タイマ割り込みで実現可能ではないでしょうか?タイマで一定周期で割り込んで、LCDの表示処理を行えばメインループへの負荷もさほど問題とならないと思います。

実はメインループの処理開始の時間を一定に保つために、タイマーを使っています。その中でLCDへの制御をcallして1ループごとにほんの少しのLCD制御を実施し、500~600ループ回ってはじめて1度の描画を達成することにしています。

> (flexible royalty-free RTOS with source code)って書いてあるので無料みたいですが。

お調べいただき、ありがとうございます。
これについてはすでに問い合わせ中です。 ですが、日本の代理店、headquarterともにno responseです・・・

>気軽に組み込めるかどうかは不明ですが、Design Wave MagazineのバックナンバーでARMにRTOSを載せる記事があります。
さっそく、アマゾンで調べましたが売り切れ中でした。 ちょうどこの前月号にARM基盤が付録でついてるものがありましたね。
組込み系ではdesign waveがデファクトスタンダードな雑誌でしょうか?

とりあえず、私が使用しています開発環境の付属のものでどうやらOSとやらを使ってタスク処理できるものがあるようなので、実験してみたいと思います。

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

お礼日時:2007/10/25 09:45

おいおい、アドバイスというか感想になってしまってすまんけど、


文章の前半を読んでると、バリバリとまでいかずとも油の乗り始めたプログラマって感じがするのに(ハッタリに読めない)、

OSとはそもそも何かって....

つか、OS無い状態でC言語コンパイルできないだろよ?
そのμVisionてのは知らないけど、IDEである以上、何らかのOSに乗ってるはずだが。
だいたい今どきOS全然搭載しない組み込み開発なんてあるの?
すまん最後は質問になってしもた。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/10/25 09:46

crew21さん、代わり答えますとですね。


>だいたい今どきOS全然搭載しない組み込み開発なんてあるの?
SH2やARM7クラスならOSなしで開発することは十分にありえます(実例を色々見てきました)。

>そのμVisionてのは知らないけど、IDEである以上、何らかのOSに乗ってるはずだが。
これはWindows上で動くクロスプラットホームの開発環境です。JTAGでICE代わりにも使えます。ですので、ARM7側にはOSを必要としません。
そもそもARM7-TDMIコア系ですから大規模なOSが載るほどRAMを搭載しているとは思えません。
    • good
    • 0

くあーーー zwiさん、失礼しやしたああぁぁ!



いやオレも97年頃かな...SH2で開発したことあるにはあるんですよ。OSなしで。
でも今の時代にもその手法で開発することあるんですか?

>これはWindows上で動くクロスプラットホームの開発環境です。
そうなんだ。それじゃコンパイルしてオブジェクト生成して、あとはシステム側にロードというわけですね。

質問者さんごめんなさい。今もこういう開発あるみたいっす。
組み込みLinuxで3年ばかしやっただけで、遠い昔になってまったみたいです。
ごめんなさい!
    • good
    • 0

>いやオレも97年頃かな...SH2で開発したことあるにはあるんですよ。

OSなしで。でも今の時代にもその手法で開発することあるんですか?

私も去年までの話ですが、今でも変わって無いと思います。
OSを乗せるよりも低コストで開発できる場合が多々ありますので、task用件やインターフェイス(TCP/IPとか)でOSを必要とするほど複雑でなければ今でもありえます。単に高速なCPUが欲しいってだけの用途ですね。
SH3でOS無しを見たこともありますので、場所によってはSH4でもOS無しで開発している可能性はありますね。
    • good
    • 0

>あまり気にせずプログラミングできるのではないかとの漠然とした考えからです。


結論からするとその1点かと思います。
OSを導入することでもっとも大きな点は、実際のところ複数のメンバーで開発しや
すくなることです。つまり関係を絶って部分的にソースが作ることが可能になります。

>またそもそもOSとはバイナリで提供され、それをCPUへダウンロードするのか?
いろいろ形態はあります。μITRON4.0StandardProfileでは、アプリケーションと
リンクするものを想定しています。つまりライブラリですね。
ものによっては別ROM化可能なものとかもあります。

>OSを使って開発するというのは、いま私が使用しているKeil開発環境以外のものを使って開発・デバッグするということでしょうか?
Keil開発環境がサポートしているものを使うことがベターだと思います。
サポートしていないものを使おうとすると返ってそれに時間を費やしたりします。

>「こういう本読め」のようなご意見
ITRON等導入についてさっくり書いたドキュメントとしては、M16C関係のMR30あたり
のユーザーズマニュアルがいいと思います。あんまり字がぎっしり書いてないので
概念はすぐに理解できると思います。
カーネル入門あたりをななめ読みしてもよいかと思います。

参考URL:http://documentation.renesas.com/jpn/products/to …
    • good
    • 0
この回答へのお礼

ごかいとうありがとうございます。

>結論からするとその1点かと思います。OSを導入することでもっとも大きな点は、実際のところ複数のメンバーで開発しやすくなることです。つまり関係を絶って部分的にソースが作ることが可能になります。

明快な回答を頂き、ありがとうございます。

>ITRON等導入についてさっくり書いたドキュメントとしては、M16C関係のMR30あたりのユーザーズマニュアルがいいと思います。あんまり字がぎっしり書いてないので概念はすぐに理解できると思います。カーネル入門あたりをななめ読みしてもよいかと思います。

少し拝見しました。なかなか興味をそそるドキュメントでした。
一度、ななめ読んでみます^^;

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

お礼日時:2007/10/25 09:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!