組込み用プロセッサにおいては、世界No1だと思います。


携帯にはだいたい入っています。


死んでいたこのブログを更新再開します。

がんばります。


でも、なにを書けばよいのか?

組み込みって、基本的には業界がないんですよね。

プラットフォームだから、広く浅くなんです。

うーん、なにを聞けばよいのか??


そうだ、とりあえず、次はARMについて書きます。



T-Kernelは、GDBベースの開発だったから、

これは対応が容易だと思います。


逆に、なんでいままで、対応してなかったの?


でも、T-Kernel/Extendって本当に必要なんだろうか?

いつも疑問です。


久々の更新です。


小人=コンピュータ


アドレス空間って書きましたが、

簡単に言うと、住所です。

小人さんがあつかうアドレスを住所といいます。


つまり、目黒区XX2-35-1 に住んでる人と

世田谷区XX1-2-4に住んでる人を

ほにゃららして、新宿区XX2-1-1に住まわせる。

というよなことをします。


そして、小人さんがわかるアドレスの範囲は

0x0000_0000 ~ 0xFFFF_FFFF

です。

32bit アドレスう空間を16進数で表現しました。



Cプログラムをはじめて、

絶対にわけがわからなくなる人が多いところという

意味ではありません。


メモリ空間という考え方がわかっていないと

このポインタをわかることはできません。

つまり、前提知識を学ぶ前に、そのテクニックだけを

学ぶためにわからなくなるだけです。


では、ここからメモリ空間の話です。

と、思いましたが、余計わからなくなりそうなので、

コンピュータ小人さん理論(勝手に命名)にします。


コンピュータは、小人さんがいっぱい入った箱で、

小人さんがいろいろな計算を行ってくれます。


ただ、小人さんは人間が話す言葉はわからないので

特別な言語で話す必要があります。

その言葉が、C言語であったり、Javaであったりします。


で、小人さんに計算をしてもらう場合、

計算してもらうデータを小人さんに教えてあげる必要があります。

その場所の教え方がアドレスなのです。


たいていの小人さんは32bit空間のアドレス指定です。

(2進数がわからないと、ちょっとこの表現はつらいです。)

つまり、0と1を32個使ってアドレスを小人さんに教えます。

で、1つのアドレスにあるデータは、1バイト(8bit)です。

つまり、1つのアドレスには箱があって、その箱を小人さんに

とってきてもらうことができるのですが、

その箱に入っているカードは、256種類です。


で、カードに書いてある値を小人さんに計算してもらいます。


とりあえず、ここまで。


組み込みのプログラマーとそれ以外のプログラマーとは何がちがうのか?

このブログを書き始めて、いろいろ考えてみた結果、


「プログラムがmain( )から始まらない」


ということにしました。

このフレーズが一番わかりやすいかな?

と思ったからです。


結論として、

「プログラマがCPUのアドレス空間を意識する必要がある」

ということです。

(ただし、これは組み込み側からみた意見なので、

 一方的であることは否めないし、

 アドレス空間????なんて人も多いと思います)




ここから、解説です。


プログラムの授業ないし、研修では

C言語からはじめることが、あると思いますが、

たいてい以下のような、main()からはじまるプログラムを

例にして始めると思います。


void main()

{

printf( "Hello, world!");

return;

}


しかし、組み込みではここから始まりません。

では、どこからはじまるのか?


簡単にいうと、プログラマーが制御可能なところから

始まります。つまり、ハードウェアがプログラムで

制御可能なところからはじまります・・・・。

って、わかるわけないですよね。



なので、たとえをだします。


プログラミングをすることを、料理をすることにたとえると


料理をする場合、最初にどうしますか?


たとえば、カレーを作る場合どうしますか?

まず、材料がいりますよね?

カレーのルーは絶対いりますよね?

スーパーかどこかで買いますよね?


カレールーって買いますよね?


でも、カレールーってどうやって作るか知ってますか?

作れますか?


そう、そうなんです。

組み込みの場合は、カレーを作るときにカレー粉をつくる必要があるのです。

あとは、食材を買いに行こうと思ったら、

組み込み村には、スーパーがなくて八百屋もなくて、

畑から調達するために、スコップもって掘りにいったりします。


まあ、組み込み村って感じです。

あんまり変化しない生活(プログラム)を

おくるのが組み込みプログラマです。


とりあえず、今日はここまで!!

組み込み業界で大きな展示会が年に2つあります。


ESECEmbedded Technologyの2つです。

しかし、近年は組み込み分野もアプリケーションが

多岐にわたり、いまいち展示会に訪れる人と展示側の思惑が

一致しない場合が多くなってきた気がします。


たとえば、16bitマイコンと32bitのマイコンでは、

想定されている組み込まれる機器がまったく違い、

用語もぜんぜん違います。


したがって、広い会場で自分と関係のない展示を

なんとなく見て、業界の流行をつかまえるという感じも

します。


ただし、展示会を運営する会社も、この現状を打破すべく

テーマごとに区画したりしています。


最近の流行は、車関係ですかね?




組み込みプログラマーとして働き始めてはや5年。


組み込みの知識などは、Webの世界になかなかなく、

OJTの名の下に口伝でしか残らない・・・。


せっかく、いろいろな人にお世話になったので、

恩返しの意味も込めて、

僕が得た知識を公開していきたいと思い、

このブログをはじめます。