「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ
CALENDAR
2014年4月
日
月
火
水
木
金
土
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
前月
翌月
Entry Archive
2024年12月
2024年11月
2024年10月
2024年09月
2024年08月
2024年07月
2024年06月
2024年05月
2024年04月
2024年03月
2024年02月
2024年01月
2023年12月
2023年11月
2023年10月
2023年09月
2023年08月
2023年07月
2023年06月
2023年05月
2023年04月
2023年03月
2023年02月
2023年01月
2022年12月
2022年11月
2022年10月
2022年09月
2022年08月
2022年07月
2022年06月
2022年05月
2022年04月
2022年03月
2022年02月
2022年01月
2021年12月
2021年11月
2021年10月
2021年09月
2021年08月
2021年07月
2021年06月
2021年05月
2021年04月
2021年03月
2021年02月
2021年01月
2020年12月
2020年11月
2020年10月
2020年09月
2020年08月
2020年07月
2020年06月
2020年05月
2020年04月
2020年03月
2020年02月
2020年01月
2019年12月
2019年11月
2019年10月
2019年09月
2019年08月
2019年07月
2019年06月
2019年05月
2019年04月
2019年03月
2019年02月
2019年01月
2018年12月
2018年11月
2018年10月
2018年09月
2018年08月
2018年07月
2018年06月
2018年05月
2018年04月
2018年03月
2018年02月
2018年01月
2017年12月
2017年11月
2017年10月
2017年09月
2017年08月
2017年07月
2017年06月
2017年05月
2017年04月
2017年03月
2017年02月
2017年01月
2016年12月
2016年11月
2016年10月
2016年09月
2016年08月
2016年07月
2016年06月
2016年05月
2016年04月
2016年03月
2016年02月
2016年01月
2015年12月
2015年11月
2015年10月
2015年09月
2015年08月
2015年07月
2015年06月
2015年05月
2015年04月
2015年03月
2015年02月
2015年01月
2014年12月
2014年11月
2014年10月
2014年09月
2014年08月
2014年07月
2014年06月
2014年05月
2014年04月
2014年03月
2014年02月
2014年01月
2013年12月
2013年11月
2013年10月
2013年09月
2013年08月
2013年07月
2013年06月
2013年05月
2013年04月
2013年03月
2013年02月
2013年01月
2012年12月
2012年11月
2012年10月
2012年09月
2012年08月
2012年07月
2012年06月
2012年05月
2012年04月
2012年03月
2012年02月
2012年01月
2011年12月
2011年11月
2011年10月
2011年09月
2011年08月
2011年07月
2011年06月
2011年05月
2011年04月
2011年03月
2011年02月
2011年01月
2010年12月
2010年11月
2010年10月
2010年09月
2010年08月
2010年07月
2010年06月
2010年05月
2010年04月
2010年03月
2010年02月
2010年01月
2009年12月
2009年11月
2009年10月
2009年09月
2009年08月
2009年07月
2009年06月
2009年05月
2009年04月
2009年03月
2009年02月
2009年01月
2008年12月
2008年11月
2008年10月
2008年09月
2008年08月
2008年07月
2008年06月
2008年05月
2008年04月
2008年03月
2008年02月
2008年01月
2007年12月
2007年11月
Recent Entry
振り返り2024
こないだのロボット
ロボット行ってきた
追加で中古ソフト買ってきた
こないだのロボット
ロボット行ってきた
レトロコンボ2グリーンを9Vで試す
SFCのラインヘッドネジ
こないだのロボット
ロボット行ってきた
Recent Comment
nekosan/
JYRUSSやってきたメモ
フルタニアン/
JYRUSSやってきたメモ
nekosan/
JYRUSSやってきたメモ
フルタニアン/
JYRUSSやってきたメモ
nekosan/
こないだのロボット
フルタニアン/
こないだのロボット
nekosan/
こないだのロボット
フルタニアン/
こないだのロボット
nekosan0/
レジ袋ホルダーを考える
フルタニアン/
レジ袋ホルダーを考える
Category
ノンジャンル
(2863)
PIC
(47)
AVR
(341)
Arduino
(446)
Raspberry Pi
(194)
mbed
(41)
ARM
(30)
ESP32
(15)
Android
(10)
OPアンプ
(125)
VHDL
(57)
PSoC
(4)
アナログ回路
(110)
クルマ
(127)
rails
(51)
本
(42)
導電塗料
(3)
Fritzing
(41)
Edison
(2)
FFT
(34)
写真
(158)
MIDI
(24)
その他日記
(11)
Python
(57)
3Dプリンタ
(124)
Bookmark
最初はgoo
goo blogトップ
スタッフブログ
My Profile
ブログID
nekosan0
自己紹介
Search
このブログ内で
ウェブ全て
色々と地雷を掘り当てる
Arduino
/
2014年04月23日
5110液晶画面の目処が付いてきたので、コイツに
FFTを組み合わせて、メモリ使用量を確かめてみる
ことに。
そしたら、あちこちで地雷を踏みまくり。
まずはFFTライブラリを読み込んでみる。ザックリ
としたロジックの骨組み部分を書いて、コンパイル
してみる。とりあえず通った。
通ったので、メモリ使用量を確認しようと思って、
以前書いたスケッチから、未使用メモリ量を計算
する関数を拾ってきて、貼っつける。
「r28 cannot be used in asm here」
「r29 cannot be used in asm here」
とかいう、良くわかんないエラーが出ちゃう。
これって、インラインアセンブラでレジスタ28番
と29番(Yポインタ)がどこかと競合しちゃって
るっていう風な話なんだろうなぁ。
対処にこまって、あれやこれや検索してみる…。
詳しく書かれてるところも見当たらないし、対応も
イマイチしっくりこない。
ソース中の一部分をあちこちコメント化して、
どこに原因がありそうなのかをチェックして
行ってみる。
すると、どうやらおかしそうなところが見えて
きた。FFTか、残メモリ計算か、その両方を記述
したときにエラーになるみたい。
さらにあれこれと彷徨っていて、
http://www.openmusiclabs.com/forums/viewtopic.php?f=4&t=433
こんな情報があった。
どうやら、FFTライブラリと残メモリ計算の間で
レジスタを競合してしまうみたい。
まぁ、詳細がわかったところで、FFTライブラリの
細かい内部まで突っ込んだ話になっちゃうから、
どうしようもなさそうな気がするんだけど…
というわけで、とりあえず暫定対応としては、
FFT関連関数をコメント化した状態でメモリ残量を
チェックし、加えてFFT計算で必要になるSRAM量
(理論値)を手計算して使う感じかな。
さらにもう一つ。
以前書いたメモリ使用量計算の処理は、どこかの
海外サイトのスケッチを参考にしたものなんだけど、
それが悪さしてるんじゃ?と思ったので、別の
モノを探してみる。
http://playground.arduino.cc/Code/AvailableMemory
こんなライブラリがあったのか。
折角なので、このライブラリを借用してみる。
…例によってzipを解凍して、ライブラリの
フォルダにコピー。
メモリ確認用のプログラムサンプルをコンパイル
してみる。
…エラー。取り込まれない。と言っても、ヘッダ
ファイルが見つからないじゃなく、ライブラリ内
の関数が未定義って出てきちゃう。
なんじゃこりゃ?
改めてArduinoのライブラリ関係について検索を
してみると、バージョン1.0.5からライブラリ関係
の機能がアップしてたんだな。
具体的には、
http://blog.arduino.cc/2012/10/22/arduino-1-5-support-for-the-due-and-other-processors-easier-library-installation-simplified-board-menu-etc/
ライブラリ簡単インストール機能とやらを、
Arduino1.5からのバックポートで取り込んで
いるみたい。へぇ。
メニューバーから、ライブラリの追加を行うと、
ダウンロードしたzipファイルから直接ライブラリ
を取り込んで、展開してくれるみたい。
折角の機能なんだけど、さっきの、ライブラリ用の
フォルダに解凍したライブラリを放り込んでも
うまく認識されないのは、そのせいなのか???
気を取り直して、とりあえず動かしてみることだけ
を優先する。
zipファイル状態のライブラリを、IDEの機能で
取り込んでみると、確かにメモリ残量チェックだけ
のサンプルプログラムがコンパイルできた。動作も
大丈夫みたい。
んで、さっきのメモリ残量計算処理と置き換えてみる。
…やっぱり同じエラーが出る。
どうやら、メモリチェック処理とFFTは、完全に
水と油みたいだな。
気を取り直して、新しくArduino1.5から1.0.5にバック
ポートされたライブラリの機能を確認しなおしてみる。
どこに取り込まれたんだ?zipファイルのまま参照
したりはしてないんだろうなぁと思って、展開された
実体を探す。
…いつものライブラリフォルダには格納されてない。
ってことは、ここには居ないわけだな。
どこに展開しちゃったんだろう?とあちこち探し
まくって、アレコレと検索掛けてみて、ようやく
判った。
自分で書いて保存したスケッチの格納先フォルダに、
新しく「libraries」っていうフォルダが追加されて
いて、その中にzipが解凍されてた。
こんな風に。librariesフォルダと並列に存在するのは
これまでに作って保存してある各スケッチ。
IDEからは、こんな風にすると、「#include<xxxxx.h>」
と自動で読み込むためのコードが1行追記される。
(「Contributedのところに追加されてる)
コンパイルしてみる。通った。よし。
さて、さっきの話に戻る。
なんで元々のライブラリフォルダ(この写真では
Contributedの記述より上にあるモノが格納された
ディレクトリ)に放り込んでも、なぜ認識され
ないのか?
各バージョンでは、標準のライブラリが固定化され
てしまって、それ以外はcontributedの方に入れて
おけってことなのか、それともバグなのか。
バグだったら、とっくに見つけられてギロンされて
いてもイイ頃なんだけどな。
それにしても、こういう風にライブラリを読み込む
元を複数にするってことは、コンパイルをワンクリック
するときに、無意識にバグを作りこむ(ライブラリの
バージョン不一致)恐れが生じるから、このあたりの
仕様は、慎重にした方がよさそうな気がするけどな。
コンパイル時にエラーになるならともかく、プログラム
自体を見直しても、(間違った方の)ライブラリソース
を見直しても、エラーがあるように見えないバグを
作りこんだり…
そもそも、どういう順序で、どこにおかれたライブラリ
を探してるのかなぁ?
それにしても、ちょこっとテスト…のつもりで、
次々と地雷を踏んでしまったなぁ。困った。
手が殆ど進まなかった。
Raspberry Piの、Fuse ZX Spectrum。
https://www.youtube.com/watch?v=Jzdv-JUNxyU
スバラシイ。
まさか、ゲーグラでも有名な、ZX Spectrumの
R-TYPEを、Raspberry Pi上のエミュで見ることに
なろうとは。
それにしてもZX Spectrumのプログラマはスゴイ
よな。どう見てもR-TYPEだもんな。
オイラも、AVRのアレ
http://picavr.uunyan.com/avr_m_demo.html
を使って、
「AVR-TYPE」
なんてのをでっち上げてみたりするかな。
マップデータを格納するメモリさえ確保
できれば、ナントカなっちゃいそうな気が
するんだけどな。
コメント (
0
)
goo ブログ
ブログの作成・編集
gooおすすめリンク
おすすめブログ
【集まれ!野鳥ブロガー】あなたのブログを紹介しませんか?
@goo_blog
【お知らせ】
ブログを読むだけ。毎月の訪問日数に応じてポイント進呈
【集まれ!野鳥ブロガー】あなたのブログを紹介しませんか?
訪問者数に応じてdポイント最大1,000pt当たる!
dポイントが当たる!無料『毎日くじ』