いつもお世話になっています。
組込み分野によく、OSを搭載するという話を聞きます。
私自身、Keilという会社のIDEであるμVisionという統合開発環境を使って、ARM7TDMIコアCPUのプログラムをC言語で書いています。特に、グラフィックLCDを使ったので、1ライン(8bit)を書くのに費やす時間を極限まで(自分でできる限り^^;)縮小して、メインのループの邪魔にならないように、処理しました。
OSを使えば、タスク処理ができるとの情報を得て、興味がわき、調べてみました。LCDを使ってたので、処理を個別に記述して、あとはタスクに任せれば、メインのループ処理とのかねあいをあまり気にせずプログラミングできるのではないかとの漠然とした考えからです。
私の使用しているCPU自体は、どうやらOSというものを搭載することができるそうなのですが、OSを使用してののプログラミングのイメージがつかみにくい、またそもそもOSとはバイナリで提供され、それをCPUへダウンロードするのか? 等々、いろいろな本を買い漁ったり(会社経費^^;)、WEBを探したりしましたが、やはり漠然としかわからないままでいてます。
OSを使って開発するというのは、いま私が使用しているKeil開発環境以外のものを使って開発・デバッグするということでしょうか?
また気軽にOSを入れて(?)プログラミングができるようなお試し環境などあるのでしょうか?
せめて、「こういう本読め」のようなご意見でもかまいませんので、よろしくご指導お願いいたします。
No.1ベストアンサー
- 回答日時:
>特に、グラフィック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は沢山あります。
ご回答ありがとうございます。
>タイマ割り込みで実現可能ではないでしょうか?タイマで一定周期で割り込んで、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とやらを使ってタスク処理できるものがあるようなので、実験してみたいと思います。
回答、ありがとうございました。
No.6
- 回答日時:
>あまり気にせずプログラミングできるのではないかとの漠然とした考えからです。
結論からするとその1点かと思います。
OSを導入することでもっとも大きな点は、実際のところ複数のメンバーで開発しや
すくなることです。つまり関係を絶って部分的にソースが作ることが可能になります。
>またそもそもOSとはバイナリで提供され、それをCPUへダウンロードするのか?
いろいろ形態はあります。μITRON4.0StandardProfileでは、アプリケーションと
リンクするものを想定しています。つまりライブラリですね。
ものによっては別ROM化可能なものとかもあります。
>OSを使って開発するというのは、いま私が使用しているKeil開発環境以外のものを使って開発・デバッグするということでしょうか?
Keil開発環境がサポートしているものを使うことがベターだと思います。
サポートしていないものを使おうとすると返ってそれに時間を費やしたりします。
>「こういう本読め」のようなご意見
ITRON等導入についてさっくり書いたドキュメントとしては、M16C関係のMR30あたり
のユーザーズマニュアルがいいと思います。あんまり字がぎっしり書いてないので
概念はすぐに理解できると思います。
カーネル入門あたりをななめ読みしてもよいかと思います。
参考URL:http://documentation.renesas.com/jpn/products/to …
ごかいとうありがとうございます。
>結論からするとその1点かと思います。OSを導入することでもっとも大きな点は、実際のところ複数のメンバーで開発しやすくなることです。つまり関係を絶って部分的にソースが作ることが可能になります。
明快な回答を頂き、ありがとうございます。
>ITRON等導入についてさっくり書いたドキュメントとしては、M16C関係のMR30あたりのユーザーズマニュアルがいいと思います。あんまり字がぎっしり書いてないので概念はすぐに理解できると思います。カーネル入門あたりをななめ読みしてもよいかと思います。
少し拝見しました。なかなか興味をそそるドキュメントでした。
一度、ななめ読んでみます^^;
ありがとうございました。
No.5
- 回答日時:
>いやオレも97年頃かな...SH2で開発したことあるにはあるんですよ。
OSなしで。でも今の時代にもその手法で開発することあるんですか?私も去年までの話ですが、今でも変わって無いと思います。
OSを乗せるよりも低コストで開発できる場合が多々ありますので、task用件やインターフェイス(TCP/IPとか)でOSを必要とするほど複雑でなければ今でもありえます。単に高速なCPUが欲しいってだけの用途ですね。
SH3でOS無しを見たこともありますので、場所によってはSH4でもOS無しで開発している可能性はありますね。
No.4
- 回答日時:
くあーーー zwiさん、失礼しやしたああぁぁ!
いやオレも97年頃かな...SH2で開発したことあるにはあるんですよ。OSなしで。
でも今の時代にもその手法で開発することあるんですか?
>これはWindows上で動くクロスプラットホームの開発環境です。
そうなんだ。それじゃコンパイルしてオブジェクト生成して、あとはシステム側にロードというわけですね。
質問者さんごめんなさい。今もこういう開発あるみたいっす。
組み込みLinuxで3年ばかしやっただけで、遠い昔になってまったみたいです。
ごめんなさい!
No.3
- 回答日時:
crew21さん、代わり答えますとですね。
>だいたい今どきOS全然搭載しない組み込み開発なんてあるの?
SH2やARM7クラスならOSなしで開発することは十分にありえます(実例を色々見てきました)。
>そのμVisionてのは知らないけど、IDEである以上、何らかのOSに乗ってるはずだが。
これはWindows上で動くクロスプラットホームの開発環境です。JTAGでICE代わりにも使えます。ですので、ARM7側にはOSを必要としません。
そもそもARM7-TDMIコア系ですから大規模なOSが載るほどRAMを搭載しているとは思えません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 explorerをedgeで開く方法 2 2022/06/05 14:59
- その他(OS) Ubuntuに仮想環境いれて古いwindows動かしたいんですが、OSイメージ無料で手に入りますか? 2 2023/03/09 23:49
- Outlook(アウトルック) outlookの送信エラーについて 1 2022/05/13 12:04
- Windows 10 Apexを起動するとタスクマネージャーが閉じる現象について 1 2022/07/16 18:31
- Mac OS 【MacOS】外付けHDDがUSB3.1バス上でのみアクセス出来なくなる 1 2022/10/29 10:27
- 中古パソコン 比較的最近のメーカーパソコンのリカバリーやOS Updateについて 3 2023/06/06 13:01
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- UNIX・Linux VirtualBox ゲストOSにPC内蔵HDDのパーティションをマウントする方法は? 2 2023/05/06 22:52
- その他(プログラミング・Web制作) dockerとは? 新しい配属先でテレワークになり、テレワーク用のpcにdockerを入れたのですが 2 2022/09/22 07:54
- ノートパソコン ホグワーツレガシー PC版必要スペックについて ホグワーツレガシーをPCでプレイしたいのですが、PC 3 2023/02/09 21:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルで以下のような...
-
逆コンパイルと逆アセンブルの...
-
C言語って古いですか?
-
Windows Formアプリからコンソ...
-
私は
-
Notepad++の関数リスト表示の変...
-
パイソン。If elseの挙動につい...
-
ホワイトハッカーを目指そうか...
-
大量のデータを読み込んで表示...
-
これて逆じゃないですか?
-
C言語について。
-
コンソールアプリを作成するの...
-
0 == False はいいけど
-
プログラム言語について c言語...
-
【C言語】全角文字の配列を、全...
-
C言語初心者 ポインタについて...
-
あんまり考えたくないけど
-
CPUが16bitでも32bitOSでコンパ...
-
VisualStudio2022でC言語プログ...
-
C言語初心者 構造体 課題について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vncとultravncとrealvncの3つ...
-
日本はこれから防衛産業に力を...
-
Accessでナビゲーションウィン...
-
「自然開発」って何ですか?
-
システム開発の手付金について
-
VBAからIPアドレスを取得...
-
紀元二千七百年式典
-
MS-DOS3.1
-
ヘッダーファイルのmachine.hが...
-
いわゆるソシャゲは何のプログ...
-
adblockとadblock plus
-
SGML、HTML、XML、XHTMLなどの違い
-
MFCの参考書を探しています
-
プロフェッショナル版とアカデ...
-
長所&短所
-
『進路』プログラマーとシステ...
-
TextBoxにWebリンクを
-
ASP.NETや.NET、C#とかVBとか
-
農産物の出荷管理
-
フリーマーケットサイトを作る...
おすすめ情報