いろいろ試す4

少し前、「」からメールをいただきました。ついにここまで刺客がきたかと内心
びびりまくってたのですが、そういった内容では全くなかったのでひと安心(おぃ
昔と比べて虹メが個人で動き回るということにだいぶ寛容になったのか、はたまた
いちいち目を光らせるのに飽きたのかはともかく、良い時代になったものですなぁ。
(いないさんのえろすフォルダを眺めつつ)

さて、先に述べた"メールの内容"というのはLPC2388向けのFreeRTOSデモのビルド
エラーの指摘のことだったのですけれども、少し前にCodeSourceryのバージョンが上
がったせいでFreeRTOS側のARM7依存部分にあるアセンブラマクロが通らなくなってしま
っていたのが原因です。現在配布されてるFreeRTOSV6.0.4以降では解消されている
のでそちらのソースと組み合わせてビルドするようにしてください。ビルドで詰まっ
てる人も多いようなのでこの情報は公表しときます。


●ARM関連とか
いつもの如く長い前ふりですがねむいさんがぼーっとしてるうちにも世間はものすご
いスピードで変わっていってます。Cortex関連もどんどん情報/ユーザーが多くなって
きましたがおまけについこの前もSTM32の新しいラインナップが追加されたりしてNXP
やATMELとさらにカチあう情勢になってきてますね〜。まぁ一般に手に入るのはず〜〜
っと先でしょうから(これにはすごく期待している)今あるものを駆け足で消化・学習しつつ
リリースを待ちたいと思います。

STM32関連の話題をもう少し続けます。少し前にペリフェラルライブラリがV3.2.0に
なっています
。今回はSTM32のValueLineの追加/CMSISのV1.3.0化とのことです。
そして案の定ライブラリのディレクトリ構成が変わってやがりましたので、こちらも
修正してメイクファイルに反映しました。ついでに言うとソース内のグローバル変数も
小変更されているので注意です。
現在おきばにて公開しているSTM32F107VCT/STM32 Primer2向けのソースはすべて
V3.2.0化してます。Primer2向けのFreeRTOSも古くなってますので近々更新予定です。

デバッグ環境も少し見直しました。前回の記事でやっけつVersaloonをこしらえたのです
がこれをSWDのデバッガ/ライタに機能を絞って(つまりほぼCortex専用)加工しました。
JTAGよりもとり回す線の数が少ないので、Cortex系の開発関連では重宝しそうです。

un
↑Etherpodとドッキング。ホントは画面奥にあるATXMEGA128A1とランデヴーさせる
 つもりだったのだが…。XMEGAの話はこの後に。

un
un
↑STM8SをRe-Discoveryして見た…(VersaloonはSTM8Sのファームも書けるから問題なし)。
この写真撮った直後STM8S部分とは"Detached"になります。




●AVR関連とか
少し前からちょっとづつATXMEGA128A1に浮気を続けてますが、ようやくSDカード+FatFs
の動作までこぎつけました。

un
↑おっきぃがめんはよいものだ…。今回の小動物写真はこちらからお借りしてます。

http://www.flickr.com/photos/ruth1066/ / CC BY-NC 2.0


un
以前ARMで行った読み込みスピードの比較をXMEGAでも。
 比較用のファイルは当時と同じものです。

んで、FatFs用のSPIをDMA化させようとしてず〜〜〜〜〜っと頑張ってきたのですが、
今現在のねむいさんの技術力ではどうしてもてなづけることができませんでした…orz
くやしい…でも…地道に経験を積んでいっていつかリベンジします!!!!

XEGAをいじってきた中で現時点で重要と思った点は…
1.VBAT端子が存在するXMEGAはATXMEGA256A3B等の末尾A3Bのデバイスに限られている。
 したがってATXMEGA128A1とかは外付けi2cなRTCの方が便利かも。
2.EBIに供給するクロックは64MHzまで設定できる。その時はPLLで64MHzのクロックを
 生成してEBIに、そのクロックをさらに1/2してCPUコアに供給する。
3.SPIはSlaveModeでしかDMAを利用できない。MasterでDMA使いたい場合
 はUSARTのMSPIモードを使う。MSPIモードの時もSPIと同じくSCLKは最大16MHz取れる。

こんな感じでしょうか…後に続く人が同じ部分で引っかからないように記録残しときます
現時点でのソースはこちらに…W.I.P.なコードなのでご利用は自己責任で〜…。

FPGA基板を繋げる試み(3PORT-EBIで接続)は時間を見て引き続き試行していきますが、
浮気はもうやめて開発の主軸を再びARMに戻して行くつもりです。
Embedded ArtistsのARM9ボード注文しちゃったし!

Comments

SPI マスタの DMA は、タイマ使うんですよ きっと。
シングルバッファだから、DMA 起動できても隙間ができるし、タイマできっちりタイミング合わせた方が速い.. とかそんな理由でそうなってるんじゃないですかね。

  • 2010/03/23 6:02 AM

ななし様(でいいのかしら!?)

ねむいです。こんにちは。

その方法はDMAのリソースを3つ(Timer,SPI-Tx,SPI-Rx)使うと無理やり
出来そうですね。私の場合はSDカードとタイマンで繋げるときはUSART-MSPIモード
の方が有利と感じたのですぐにそっちに流れてしまいましたが…

それとMSPIでDMAを試みたときもまるっきり転送出来ないのではなく、上手く
転送出来た時と出来ないときがあったのでどこか大切な部分を私が見落とし
てるかもしれないです。
おそらくピンポンバッファ構成して転送するなどの工夫が必要なのでしょう
が、哀しいかな現時点でその辺の知識を持ち合わせていないので勉強してから
再びチャレンジするつもりです。

Post a Comment








Go to top of page