いろいろ試す2

LPC2000系って海外の掲示板に情報わんさかあるから詰まった時はそっち見た方が速か
ったりして解決した瞬間にあんだけ足止め食らったのはなんだったんだと自分のア●さ
加減を恨んだりすることも毎度のこと…。
まぁお気楽ご気楽なアマチュアであっても情報戦マジ大事と感じる次第ですなぁ(キリッ
…ねむいさん的には本文と関係ない与太話書いてる時が一番楽しいです。







苺は抜きで。
IF誌に載ってたOLED表示プログラムの方も同じ修正を施しました
最終的には全部の機能合体できたらいいなと考えてます。

うー
おまけ
前回製作したLAN基板にmicroSDカードスロット(165円)つけました。これで死角は無し!




●JTAGkeyをimpactから使う
FT2232を使用したJTAGデバイスは自作方法が急速に広まっています。しかしそれにつ
れて「作ったけど動かない&動かし方がわからない!」云々の叫びが谺してるような
気がします。きっと空耳でしょう。
私はかみき氏ベースのJTAGKey互換回路(+VID&PIDもAmontecのと全く同じ)組んでるの
で幸いデバッガ周りではほとんど躓いたことはないです。

…それは置いといて前にMAI電子さんから破格値で販売されているxilinxのFPGAボード
を運よく購入できました。DWM誌2007年7月の付録のよりも容量が2倍多いです。
うー
早速JTAGでアクセスしてデバイスが見えるかどうか試してみました。
アクセス方法はFenrir氏が作成されたcblsrvのJTAGkey(と互換回路)対応版を使用して
impactのcableserver経由で行います。

Fenrir氏やNakagawa氏が公開されている物は私の環境(ゲストOS:Win2000、ホストOS:XPPRO,
VirtualBox使用)では残念ながらそのままでは動作しなかったので、Nakagawa氏が盛り込ん
だ修正の中でビットシフトしている部分だけ外して動作出来るようにしてます。
(こうやらないと動かないのは私の環境だけでしょう)。

うー
認識するとこんな感じです。

うー
書き込みも非常にスムーズ。もうLPTポートは要らない!?

cblsrv経由で使用できるのはバウンダリスキャンモードだけっぽいです。コンフィグ
ROM・FPGAへの書き込みだけならば速度も速いし(XCF04Fで50秒前後)これで充分。
このボード使って某デジットのタッチパネル液晶とか駆動できるようにしたいです。
VHDLのおべんきょg(ry




●OpenOCDのリビジョンが既に2570まで達していた(2009.07.30現在)
安定版は0.2.0が公式からリリースされています…がftdlのライセンスの絡みで実行
形式バイナリは公開されていません。0.1.0のバイナリも削除されています。
これからは自分で構築しなければならないようですね…非常にめんどい…。

OpenOCDは現在加速度的なスピードで開発が進められています。ネットで散見される
ARM系の開発環境構築法にはOpenOCDの設定・使用法も記されていますがあっという間
に陳腐化してしまって書いてるとおりにやるとうまくいかないこともあるようです。
OpenOCD使いこなしてる人はどのようにして風が吹いて桶屋がもうかるのかを理解し
てるでしょうからcfgなり何なりを変えるだけで対処できるでしょうが…初めて
触れる人には新しい情報と古い情報がごっちゃになってて非常に敷居が高く感じて
いるかと思います。ナムナム。がんばれよ!(←他人事)


とりあえず2009.07.30現在一番新しいr2570のを試してみました。手持ちの幾つかの
ARM基板でフラッシュの書き込みができたのを確認しました。
(注:cfgファイルはOpenOCDの世代交代によってどんどん変わっています。そのままでは
使えないものもあるので十分吟味のこと)

-LPC2388の場合(lpc2388_flash.cfg使用)
> "C:¥Devz¥AVR¥WinAVR¥utils¥bin¥make.exe" program
openocd -f C:/Devz/ARM/OCD/daemon.cfg -f C:/Devz/ARM/OCD/tcl/interface/jtagkey.cfg -f C:/Devz/ARM/OCD/tcl/target/lpc2388_flash.cfg -c "mt_flash main.elf" -c "continue" -c "resume" -c "shutdown"
Open On-Chip Debugger 0.3.0-in-development (2009-07-28-19:41) svn:2570
$URL: svn://svn.berlios.de/openocd/trunk/src/openocd.c $
For bug reports, read http://svn.berlios.de/svnroot/repos/openocd/trunk/BUGS
500 kHz
jtag_nsrst_delay: 100
jtag_ntrst_delay: 100
dcc downloads are enabled
500 kHz
Info : device: 4
Info : deviceID: 67358712
Info : SerialNumber: 11111111A
Info : Description: Amontec JTAGkey A
Info : JTAG tap: lpc2388.cpu tap/device found: 0x4f1f0f0f (mfg: 0x787, part: 0xf1f0, ver: 0x4)
Info : JTAG Tap/device matched
Warn : EmbeddedICE version 7 detected, EmbeddedICE handling might be broken
100 kHz
Info : JTAG tap: lpc2388.cpu tap/device found: 0x4f1f0f0f (mfg: 0x787, part: 0xf1f0, ver: 0x4)
Info : JTAG Tap/device matched
Info : JTAG tap: lpc2388.cpu tap/device found: 0x4f1f0f0f (mfg: 0x787, part: 0xf1f0, ver: 0x4)
Info : JTAG Tap/device matched
Warn : srst pulls trst - can not reset into halted mode. Issuing halt after reset.
target state: halted
target halted in ARM state due to breakpoint, current mode: Supervisor
cpsr: 0x000000d3 pc: 0x00000000
500 kHz
flash 'lpc2000' found at 0x00000000
auto erase enabled
Info : Padding image section 0 with 0 bytes
Warn : Verification will fail since checksum in image(0x00000000) written to flash was different from calculated vector checksum(0xb8a06f60).
Warn : To remove this warning modify build tools on developer PC to inject correct LPC vector checksum.
wrote 98756 byte from file main.elf in 6.125196s (15.745032 kb/s)

> Process Exit Code: 0
> Time Taken: 00:09


-STM32F103VBT6の場合(stm32_flash.cfg使用)
> "C:¥Devz¥AVR¥WinAVR¥utils¥bin¥make.exe" program
openocd -f C:/Devz/ARM/OCD/daemon.cfg -f C:/Devz/ARM/OCD/tcl/interface/jtagkey.cfg -f C:/Devz/ARM/OCD/tcl/target/stm32_flash.cfg -c "mt_flash main.elf"
Open On-Chip Debugger 0.3.0-in-development (2009-07-28-19:41) svn:2570
$URL: svn://svn.berlios.de/openocd/trunk/src/openocd.c $
For bug reports, read http://svn.berlios.de/svnroot/repos/openocd/trunk/BUGS
1000 kHz
jtag_nsrst_delay: 100
jtag_ntrst_delay: 100
Info : device: 4
Info : deviceID: 67358712
Info : SerialNumber: 11111111A
Info : Description: Amontec JTAGkey A
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)
Info : JTAG Tap/device matched
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)
Info : JTAG Tap/device matched
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)
Info : JTAG Tap/device matched
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)
Info : JTAG Tap/device matched
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08001ec0 msp: 0x20005000
Info : device id = 0x20016410
Info : flash size = 128kbytes
stm32x mass erase complete
Info : Padding image section 0 with 0 bytes
Warn : not enough working area available(requested 16384, free 16336)
wrote 8508 byte from file main.elf in 0.515641s (16.113136 kb/s)
verified 8508 bytes in 0.421888s
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)
Info : JTAG Tap/device matched
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)
Info : JTAG Tap/device matched

> Process Exit Code: 0
> Time Taken: 00:03


-AT91SAM7S256の場合(sam7x256_flash.cfg使用)
> "C:¥Devz¥AVR¥WinAVR¥utils¥bin¥make.exe" program
openocd -f C:/Devz/ARM/OCD/daemon.cfg -f C:/Devz/ARM/OCD/tcl/interface/jtagkey.cfg -f C:/Devz/ARM/OCD/tcl/target/sam7x256_flash.cfg -c "mt_flash main.elf" -c "reset run" -c "shutdown"
Open On-Chip Debugger 0.3.0-in-development (2009-07-28-19:41) svn:2570
$URL: svn://svn.berlios.de/openocd/trunk/src/openocd.c $
For bug reports, read http://svn.berlios.de/svnroot/repos/openocd/trunk/BUGS
dcc downloads are enabled
fast memory access is enabled
Info : device: 4
Info : deviceID: 67358712
Info : SerialNumber: 11111111A
Info : Description: Amontec JTAGkey A
Info : JTAG tap: sam7x256.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3)
Info : JTAG Tap/device matched
5 kHz
target state: halted
target halted in ARM state due to debug-request, current mode: Supervisor
cpsr: 0x60000013 pc: 0x001005f4
2000 kHz
background polling: on
TAP: sam7x256.cpu (enabled)
target state: halted
target halted in ARM state due to debug-request, current mode: Supervisor
cpsr: 0x60000013 pc: 0x001005f4
flash 'at91sam7' found at 0x00100000
cleared protection for sectors 0 through 15 on flash bank 0
auto erase enabled
Info : Padding image section 0 with 3 bytes
wrote 3636 byte from file main.elf in 1.468797s (2.417476 kb/s)
verified 3633 bytes in 0.109378s
Info : JTAG tap: sam7x256.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3)
Info : JTAG Tap/device matched

> Process Exit Code: 0
> Time Taken: 00:04

>この値から判断すると*****もかなり健闘しているということ
>でしょうか。
AT91SAMよりも上に明記してあるSTM32やLPC2388においての結果の方が本来の性能です。
どこに書いてあるのかわかりずらかったとかそういう言い訳はいりませんです。



JTAGでフラッシュに書けるようにしとくと何かと便利ですね〜。とくにJTAGkey(と互換回路)
はARMだけでなく先にも述べたとおりFPGAの書き込み等にもいろいろ使用できるので
アマチュアな人たちには必携のアイテムだと思います。

これAVRSPライクなアプリから操作してAVRに書き込みできるようになったら私的
には最強のツールになるのだが…。




●Intel X25-M(新型)を買った
購入して数日で不具合が発覚して涙目ですorzさらに4日間OSのシステムドライブと
して使用した後ベンチを取るとランダムライトの(512k,4k)速度が大きく落ち込んでい
るのが発覚orz

うー
購入直後
うー
4日後

X25-Mの速度低下現象は以下の手順で確実に回復(端的に)。
1.ドライブのバックアップ取る。(バックアップツールはこれ使ってます)
2.AHCI->IDEモードに切り替え、生DOSからHDDeraseのSecure Erase(enhanced)実行
3.電源断->再投入後AHCIに戻しさらにバックアップを復元する
4.わーい♥

うー
ファームの修正で速度低下を恒久的に防止できるようになると良いですね(涙目で)

LPC2388に実装したFreeRTOS上でEthernet-PHYを使う(だけ)

どうしてもWinARMを使いたいのなら20060606版を使え!
20080331版は一部の標準ライブラリが無いから使っちゃらめぇ!

↑これはねむいさんの独り言です。ねむいさんはCodeSourcery G++を使用することを
強く強くお勧めします。







…さて本題、FreeRTOS配布パッケージにあるLPC2468のデモはMCB2300デモボード
上での使用を想定してオープンソースなTCP/IPプロトコルスタックであるuIPが使用できる
ように組み込まれています。前回は外付けEthernet-PHY(DP83848)の回路を持っていな
かったのでその機能は外してRTOSの動作を見ていましたが、Digi-keyで頼んだ部品が入
ったのでEthernet-PHY周りの回路を製作し、改めて動作の確認を行いました。

Ethernet-PHY周りの回路はMCB2300の回路の丸パクリです…。回路図引く手間が省けた
50MHzの高速なクロックを扱うので、"びびり"なねむいさんはメッシュアース基板で回路
を組みました。基板組むのにかかったお値段は2944円也。QTFP変換基板やメッシュアース
基板使わなかったらもっと安く作ることができるでしょう。動作は保障できませんが。

うー

うー

ChanさんみたくUEW線を活用してカッコよく引き回せられたらよいんですけどね〜…私の
腕ではこれが精一杯ですorz
基板上を走る黒いリードはAWG32・UL3417の超極細耐熱電子ワイヤー。少しかさははり
ますがUEWより扱いやすく、重宝してます。また、CQ-FRK-NXP-ARM基板上の3.3Vレギュ
レータの容量が心もとないので(他のデバイスぶら下げること考えて)Ethernet-PHY基板
用に別途3.3Vレギュレータを設けました。昔秋月で販売していたL1087を使用してます。

一応50MHzのクロックのラインは最短で這わせています。オシロで見る限りでは、
ちゃんと所定の50MHzの周波数で発振しているようなのでひと安心。
ここまでやって失敗してたら死ぬわ。
うー
↑オシロのグランドリード伸び伸びのやっけつ測定。一応50MHzは出ているが…



後はソフトの方ですが公式のFreeRTOSソースはVerUpされてすでにV5.4.0になってます。
以前動かしたLPC2388用のデモソースもV5.4.0上で問題なくコンパイル・動作確認でき
ました。んで、以前はコメントアウトでオミットしていたuIPのタスクとLCDのタスクを
再び復活させるのですが、LCDのタスクは台湾BOLIMIN製のi2c液晶モジュー
のルーチンに差し替え、さらに48MHzで動作させていたFreeRTOSを72MHzで動かします。
オリジナルのLPC2468のデモは48MHzで動かしてたのに今気づいたorz

そんなこんなで無事にWebServerが動作しました。i2c液晶もオリジナルのLCDと遜色なく
表示ができています。printf系の関数もHeap_3.cを使うことによりうまく機能しました。
(printf系はOSから正しい手順で動かす方法あるはずなんで調査中です。)

うー

うー

元のLCDのソースには80段階でバーグラフ表示させるルーチンもあったので、ST7032iの
ライブラリに移植してます。初めて知ったけどこれ使って面白いのが作れそうですね〜。

うー
↑てわけで早速使って組み込んでみた。





今同時に進めてるCortex-M3も将来的にはSTM32F107系に乗り換えるので、RMII接続できる
Ethernet-PHY基板はこれからも重宝しそうです。
本日のソースはこちらに…。先にも書いたけどEthernet-PHYの回路はここ参照のこと
お約束ですが真似して試される場合は自己責任でどうぞ!

涙目のネムイ(STM32 Primer2のあれ)

秋月さんとこからもSTM32マイコン評価キットのSTM32 Primer2が販売されています
大量在庫で6100円の格安です!
ねむいさんは4月頃にDigi-keyで9600円くらいで購入していたので今すげぇ涙目です。
くやしい…でも…使用記書いちゃう!

20110824追加:
超実用!!USBマスストレージ機能つきGPSロガー


20091206追加:
USBマスストレージ機能付きいないさんのえろす画像表示機の制作





20091114追加:
ねむいさんがついに重い腰をあげましたの巻

早く座らせてくれ

20091012追加:
電源IC壊れたけどヤクいさんのために気合いで直しましたの巻


20091008追加:
電源ICが壊れて涙目の巻


20091004追加:
STM32 Primer2を使用したアプリ"いないさんと遊ぼう(性的な意味で)"を追加



うー
オレンジのボタンを押して主電源を入れると"Welcome to STM32Primer2!"と喋ってくれ
ます。おお、なんかすげぇ!入力デバイスはおなじみMEMS加速度センサ、そしてPrimer1
には無い4方向キーパッドやタッチパネルなんかもついていたりします。
少し4方向キーパッドがおしづらいです。日本携帯ゲーム機に慣れている方は戸惑うかも〜


うー
タッチパネルはのほかにもペンタブの先っちょでも使えます。というか画面が小さいので、
ペン入力デバイスをペンタブ売ってるとこで買っといた方がいいでしょう。指でやるとすぐ
指紋だらけになるし。
画像はmp3を再生するアプリ。音質はそれなりです。


うー
裏蓋を外したところ。Primer1ではガバガバだった蓋はけっこうかっちり閉まるように
なってます。裏には拡張用コネクタ、リチウム電池、デバッグ用・アプリ用USBコネクタ、
ステレオジャック、MicroSDカードスロットなんかがついてます。カードは別売りです。


うー
基板のRevは1.1です。

うー
表蓋は木ネジで固定されています。結構固いです。壊さないように丁寧にはずしました。
基板表面には部品がいっぱいのってます(はしょるはしょる)。
……おや?何かリワークしたあとが…


うー
細いラインを太いジャンパで補強しています。グランドを強化してる感じです。これは…


調べるとこういう記述がありました。
うー
多分アートワーク設計の時にGNDをただのプルダウンと勘違いして細いライン引いちゃ
ったのでしょうね…それでインピーダンス上がって寄生インダクタンスが出来てしまって
共振して高電圧が出てレギュレータ壊したと…あれ?どっかで聞いたような…まぁいいや…
どっかの基板と違ってちゃんと対策されて出荷されているので安心して使用できます。


うー
むき出しの状態で使用してみる。タッチパネル液晶の発色がきれいですね〜。


うー
STN液晶のPrimer1と比べてみる…視野角が全然違いますね…さすがTFT液晶


うー
おまけ。Primer1の表蓋外したところです。ねむいさんはCQ-STARMだけでもひいこら
言ってるのでPrimer1,2で遊んでる余裕なんて無いと思います。他の方の応用例に
期待をしたいと思います!

この記事を書いて約1年後、時代はmbedを使ったクラウド環境の開発が栄えてしまい、
ふつーに使っただけで電源回路が破壊されるSTM32 Primer2とかすっかり情弱基板
扱いになってしまったのでしたorz

STM32(CQ-STARM基板)にFatFs乗っけてみる

20150331追:
"STM32 FatFs"でググってこのページに飛んでこられる方が非常に多いのですが、
現在では通用しない過去の情報となっております。
代わりに普遍的なもう少し切り込んだ内容のFatFsの実装事例を紹介しております
ので、こちらをご参照願います。
20150331追:















i2cキャラクタ液晶制御のためのシンプルi2cライブラリ群に少し修正を加えました。
ライブラリ作りの折、他の人の作例をいろいろ見てると同じデバイス動かすのにも
いろいろな流儀があるなぁととても感心してます。

んで修正はいいんだけど私の場合AVR,LPC2388,STM32,(まだ公開してないがAT91SAM)の
多岐にわたって作っちゃってるんで、(過去の記事いちいち修正して回るのは大変な
ので)ソースの公開方法をちょっと考えなおそうかと思ってます。
とりあえず今回"は"おきに誘導で…。(やっけつ)
来週1週間かけてリンク周りは大改装しておきます…。そして今回も異様に長い前振り…。






こっからが本題ですが今年4月ごろにMartin氏が、Chan氏作FatFsのSTM32への実装を
実現されています。私もこれに倣ってCQ-STARM基板で使えるように移植を試みました。

Martin氏と大きく違う部分は評価ボードが違うのと、RTCの処理にnewlibのtime関数群
使ったのとFWLibV3.1.0系なのとスタートアップとリンカスクリプトを私がいつも使ってるのに
してあるのくらいdけっこうおおいぢぁないかおい!
…まぁ詳しくは後で示すソース見てねということで(はしょるはしょる)。

そんなこんなで難なくFatFsが動いてます。ロングファイルネームも日本語ファイル名
も全く問題無しです。
うー
LFNとか使うとこのプログラムは90kb近く容量喰うのでDFU(12kb消費)使うこと考えると
残り26kb程しか余裕がありません。当然この状態からsprintfとか組み込むと容量オーバー
で使用不可になってしまうのでちょっと考えてプログラム組む必要があります…。
CQ-STARM基板で動くFatFsはこちらに。ご利用は自己責任で…。
FatFs実装を中心としたGCCプロジェクトを取り揃えております。

ここから出来ること…とりあえずOLEDで画像表示をやってみますか…

STM32(CQ-STARM基板)にV3.XX系のライブラリでFreeRTOSを移植する。

うー
買ってしまった…もう戻れない、太陽の牙ダg…もうええっちゅうねん

残念ながらCMSIS規格がおっ建つ前に原書が刊行されているので原書を忠実に
日本語訳したこれは、CMSISのことについてはまだシの字も触れられていません。
…まぁでも「ねむいさんてこんなことも知らないでCortex-M3弄ってきたのか」
なんて言われないためにも持っておかなければならないのです…たとえコヤシに
なろうとも…





話変わって、以前はLPC2388上でFreeRTOS動かしたー!なんて記事書いてましたが、
最新版のFreeRTOSV5.3.1ではgcc環境下でSTM32F107への移植されたデモが公開
されています。しかもCMSIS規格にのっとったV3.XX系のファームウエアライブラリで行われ
ていたので、機は熟したとばかりにSTM32F103VB6なチップが乗ったCQ-STARM
基板への移植を試みました。

とはいったものの移植というほどのたいそれたことやってなくて今あるファイルを
実装例に基づいて(STM32F107のデモのCrossWorksのプロジェクトの構成を真似て)
右を左にやっただけ。
リンカスクリプトも私が今まで使ってきたものがそのまま使用可能でした。
スタートアップファイルもFreeRTOSの流儀に合わせて関数を定義してやるだけで、
エラー無くビルドが通ってます。(Codesourcery/RaisonanceRIDEのビルド環境下)

肝心の動作の方ですが、LED点滅のタスクとprintf関数の出力をUart経由で吐かす
タスクだけの簡素なもので試したところ正常な動作を確認しました。
うー
うまく行った日はBeerがうまいぜHAHA!(タプタプ)
…今回のソースはこちらに…いつものことながら、試される場合は自己責任で〜…
※公開停止しました。ほしい人はメールください。
これ単体ではビルドできないのでFreeRTOSのソース本体を別途ダウンロード
しておいてください。



あと、もう知ってる方も多いと思いますが、PICマイコンで有名な後閑氏がFreeRTOSの
使用&移植方法などをまとめられています。
PICのみならず他のマイコンにもすぐに応用が効くようなとても分かりやすい内容に
なっているのでFreeRTOSを使われる方は必読です!

DDT誌のLattice基板で試してたAVR_Coreってあれから…

去年の今頃、私は何をしてたか…確か主人の引き合いで全く関係ない職種(今も兼業で
してるけど)から2Xさいでこの世界に首突っ込んで三相交流とかまだ存在すら知らなくて
"if(hoge=0)"とかお約束のボケかましててUSBaspすげぇぇぇぇぇぇぇぇとかいちいち感心
してたころかしらね・・・
でもまったくの未経験な私でもしっかり飯食わしてくれてるこの業界は素晴らしいとおもうよ!?
でも来年くらいには私はまた違う場所で違う仕事やってるんだろなーともおもう・・・。




少し前にAVR_coreの記事についてコメントいただいたので思い出したようにやりかけて
たのを引っ張り出していじっていました。
以前AVR_Coreで組んだプログラムはごくごく簡単な処理だったのでちゃんと動いている
ように見えましたが、少し複雑な処理(重たい処理)をしだすとすぐコケることが分かり安定
させるための方法を5月以降ず〜〜〜〜〜〜〜っと探っていました。

現時点で分かった致命的なところは、複数の割り込みがかかるような、たとえば送信受信の
リングバッファ組んだシリアルで大量のデータを吐かせながらタイマ割り込み動かしてると
確実に不安定になるという問題で(実機は全く問題なし)、ねむいさんはこれを秘孔と呼んで
現状ではこの状況におちいるのを避けるようにプログラムを組むように心がけてます。

次にAVR_Core本体のコードなのですが…pm_fetch_dec.vhd内のフラグの処理にバグが
あったらしく、opencoresにある最新のものでは修正が入ってましたのでこちらの修正を移植
してます。これやっとかないと割り込みとかなにもかけなくても単にループ回してるだけで
10分に2~3回くらいは"ひでぶ"してたもんで・・・



とりあえず上記2点の考慮で今のところは安定かな?といったものがやっとこできてきたので,
LPC2388基板やSTM32基板でやってたことをAVR_Core上で再現してみました。
ChanさんがぷちFatFsなるものを公開されていたのでこれもついでに盛り込んでます。

以前はROM:8192Byte,RAM:4096Byteとってましたが(ねむいさんの力量では)こんだけ入れると
コードが入りきりません。仕方ないもんでRAMを2kByteに削りROMを16kByteに増強してます。
んで、RAM削ると今度はmega103のスタックの定義が合わなくなってまたべつの問題ががg
・・・・・・しかし、よくよく調べてみるとmakefile内でスタックのアドレスを明示してやるだけで
よいことが分かりWinAVR付属のmega103用のリンカスクリプトは一切いじらずにやり過ごす
ことができました。

プログラムの流れは下図のとおり。エレキジャックでおまけに付いてたLM73のルーチンも
ついでなんで突っ込んどきました。
うー
ずっとソフトウエアi2c使ってきたのはもとはと言えばAVR_Coreでi2cデバイス動かしたかった
からと言うのもあります…。決して内蔵レj(ry
VHDLはいまだに"--"くらいしかまともに出来ないけどLatticeの基板でここまで出来たぞー!!
と言うわけで今日のおソース…試される場合は自己責任で…
うー
そうだね基板使い回しだね






きょうのおまけ
うー
ATMEGA32で上のプログラムの再現・・・そうだね使い回しだね
ソフトi2cとmega32内蔵のi2cいずれの方法でもアクセスできるようにしてます。
あとAVR_Coreの予習のためにソフトspi使っています・・・。
こちらに

もう一つおまけ
うー
先日の日記で公開したLPC2388のプログラムの中にLM73のルーチンも突っ込んどきました。
あとRTCの処理に起因するバグ(6月34日とか表示される)と環境によってコンパイル・エラー
になる場所(ST7032i.c & rtc.c内の部分)も修正してますので、真似して試される場合は
前回公開したのはつかわないでなるべくこっちを使ってほしいんだ

Go to top of page