• ベストアンサー

組み込みソフトってなんですか?

コンピュータ業界で営業をし始めた新人です。 プログラマーの皆様には簡単な質問かもしれないのですが・・・ 組み込みソフトってC言語の使い方を知っていれば開発できるものなのですか? それとも、C言語がどうやって作られていて、その中身がどうなっていて、 ということまで知っていないと開発できないものなのでしょうか? それと、この際ぜひ教えていただきたいのですが、 (1)C言語のもとになっているような言語というのはあるのでしょうか? (2)C言語にバグがあるってことはあるのでしょうか? 誰かわかりやすく教えてください。よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

「組み込みソフト」とは「組み込みプロセッサ上で動作するソフトウェア」の ことを指しています。 で、組み込みプロセッサって言うのが、 一般的に知られている、ペンティアムのようなものではなくて、 電子レンジやDVDプレイヤーなどに入っている小さなプロセッサのことです。 質問の本題ですが、 C言語で開発できるかどうかは、そのプロセッサ次第です。 そのプロセッサ用のコンパイラがあればC言語で開発できますし、 コンパイラがなければ、マシン語で書かなきゃいけません。 組み込み用として、実績のあるプロセッサ(ARMなど)ならコンパイラがあると思いますが、 自社で開発中のプロセッサということでしたら、ない可能性が高いと思います。 仮にコンパイラがあったとして、話を進めますが、 (1)(2)に関しては、意識する必要はないです。 どこかにバグがあるとしたら、コンパイラに問題があることがほとんどです。 C言語がどうなっているかよりも、どういうプロセッサを使っているのかを、 考えた方がいいと思います。 例えば、関数呼び出しのオーバーヘッドは?ループは何重までできる? みたいなことの方が重要です。

loveandpeace
質問者

お礼

いまさらと思うかもしれないですが、コンパイラってマシン言語に直すことだったんですね。すばやいお答えありがとうございました。

その他の回答 (1)

  • ykkw_2001
  • ベストアンサー率26% (267/1014)
回答No.2

>組み込みソフトってなんですか?  機器に組み込みで、専用の機能を実現するソフトです。 たいていはわれわれの身の回りで、意識されることなく働いています。たとえば、自動車には、たくさんの組み込みソフトが「組み込まれて」います >組み込みソフトってC言語の使い方を知っていれば開発できるものなのですか? 8割がたは、可能です。 あとの2割は、↓の方がおっしゃるように、「そのプロセッサに対応のCコンパイラがない場合」「Cコンパイラでは実現できないものをつくる場合」「機器独特の特性を知らないとできない場合」です。たいていアセンブラは、ありますが、まれにマシン語で書きこむことがあります。 Cコンパイラを使う上では、その中身までは、まず必要ないですが、より高性能なもの、コンパクトなものを作る場合、中身を知っていると有利です。 (1)「C言語のもとになっている」の意味があいまいですので、回答できません。 (2)C言語(Cコンパイラ)にも、バグはあります。 Cコンパイラもひとつのプログラムで、人間が作ったプログラムですから。

loveandpeace
質問者

お礼

よく考えたら計算機なんかも組み込みソフトがなければ計算できないですよね。説明がわかりやすくてうれしかったです。ありがとうございました。

関連するQ&A

  • 組み込みソフト開発について

    いつもお世話になっています。 プログラムの話題で組み込み系の事ってあまり出ていない ような気がします。書籍でもあまり取り上げていないような気がするのです。 しかし「c言語」「求人」で検索すると組み込みソフト 開発の多い事!...なにかギャップを感じます。 私は組み込み系の存在も最近になって知ったのですが 未だにプログラム開発の月刊誌に掲載されているのを 見たことがありません。求人募集で圧倒的に多い分野 をなぜ出版社は取り上げないのでしょうか?

  • 組み込みソフト開発において

    機器の組み込みソフト開発についてです。 部署に9人のメンバーがいます。 1テーマというか、1つの制御ソフトを一人で請け負って行います。 ここでいう機器は、白物家電(冷蔵庫,洗濯機など)レベルです。 ルネサスのマイコンでいえば、M16CやR8C。  C言語で開発しています。 それで質問したい内容は、ソフトの作り方です。 例えば、誰かが緊急入院したり、退社した場合、 その人の仕事を別の人が引き継ぐことになります。 各個人のソフトの作り方が各々違うため、他人が作ったソフトを見ても、 どういう構成になっているか分からなく、引き継ぎにかなりの労力と時間を費やします。 制御変更の依頼を受けても、何処のどの部分をどのように変更すればよいのか分からない。 といった感じです。 ソフトの作り方をみんなで議論して統一すれば良いかもしれません。 しかし、それにはおおきな壁があります。 例えば、先輩の人は今までのやり方を変えられたくないので、 自分のやり方を正論化するでしょう。 逆に若い人(初心者)は、違うやり方をされると分からなくなるでしょう。 つまり、損をする人と得をする人が表れます。 皆さんの会社ではどのように工夫されているのでしょうか? 差支えなければ教えてください。 よろしくお願いします。

  • 組み込みプログラマ

    制御系(マイコン)のプログラマに就職が決まった大学生です。 現在、アセンブラの勉強をしています。 今まで、Z80、PICの経験があります。 しかし、C言語で組み込み系のプログラムを書いたことはありません。 そこで、実際に組み込み系で働いておられる方に質問があります。 1.現在のマイコンではC言語が主流ですか? 2.アセンブラだけでは食っていけませんか? 3.組み込み系は寿命が長いと聞いたことがあるのですが、   本当でしょうか?

  • 組み込みプログラマになるには

    現在大学生をやっているものです。 表題の通りなのですが、私は将来組み込み開発系のエンジニアに なりたいと考えています。 ただ、大学ではそれとは関係なく物理を専攻しており、 プログラミングもCやFortranを数値計算に使う程度で専門的な知識が無いのですが、 このような者でもいきなり組み込み系のプログラマの職につくことは 可能なのでしょうか? それとも、会社としてはやはり全く知識の無い学生ではなく 情報系などの少しでも早く使えるようになる学生しか必要ないのでしょうか? やる気だけなら十二分にあります。 もちろん個人の能力に依るといえばそうなのですが、 一般的に難しいかどうか教えていただけないでしょうか? 組み込み系にこだわっているのは、 なるべくハードウェアに近いところでソフトが 実際の物理現象となっていくのを体感していたいからです。 また、組み込み開発をやっているところでお薦めの会社などあれば それも教えてください。 よろしくお願い致します。

  • 「制御、組込系の仕事」について

    「制御、組込系の仕事」について いつもお世話になっております。 出来れば、「制御、組込系の仕事」についてみたいと考えております。 C#、javaを使ったweb系の開発経験が3年程あります。(他の言語も併せれば、経験年数は5年程度です) c言語の基本知識はありますが、業務経験はありません。 年齢は30を超えてしまっています。 何らかの努力次第で、「制御、組込系の仕事」に就く事は可能でしょうか?

  • オープン系とか、組込み系とかって何?

    よく、ソフトウェア開発の世界では、「オープン系」とか、「組込み系」、「汎用系」などと言う分野がありますよね。 これってそれぞれどう違い、どのような特徴があるのでしょうか。 また、上記以外のもので他にも「~系」ってあるのでしょうか。あればそれについても概要が知りたいのです。 「アプリ系」などというのもありますか。市販の、例えばグラフィック関連のソフトとか、ゲーム・ソフトや、会計ソフトなどはこう呼ぶのでしょうか。 また、Webプログラミングはどの分野の系統に属するのでしょうか。 ただ、「組込み系」だけは、多少わかりました。例えば電化製品などに内蔵されているマイコンを制御するプログラムを開発するのですよね。国内でも、この分野の技術者が不足しているということも知りました。 自分のイメージですが、この組込み系というのは、いわゆる市販のパソコン・ソフトを開発する分野と比べると、出力する画面のデザインなどの見た目については、あまりこだわらず、制御にいそしむ、ある意味、地味な領域なのかなという気もしました。 それに、結構、マイコンに関するハードの知識も必要とされるのですよね。 私は、ソフト開発のみというよりも結構、電子基盤の操作などに魅力を感じるので、組込みの仕事もしてみたいなとも思うですが、実は、これからVisualBasic.NETを学習しようかと思っています。 これはまったく、的外れな努力でしょうかね。やっぱり、組込みはC言語で無ければならないのでしょうか。 反対に、VisualBasic.NETを生かす道としてはどのような分野が考えられますか。Webやデータベース、サーバサイドのプログラミングなどでしょうか。 ASP.NETなどもありますしね。 どなたか貴重な解説・御意見を頂けましたら、よろしくお願い致します。

  • 組込開発はどんな流れになっているの?

    C言語などでの組み込みはどういった流れで開発されているか教えて下さい。 プログラムを作成した後、メモリに書き込むという漠然としたイメージを持っていますが、具体的に知っている方がいらっしゃれば教えて下さい。

  • 組み込みアセンブラとは何ですか?

    私はx86でアセンブラを勉強中ですが、ネットでアセンブラ関係のことを検索していて組み込みアセンブラという記述をを見ました。 C言語から利用する場合インラインアセンブラより良いとかなんとか。 組み込みアセンブラという名前も怪しく合っているかわかりません。 掲示板のようなところで組み込みアセンブラの方が良い、早いと書いてありました。いろいろ検索して見かけたのでどこの掲示板かもわかりません。後から探したのですが見つけることができませんでした。 そこで質問なのですがそのその組み込みアセンブラとは何なんでしょうか? C言語からアセンブラを利用する場合、今読んでいる本「やさしいアセンブラ入門」にはインラインアセンブラとアセブラ言語モジュール(オブジェクトファイル)をCプログラムでリンクする方法の2種類が書いてありますが。組み込みアセンブラはモジュールで使うということでしょうか? 違うとすればどのような方法でアセンブラを利用することでしょうか? わかる方教えてください。ヨロシクお願いします。

  • 25才ですが、組み込み系への転職を考えています。

    私は現在サーバの設定などを業務で行っています。 ですが、月の給料が総至急で18万程度、手取りで15万程度です。 実家暮らしなのでこの給料でもなんとかやっていけるのですが、 会社まで車で片道1時間運転をせねばならず、この点も苦痛です。 給料・通勤のことがあり転職を真剣に考えています。 私は2年ほど現在の会社でサーバの設定などを行っていますが、 その前の会社では1年ほどセンサチップのレジスタ値を読むプログラムをC言語で開発していました。 私はスクリプト言語よりもC言語やアセンブラなどが好きであり、 前の業務と似たような仕事をしたいと考えています。 組み込み系は慢性的な人手不足だと取引先の方に聞いたのですが、 組み込み系の職種でC言語を扱える人材を求めていたりしますでしょうか? また、組み込み系に転職しようとした場合、電気・電子の知識は必要になりますか?私は電気・電子については知識がありません。

  • 組込みエンジニアについて

    地方国立大学工学部に所属している2回生の学生です。 現在、自分に合いそうな職業を探しており、その中で組込みエンジニアという職業を見つけました。 ただ、調べてもいまいちわからないことがいくつかあるため、よければわかるものだけでも回答していただくと嬉しいです。 1. 組込みエンジニアと組込みプログラマの違い  調べていく中で、「組込みエンジニア」という名前と「組込みプログラマ」という名前が出てきました。 同じものを指しているのではないかと思うのですが、何か違いでもあるのでしょうか。 2. 仕事のしんどさ  組込みエンジニアの職業はしんどいようですが、それがどのぐらいなのかが気になります。 土日も自分の時間が持てないほど忙しいのでしょうか。 3. エンジニアとしての寿命  プログラマは、40歳ほどで寿命が来るといわれますが、組込みエンジニアも同じように寿命などがあるのでしょうか。 4. 大企業と中小企業の違い  私は回路とプログラムの両方に興味があるのですが、大企業の場合、両方をやることはできないのでしょうか? 中小企業の場合は幅広く担当できる(ただし、給料は安い)という風に聞いたのですが、大企業の場合はどうなのでしょうか。 5. この職業を目指すために今しておくべきこと  とりあえず、今はPICマイコン(16F84Aや24FJ64GA002)を使ってC言語でサーボモータの制御などを行っています。ただ、実際に企業で使われているのは他のマイコンのようです。 そこで、やはり今やっておくべきこととして、もっと他のマイコンも使えるようにしておくべきでしょうか。 以上、長くなりましたが、よろしくお願いします。

専門家に質問してみよう