はじめに サイトマップ お問い合わせ
三秀電子
三秀電子ご案内


関連項目
>組込コンピュータソフト作成
>組込コンピュータボード製作
>小型監視カメラ制御装置
>油圧トルクテスタ
>ノイズに強い制御装置
>アナログ回路
>追跡処理

製品開発参加型 組込コンピュータ
ソフトウエア作成入門コース


記載内容
 マイクロコンピュータ入門 
 マイクロコンピュータの動作を追ってみる 
 方 針:体験型プログラマー入門 

 C言語プログラミング入門コース 
 組込コンピュータPICソフトウエアコース 
 組込コンピュータSH2Aソフトウエアコース 



マイクロコンピュータ入門



C言語にて加算関数を作成しコンピュータの中でプログラムがどのように動作するかを見てみます。
パソコンでプログラムを作成した場合、プログラムが開始する関数名は、予め決まっています。 下記に示すプログラムでは、_tmain()関数から開始されデッバカーの10行目、 計算結果を変数cに代入した時点で停止しています。
デバッカーの右側ウォッチではadd()の変数a,b,cの内容を表示しています。
a=2;b=3;加算結果c=5;となっていることが確認されます。
 デバッカー
add関数


プログラムを読み進めるには、色々な約束事、言葉の意味を覚える必要があります。
関数とは、変数とは、intとは、;とは、色々ありますが簡単にフィーリングで解釈してみます。
=は右側を処理しその結果を左側に代入することを意味します。
先ず、プログラムは_tmain()から実行されます。
プログラムは上から下へ順番に実行されます。
17行目 add()を呼び出し整数2と3を渡します。
add()が呼び出されると、上の行のadd()の中身が実行されます。
6行目 aに2を代入、bに3を代入。
9行目 a+bを計算してその結果をcに代入。
10行目 return c;で結果を_tmain()に戻し
17行目 dに代入する。
デバッカーウォッチで一行ステップ毎に変数の中身を見ることが可能です。



マイクロコンピュータの動作を追ってみる



C言語の入門では、マイクロコンピュータの動作を事細かく知る必要はありませんが、C言語を深く理解する上では、 アセンブラを理解しマイクロコンピュータの動作を理解する必要があります。
最近のマイクロコンピュータではcorei7などマルチコアとなり、一つのプログラムを複数のCPUにて 並列に実行することが可能となりました。又一個のCPUでもSIMD命令を使用して32個の整数を同時に並列演算可能と なりました。IntelX86系のCPUの一般に使用する主なレジスタは下記の通りです。

EAX、EBX,ECX,EDX 汎用レジスタ:
EAXは32bitのレジスタで16bitはAXとして,8bitは上位AH,下位ALとしてアクセスします。 値を代入し四則演算、乗算、除算、シフト、ビット演算等に使用し、又メモリの保存アドレスの指定に使用します。
ESI、EDI インデックスレジスタ:
主としてメモリの間接参照用として使用します。ストリング命令に使用します。
他に
EBP:ベースポインタ
ESP:スタックポインタ
EIP:プログラムカウンタ
eflags:フラグレジスタ
があります。

x86レジスタ



サンプルプログラムの動作を簡単に追ってみます。
アドレス0109140E:値3を変数aに渡すためスタックに値をプッシュしています。
アドレス01091410:値2を変数bに渡すためスタックに値をプッシュしています。
アドレス01091412:関数addをコールしています。
add()関数内を実行した後次の行へ戻ってきます。
アドレス0109141A:計算結果が代入されたレジスタeaxの値をメモリdに保存しています。
画面を上下にスクロールできます。
tmain関数


関数add()がコール(呼び出し)されると
アドレス001413CE:movとは移動を表し、変数[a](=2)の内容をeaxレジスタへ代入しています。
アドレス001413D1:addは加算を表し、変数b(=3)の内容をeaxレジスタへ加算してその結果をeaxレジスタへ保存しています。
アドレス001413D4:演算結果を変数cに保存しています。
アドレス001413D7:変数cの値をeaxレジスタへ代入しています。
画面を上下にスクロールできます。
add関数

レジスタ、変数の内容を見ることができます。
変数a(=2)の内容をeaxレジスタへ代入しています。

reg1
変数b(=3)の内容をeaxレジスタへ加算してその結果をeaxレジスタへ保存しています。
reg2
演算結果を変数cに保存しています。

reg3

≫処理速度の比較

方 針:体験型プログラマー入門


マイクロコンピュータの仕組みやプログラミングに興味があっても、”難しそうで出来ない。”と 考えられる方が多いのではないかと思います。
実際に体験してみると、”なんだ、こんな事か”と 理解が進み、一気にプログラマーを目指す気持ちが湧き上がるかも知れません。
一人前と言われるプログラマーになるためには、2、3年かかると言われ、多くの経験を積み ハードウエアを理解することが必要になります。
弊社では、このことを踏まえ、ハードウエアを理解して頂きながら、マンツーマンに近い形での短期集中型のコースを準備しました。
実務に耐えうる人材の育成を目指します。
CPUブロック図



 C言語プログラミング入門コース 


C言語を基礎から学び、マイコンボードを用いた実習を行う前準備を行います。先ずお客様のPCにC言語の開発環境を構築し、簡単な サンプルプログラムを作成、デバックすることでC言語の意味を理解し、C言語の全般の文法を学びます。デジタルIO、スイッチを 使用して信号をON/OFFさせ、オシロスコープでモニターすることでインピーダンスと出力電圧に注目し、何故、信号が伝わるかを体感します。 マイクロコンピュータの構成(クロック、CPU、メモリ、IO、タイマー、割込機能)と役割を学びます。 ハードウエアの存在を意識したサンプルプログラムをデバックすることで、よりコンピュータを理解しプログラムを理解します。 ...詳細
sorce




貴社の製品の一部として、また新人教育の評価ボードとして、低単価のマイクロコンピュータPIC16F00もしくは PIC18F00CPUボードを弊社にて設計製作致します。
その過程で社員教育の一環としてマイクロコンピュータのプログラム開発に参加して頂き製品又は評価ボードを完成させます。 ...詳細
CPU




貴社の製品の一部として、また新人教育の評価ボードとして、マイクロコンピュータSH7216CPUボードを 弊社にて設計製作致します。
その過程で社員教育の一環としてマイクロコンピュータのプログラム開発に参加して頂き製品又は評価ボードを完成させます。 ...詳細
CPU2




Top項目へのアクセス



コスモス