chakokuのブログ(rev4)

テック・コミック・DTM・・・ごくまれにチャリ

freescale M52259DEMO KITを使ってみる


去年、freescaleのアプリコンテストに応募して結果はともかく、M52259DEMO Kitが送られてきた。StartGuideという冊子を読んだだけで、これ一体何に使うのかいなと思って放置していた。が!最近、AVRでネットラジオを作りたいという気が湧いてきて、いきなりAVRで作ってもどうせ性能ギリギリだろうから、まずはパワフルなCPUを使った評価環境で試作した方が良かろうと思って、押入れに入れたままのDEMO Kitを使ってみることに。。(写真の奥がDemoキットのボード、手前はMP3デコーダのVS1011E)

このボードの関連資料は全部オンラインになっていて、トラ技やInterface誌のような手取り足取りの解説解説がないので、スタートアップに手間取りそうだ。。それにデモソフトはなんかRTOSとかUSB Bootいろいろあって、出来ます事てんこ盛りで、もっとシンプルなのが欲しのだが、、

とりあえずは、ボードの仕様書と、CodeWarriorのCコンパイラの仕様書を読んでみる。。

■追記
個人的には、以下のサンプルコード中の、uartサンプルが非常に助かるサンプルです。
MCF5225x_SAMPLE_CODE.zip
MCF5225x_SAMPLE_CODE_1.0\src\drivers\uart\uart.c
まだちゃんと読んでいませんが、レジスタの使い方とか割り込み処理ルーチンの書き方も分かると思われます*1

■追記 090628

MQXとかてんこ盛りでいろんなサンプルソースが入り乱れる中、どうにかこうにかRTOSを使わず、コンソールから文字が出せる程度のサンプルが作れた。いざ動いてみると、flashに焼いたコードもブレークできたりして、ほんま物のデバッガ(CodeWarrior)は使いやすいと感動した。(普段はprint文デバッグなので、原因究明まで時間がかかる。。)

■関連資料

freescaleのDEMOボードのページ
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=M52259DEMOKIT&parentCode=MCF5225X&fpsp=1&nodeId=0162468rH3YTLC00M95448

MCU;52259の仕様書
http://www.freescale.com/files/32bit/doc/ref_manual/MCF52259RM.pdf?fsrch=1

C Compilerの仕様書
CodeWarrior Development Tools C Compiler Reference 3.2 File:CCOMPILERRM
freescale社のWebSite Freescale > Search > Documentation から検索してたどり着けます。
http://www.freescale.com/webapp/search/Serp.jsp?SelectedAsset=Documentation

M52259DEMOキットの回路図その他(DVDにも結構入ってました)
M52259DEMOKIT: Low-Cost Demonstration Board Kit for MCF5225x
Freescale > 68K/ColdFire > ColdFire > V2 Embedded MPU > M52259DEMOKIT
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=M52259DEMOKIT&fpsp=1&tab=Design_Tools_Tab

ボードの回路図はこちらからも入手可能
AXIOM社 M52259DEMOMCU - K3
http://www.axman.com/?q=node/343

MC9C08JM60の仕様書
http://www.freescale.com/files/microcontrollers/doc/data_sheet/MC9S08JM60.pdf

ColdFireのアプリケーションノート
http://www.freescale.com/files/multimedia/coldfire/sections/reference_designs/notes.html?tid=mCFms

DBMをgdbから使うプロジェクト(詳細よく分かりませんが、CodeWarriorは期間限定なので、gcc+gdbで開発できないか。。等)
http://bdm.sourceforge.net/doc.html

*1:なぜ__interrupt__と書くだけで割り込みベクタに登録されるのだろうか。。