2010年7月20日火曜日

FreeRTOS for STM32F103 with gcc 4.4.x. (It don't use any evaluation software. It is based on open source software.)

A few days ago, I was checked with 'LED toggle demo program' on CQ-STARM board.
The board has STM32/Cortex-M3. It's not so good example.
(Hey! It's 32 bits MPU! Why don't you use the power of it!)

So, I decided to port FreeRTOS to the board.
http://www.freertos.org/
The clock is 72M[Hz], It can be pracical application.


The design of FreeRTOS is great.
It is easy to port to another platform.
Many demo projects in FreeRTOS uses evaluation software.
(e.g:Rowley CrossWorks, IAR, Keil, Red Suite)
So many users don't like evaluation software I know.
You can try this port if you don't like use it.

  • The environment is Ubuntu 10.04 with open source software.
    • It don't use any evaluation software. I don't like it :)
  • The demo project oriented from CORTEX_STM32F103_Primer_GCC.

The concept is 'Our environment should be free'.

(Download from here)

I hope to your helps!

2010年7月18日日曜日

CQ-STARMでFreeRTOSを動作させる。(arm-none-eabi-gcc)

先日の時点でCQ-STARMでLEDをチカチカさせることは確認済みです。
せっかくSTM32/Cortex-M3が搭載されている基板なのですから、これだけでは楽しくありません。

そこで調子に乗ってFreeRTOSの最新版をこの基板で動作させることにしました。
http://www.freertos.org/
クロックは72M[Hz]ですから、かなり実用的なアプリケーション開発ができそうです。


FreeRTOSは、その優れた設計思想のおかげでかなり楽にポーティングが可能なOSとなっています。昨夜から始めたポーティング作業が完了したのでファイルにまとめてアップロードしておきます。
何かの参考になれば幸いです。
  • ポーティングはUbuntu 10.04上にオープンソースなソフトウェアのみで行いました。
    • 制限の付いた商用ツールなどは使っていません。(あまり使う気になれない。)
  • DemoはCORTEX_STM32F103_Primer_GCCを元にしています。
皆さん様々なところで取り組まれているわけですが、 今回は商用ツールレスで実現しようというコンセプトでポーティング作業を行いました。

ダウンロードはこちらから(Download from here)

オープンソースソフトウェアを中心に構成した開発環境では情報が分散しがちです。
ダウンロード先にファイルが何らかのヒントになれば幸いです。

2010年7月17日土曜日

B057 : mp3 player kit

先日のSTM32開発環境構築と共に進めていたmp3 player kitについての仕様を詰めてみます。

今考えているのはちょうどB046 : uMP3PLAYERとB051 : WAV MODULEを混ぜたような内容。
B046の液晶表示器は扱いづらかったのでそれを変更し、B051のオーディオ出力を付けたような感じになると思います。
  • mp3ファイルなどをmicroSDカードから再生できる。
  • LCDに再生状況を表示できる。
  • 赤外線リモコンで制御できる。
  • 時計機能が付いていて目覚ましmp3プレイヤーとしても機能する。
  • ステレオスピーカ内蔵でアンプいらず。
  • プラスチックケースに入っていて扱いやすい。
本格的に実運用できるような物にしたいと思います。

2010年7月16日金曜日

STM32/Cortex-M3 HOWTO: Development under Ubuntu.

STM32/Cortex-M3の開発環境は有償無償を問わず様々な環境を用意可能です。

最近の国内雑誌はベンダーと手を組んで有償のツールを紹介するような内容が多く見られます。
それはそれで良いのですが、妙な制限が付いていたり、なんだか気持ちの悪いツールを使うように説明してあったりで、手放しに喜んで使う気にはなれないのが現状です。

そこで今回は STM32/Cortex-M3 HOWTO: Development under Ubuntu. を参考にUbuntu 10.04上で環境を構築してみました。


何かの参考になればということで、環境構築用のスクリプトとOpenOCDの設定ファイル、それにLEDチカチカプログラムをまとめてファイルにして置いておきます。
  • JTAGライタにはJTAGKey2を使っています。
  • OpenOCDはgitからソースコードをとってきてコンパイルして使いました。
    • Open On-Chip Debugger 0.5.0-dev-00403-ge8445c9-dirty (2010-07-11-13:51)
  •  DFUは気持ち悪くて使わないので思いっきり上書きしています。
  • LEDチカチカプログラムはSTM32F103VHB6_RevZ_Demo1を使っています。
ダウンロードはこちらから(Download from here)

ほぼ備忘録ですが、これからちょくちょく環境整備についてもまとめていこうと思います。

オープンソースの場合、バージョンによって大きく動作が変わったり、それに伴って情報が断片的になったりします。こういった時、断片的な情報を集めて整理することで問題を突き止める事ができる場合があります。ダウンロード用のファイルもそういった用途のために設置してあります。完全な動作を保証するためのものではありませんのでご了承ください。

2010年7月12日月曜日

Accessing to a STM32 MPU with OpenOCD and JTAGkey2

I tried to run OpenOCD with my JTAGkey2.
  • Getting and Extracting the libftd2xx
    • http://www.ftdichip.com/Drivers/D2XX.htm
    • tar xvfz libftd2xx0.4.16.tar.gz
  • Getting the OpenOCD latest source codes.
    • git clone git://openocd.git.sourceforge.net/gitroot/openocd/openocd
  • ./bootstrap
      • Configuring the option
        • ./configure --enable-ft2232_libftdi --with-ftd2xx-linux-tardir=/path/to/libftd2xx0.4.16
      • Building...
        • make
      • Editing a interface configuration file.
        • -ft2232_device_desc "Amontec JTAGkey-2"
        • +ft2232_device_desc "Amontec JTAGkey-2P A"
      • Running...
      shinta@ubuntu:~/Projects/openocd/openocd/src$ ./openocd -f interface/jtagkey2.cfg -f target/stm32.cfg
      Open On-Chip Debugger 0.5.0-dev-00403-ge8445c9-dirty (2010-07-11-13:51)
      Licensed under GNU GPL v2
      For bug reports, read
          http://openocd.berlios.de/doc/doxygen/bugs.html
      Info : only one transport option; autoselect 'jtag'
      1000 kHz
      adapter_nsrst_delay: 100
      jtag_ntrst_delay: 100
      Info : max TCK change to: 30000 kHz
      Info : clock speed 1000 kHz
      Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)
      Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)
      Info : stm32.cpu: hardware has 6 breakpoints, 4 watchpoints

        2010年7月9日金曜日

        Amontec JTAGkey-2P

        随分前に購入したAmontec社のJTAGkey-2P。
        今日になってやっと動作確認しました。

        昨日ドライバを導入して動かずに困って問い合わせたところ。
        「今ウェブサイトをアップデートしています。ちょっとアップデートを間違ってたみたい。」
        ということで間違った方のドライバをインストールしていたみたいです。
        Amontec JTAGkey (Channel A)
        2009/11/10
        2.6.0.0
        正しいのはこっちだと送っていただいたリンク先にあるドライバで更新したところAmontec JTAGkey Demo 060307で認識しました。
        http://www.amontec.com/download/amontec-jtagkey-driver-d2xx-20091124.zip


        ちなみに動かなかったバージョンは
        JTAGkey ( Channel A )
        2005/12/01
        3.1.2.0
        です。

        2010年7月8日木曜日

        ARM開発環境の構築(Ubuntu 9.10)

        Windows上で環境構築を始めましたが、なんだかんだ面倒なのでLinux上に構築することに。


        以下をリポジトリリストに追加する。
        deb http://www.emdebian.org/debian/ lenny main


        以下で認証キーを追加する。
        wget -O- http://www.emdebian.org/0x97BB3B58.txt | sudo apt-key add -

        ツールチェインのインストール。
        EABIを入れれば良いでしょう。
        sudo apt-get install gcc-4.3-arm-linux-gnu g++-4.3-arm-linux-gnu (OABI)
        sudo apt-get install gcc-4.3-arm-linux-gnueabi g++-4.3-arm-linux-gnueabi (EABI)

        binutilsをインストール。
        sudo apt-get install binutils-multiarch

        環境を構築したらmebd上でFreeRTOSを動作させることに挑戦します。
        あ、その前にCQ-STARMでLEDピコピコかな。