AVR (ATmega8535) programming (C言語)

○ はじめに

本文書では、Atmel 社 が製造しているマイコンシリーズである AVR のうち、8 ビットマイコンの一つである ATmega8535 を使ったマイコンプログラミングについて解説していきます。

筆者が本格的にプログラミングを行いだしたのは、大学時代のことでした。数値計算やプログラムによる CG 作成が始まりでしたが、3年生くらいの時にボードコンピュータを用いて、アセンブラや C 言語でのプログラミングや電子回路制御等の勉強をしました。ハンドアセンブルも経験しました。今思えば、この時の経験が自分のコンピュータ歴の基礎となっている気がします。

その後社会人となりソフトウェア関係の仕事に就きましたが、ハードウェアを意識したプログラミングが必要となることはほとんどありませんでした。Linux Kernel Module programming ( Kernel 2.4 ) でも書いている様に、ハードウェアを制御するプログラムを書きたいと思っていたため物足りなさを感じていましたが、それならば自分でやればいいやと思い立ち、今回 AVR マイコンを使って電子工作がてら勉強した内容を書くことにしました。

本文書へのリンクは御自由にどうぞ。本サイト内の文章に関して何かご意見などがありましたら、ページ最下部にあるアドレスまで、あるいはここからお願いします。なお、本文書において使用しているサンプルコードを tar 形式で圧縮したものをsrc.tar.gzとして置いてます。展開して得られる各ソースコードは EUC で書かれています。各ディレクトリにはそのコードを使用した Lecture の番号が付加されています。このソースコードの使用に関しては、免責事項の記述を了承していただければ自由に使っていただいて構いません。

また、ソースコードを含めた文書全体のアーカイブ( tar 形式 )を avr_doc.tar.gzとして置いてます。こちらも EUC で書かれています。

○ 前堤環境

本文書では、ATmega8535 を対象にして回路およびプログラムを作成します。また、プログラム作成は Linux® 上で avr-gcc を用いて行います。詳細は LECTURE 1 ATmega8535 および使用環境について で説明します。

○ 免責事項

本サイトで公開している内容については可能な限り正確を期する様に心掛けていますが、著者の知識不足から技術的な誤りもしくは不適切な表現や誤植を含む可能性があります。これらの内容を使用することによって生 じる可能性のあるいかなる被害/損害に対して、著者は一切の責任を負えません。よって、ご利用になられる際はみなさん各自の責任で内容確認/動作確認を行って下さい。

なお、本サイト (AVR (ATmega8535) programming) に掲載しているサンプルプログラムについては修正 BSD ライセンス(新 BSD ライセンス)に従うこととします(Open Source Initiative によるテンプレートはこちら。テンプレートの参考邦訳はこちら)。

Copyright (c) 2007, Ryo Ichinose
All rights reserved.

Redistribution and use in source and binary forms, with or without 
modification, are permitted provided that the following conditions are met:

   * Redistributions of source code must retain the above copyright 
     notice, this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above copyright 
     notice, this list of conditions and the following disclaimer in the 
     documentation and/or other materials provided with the distribution.
   * Neither the name of the auther nor the 
     names of its contributors may be used to endorse or promote products 
     derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

○ 商標

  • Linux は Linus Torvalds 氏の日本及びその他の国における登録商標または商標です。
  • その他、本サイトの文書中に記載されている会社名や製品名は、一般に各社の商標または登録商標です。
  • なお、本サイトの文書中では TM および R マークを明記していませんが、権利を侵害する意思や目的等は一切ありません。

○ 参考情報(文献、リンク)

  • Atmel

    AVR マイコンシリーズを製造している会社です。データシートもここからダウンロードできます。

  • GNU Binutils

    アセンブラやリンカ等の基本的なプログラミングツールを提供するソフトウェアです。

  • GCC

    GNU が開発しているコンパイラコレクションです。

  • AVR LibC

    AVR アーキテクチャで使用可能な libc を提供するソフトウェアです。

  • uisp

    プログラムのアップロード/ヒューズビットの設定等の PC と AVR の間の通信作業を行ってくれるソフトウェアです。

  • AVR Programming

    ATmega8535 の前身である AT90S8535 でプログラミングを行う際に、かなり参考にさせていただきました。

  • AVR試用記-C言語(WINAVR)メモ

    いろいろなメモを残してくださっています。細かい点をいろいろと参考にさせていただきました。

  • 水魚堂ホームページ

    本文書で掲載している回路図は、ここで配布されている BSch3V を使わせていただいています。