<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/babo/">
    <title>babo @Wiki</title>
    <link>http://w.atwiki.jp/babo/</link>
    <atom:link href="https://w.atwiki.jp/babo/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>babo @Wiki</description>

    <dc:language>ja</dc:language>
    <dc:date>2006-06-11T09:14:20+09:00</dc:date>
    <utime>1149984860</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/babo/pages/5.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/babo/pages/6.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/babo/pages/7.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/babo/pages/1.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/babo/pages/4.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/babo/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/babo/pages/3.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/babo/pages/5.html">
    <title>トップページ</title>
    <link>https://w.atwiki.jp/babo/pages/5.html</link>
    <description>
      *初心者向け組込みソフトの作り方 
----

**目標：
-このセミナーは、組込み向けソフトウェアの作成に必要な実用的な技能を習得する事を目標。
-+組込みソフトウェアの開発環境について理解する事。
-+組込みソフトウェアの実行環境について理解する事。
-+簡単な組込みソフトウェアを構築できる事。
**組込みソフトウェアの開発フロー
***コンパイラ
-開発者が作成したソースファイルまたはヘッダファイルをコンパイルしアセンブラソースを出力する。（一部のコンパイラでは直接オブジェクトファイルを出力）
***ソースとアセンブラソース
-ソースは特定の言語仕様で記述されたテキストファイルアセンブラソースは機械語とほぼ一対一のテキストファイル次ステップのアセンブラが処理。
***アセンブル
-開発者が作成した、または、コンパイラが生成したアセンブラソースをアセンブルしオブジェクトファイルを出力。
オブジェクトファイルは構造を持つバイナリファイルで、次のステップのリンカが読み取れる形式(ELF,COFF,OMF)になっている。
***リンク
-複数のオブジェクトファイルを受け取り、リンクスクリプトに従ってロードモジュールを生成する。
[[cygwiin]]
[[アセンブラ]]    </description>
    <dc:date>2006-06-11T09:14:20+09:00</dc:date>
    <utime>1149984860</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/babo/pages/6.html">
    <title>cygwiin</title>
    <link>https://w.atwiki.jp/babo/pages/6.html</link>
    <description>
      **cygwiin
-MS-Windows 上で Unix系のアプリケーションを実行可能とする。
**Cygwinのパッケージ
-コンパイル済みのバイナリパッケージをネットワーク経由でインストールできる。
-パッケージには主要なUnix系のアプリケーションが豊富に用意されている。
--エディタ、コンパイラ、ツール、X-Window System等々。
**Cygwinのインストール
-http://www.cygwin.com/にアクセスする。
-“Install or update now!”をクリックしてsetup.exeをダウンロード。
-ダウンロードサイトを指定。（適当な日本国内のサイトを選ぶ）
-パッケージの選択。（ここで全パッケージを選択）
**コマンドプロンプトでの利用
-システムのPath環境変数にCygwinの実行パスを含めると通常のコマンドプロンプト（または他のアプリケーション）からCygwinのコマンドが利用可能となる。    </description>
    <dc:date>2006-06-11T09:11:45+09:00</dc:date>
    <utime>1149984705</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/babo/pages/7.html">
    <title>アセンブラ</title>
    <link>https://w.atwiki.jp/babo/pages/7.html</link>
    <description>
      *アセンブラの基本動作
**アセンブラの動作
-コンパイラが生成したアセンブラソース、または開発者がコーディングしたアセンブラソースを読込み、オブジェクトファイルを生成する。
--アセンブラソース → 機械語とほぼ一対一で対応するソース
**アセンブラの使いこなし
-記述方法や文法はプロセッサ毎に異なる。
-コードを書くシチュエーションは限られので、書く能力は必要な時に学習すればよい。
-コードを読める必要がある。
--デバッガ/逆アセンブラの出力、コンパイルリスト等々の解読のため。
**基本的なフォーマット
-アセンブラは行指向の言語
--ラベル部（終端が”:”の場合が多い）
--オペコード部（プロセッサの命令または疑似命令）
--オペランド部（”,”で区切られ複数記述できる場合が多い）
--コメント部（”#”,”;”,”*”,”@”等で開始される場合が多い)
**プロセッサの命令
-転送命令（レジスタ⇔メモリ/レジスタ）
-演算命令（加減乗除、論理演算、シフト等々）
-分岐命令（ジャンプ、条件付きジャンプ、コール等々）
-制御命令（割込み禁止/許可等々）
|mov | レジスタ間のコピー|
|stmfd | 複数のレジスタ値のストア|
|sub | レジスタ間の減算|
|str | レジスタ値のストア|
|ldr | レジスタ値のロード|
|bl | サブルーチン呼び出し|
|ldmfd | 複数のレジスタ値のロード|
**疑似命令
-アセンブラには直接プロセッサーが理解しない命令（オペコード）がある。これはアセンブラに対する指示で、オブジェクトコードの生成方法を指示、定数値を指定、シンボルの属性を指定等々の処理を行う。
-セクション制御 
--text,data,bss等のセクション制御命令
-各種の宣言 
--外部シンボルの定義やシンボルの公開
-デバッグ情報、その他
--主にコンパイラが生成する行番号情報など
--アセンブル制御、マクロ機能、データ定義
**セクション
-プログラム中で使われるデータや命令はセクションと呼ばれるグループに配置される。.section, .text等の疑似命令で指示。
--これは命令語とデータでMPUがアクセスする時の属性が異なり、メモリに付加する情報（実行許可等）を制御する必要があるため。（組込み系ではROM/RAMの指定等に用いる）
-代表的なセクション
|テキストセクション(.text) | 命令を配置（読込み、実行）|
|RODATAセクション(.rodata)| 定数値を配置（読込み）|
|データセクション(.data)| 初期化データを持つデータを配置（読込み、書き込み）|
|BSSセクション(.bss)| ゼロで初期化されるデータを配置（読込み、書き込み）|
|スタックセクション(.stack)| スタック空間を配置（読込み、書き込み、実行）|
**オブジェクトフォーマット
-代表的なオブジェクトフォーマット|
|ELF | 主にLinux等で用いられる|
|COFF | 主にSVR4等のUnixで用いられる|
|ECOFF,XCOFF | 上記のCOFFの拡張|
|PE | MS-Windowsで用いられる|
|OMF | インテル社が規定したオブジェクトフォーマット|
**アセンブラのビルド/インストール
***GNU binutils を使ってクロスアセンブラをビルドする。
-GNU binutils の最新版をゲット
--現在ならば[[binutils-2.16.1.tar.bz2&gt;http://ftp.gnu.org/gnu/binutils/]]をダウンロードする。
-作業ディレクトリに展開
以下のコマンドを入力。
  $ tar jxvf binutils-2.16.1.tar.bz2
  $ cd binutils-2.16.1/
--binutiils-2.16.1.tar.bz2はダウンロードしたファイル。
展開するとカレントディレクトリにbinutils-2.16.1が作られる。
-configureの実行
以下のコマンドを実行する。
  $ ./configure --prefix=/opt/xtool-arm-elf --target=arm-elf
--prefixオプションは、ビルドされたパッケージのインストール先ディレクトリを指示する。
--targetはビルドするターゲットアーキテクチャを指示する。今回は、arm用のクロスアセンブラを作ってみるので、arm-elfを指定する。
-ビルド
以下のコマンドを実行する。
  $ make all
-インストール
以下のコマンドを実行する。
  $ make install
-パスの追加
以下のコマンドを実行する。
  $export PATH=/opt/xtool-arm-elf/bin:$PATH
--ログインしたら自動的にPATHを設定したい場合は、.bashrcに上記のexportコマンドを追加する。
--cygwin環境以外でも利用したい場合は、マイコンピュータのプロパティから環境変数でセットする
-動作確認
以下のコマンドを実行する。
  $ arm-elf-as --version
以下の内容が表示される。
  GNU assembler 2.16.1
  Copyright 2005 Free Software Foundation, Inc.
  This program is free software; you may redistribute it under the terms of
  the GNU General Public License. This program has absolutely no warranty.
  This assembler was configured for a target of &#039;arm-elf&#039;.    </description>
    <dc:date>2006-06-11T09:06:52+09:00</dc:date>
    <utime>1149984412</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/babo/pages/1.html">
    <title>baboの部屋</title>
    <link>https://w.atwiki.jp/babo/pages/1.html</link>
    <description>
      -ウィキはみんなで気軽にホームページ編集できるツールです。
-このページは自由に編集することができます。
-メールで送られてきたパスワードを用いてログインすることで、各種変更（サイト名、トップページ、メンバー管理、サイドページ、デザイン、ページ管理、等）することができます


■　新しいページを作りたい！！
-ページの下や上に「新規作成」というリンクがあるので、それをクリックしてください。

■　表示しているページを編集したい！
-ページ上の「このページを編集」というリンクや、ページ下の「編集」というリンクを押してください。

■　ブログサイトの更新情報を自動的に載せたい！！
-[[お気に入りのブログのRSSを使っていつでも新しい情報を表示できます。詳しくはこちらをどうぞ。&gt;http://atwiki.jp/tools/blogrssmaker.html]]

■　ニュースサイトの更新情報を自動的に載せたい！！
-[[RSSを使うと簡単に情報通になれます、詳しくはこちらをどうぞ。&gt;http://atwiki.jp/tools/rssmaker.html]]

■　その他にもいろいろな機能満載！！
-[[詳しくは、FAQ・初心者講座@wikiをみてね☆&gt;http://www1.atwiki.jp/faq/]]


**分からないことは？
-[[@wikiの詳しい使い方はヘルプ・FAQ・初心者講座@wikiをごらんください。メールでのお問い合わせも受け付けております。&gt;http://www1.atwiki.jp/faq/]]
-[[ユーザ同士のコミュニケーションにはたすけあい掲示板をご利用ください&gt;http://bbs.atwiki.jp/]]
    </description>
    <dc:date>2006-05-13T18:41:48+09:00</dc:date>
    <utime>1147513308</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/babo/pages/4.html">
    <title>123</title>
    <link>https://w.atwiki.jp/babo/pages/4.html</link>
    <description>
      
&lt;p&gt;工事中&lt;/p&gt;
    </description>
    <dc:date>2006-05-13T18:37:59+09:00</dc:date>
    <utime>1147513079</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/babo/pages/2.html">
    <title>メニュー</title>
    <link>https://w.atwiki.jp/babo/pages/2.html</link>
    <description>
      メニュー
-[[トップページ]]
-[[メニュー]]
-[[メニュー2]]

    </description>
    <dc:date>2006-05-13T18:35:31+09:00</dc:date>
    <utime>1147512931</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/babo/pages/3.html">
    <title>メニュー2</title>
    <link>https://w.atwiki.jp/babo/pages/3.html</link>
    <description>
      **更新履歴
#recent(20)
    </description>
    <dc:date>2006-05-13T18:35:31+09:00</dc:date>
    <utime>1147512931</utime>
  </item>
  </rdf:RDF>
