Firefoxでソースマップが使われない

https://bugzilla.mozilla.org/show_bug.cgi?id=1289570https://github.com/webpack/webpack/issues/1194https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Use_a_source_map

に書いてある様に、about:configでdevtools.sourcemap.locations.enabledtrue にする必要があるらしい。

忘れない様にメモしておく。

改造版picberryの-fにつけるオプション(family)の表

今では、この表は、あまり意味がない。

 Model subfamily family
PIC10F320 SF_PIC10F322 pic10f322
PIC10F322 SF_PIC10F322 pic10f322
PIC10LF320 SF_PIC10F322 pic10f322
PIC16F1826 SF_PIC12F1822 pic12f1822
PIC16F1827 SF_PIC12F1822 pic12f1822
PIC16LF1826 SF_PIC16LF1826 pic16lf1826
PIC16LF1827 SF_PIC16LF1826 pic16lf1826
PIC16F1823 SF_PIC12F1822 pic12f1822
PICLF1823 SF_PIC12F1822 pic12f1822
PIC12F1822 SF_PIC12F1822 pic12f1822
PIC12LF1822 SF_PIC12F1822 pic12f1822
PIC16F1824 SF_PIC12F1822 pic12f1822
PIC16LF1824 SF_PIC12F1822 pic12f1822
PIC16F1825 SF_PIC12F1822 pic12f1822
PIC16LF1825 SF_PIC12F1822 pic12f1822
PIC16F1828 SF_PIC12F1822 pic12f1822
PIC16LF1828 SF_PIC12F1822 pic12f1822
PIC16F1829 SF_PIC12F1822 pic12f1822
PIC16LF1829 SF_PIC12F1822 pic12f1822

今の段階でのPICの種類と引数につけるfamilyの対応表を出してみた。familyが-fオプションにつける文字列だ。表が間違っていないと信じたい。

例えば、PIC10LF320に書き込む場合、表より、familyはpic10f322になるので、以下のようにすれば良い。

./picberry -f pic10f322 -w hoge.hex

PIC10F322とPIC12LF1822しか持っていないので、この2種類でしかテストしていない。しかも、テストは単純なLチカしか行っていない。どんなプログラムでも本当にちゃんと書き込めているのか、全くわからない。長いプログラムは最後の方とかまでちゃんと書き込めているのかなんとなく不安だ。

ああ、そうだ。今回のプログラミングではLow-Voltage ICSP™ modeにしか対応していない。高電圧のプログラミングはいずれ対応したいと思っている。その前に、まずはチャージポンプを完成させなければならない…

今度の週末にでも秋月に行って、PIC16F182[3579]を買おうと思っている。買ったらうまくいくかどうかテストしてみる予定だ。

USB対応のPICも試してみたい。それの書き込みもできるようにするかもしれない。

PICマイコンを焼いてみた

追記

読みづらい文章だと思うので、こちらにわかりやすく要点を書き直したのをあげた。

2018/5/21追記:

公式サイト紹介しているブログを見てもらうと早いが、pickleが幅広いPICマイコンに対応している。下記で紹介されている方法では、限られたPICマイコンしか書き込みができない。pickleを使ったほうが、いろんなPICマイコンに対応していて便利かもしれないのでご参考に

元の文章

秋月でPIC10F322とPIC12LF1822を購入してみた。
しかし、よくよく考えたら、PICライターを持っていなかった
PICkitは5000円以上で高いし、AliExpressに転がっている謎の互換品でも10ドルくらいする。AliExpressで買っても良さそうだけど、届くまでかなりの時間がかかってしまうんだよな。すぐに遊びたい。
ArduinoのPICライターがあるっぽいけど、家に帰ってよく調べてみたら自分の使いたいPICは見事に対応していなかったようだ。というか、そもそも持っているArduino Unoは5VのIOピンで、購入したPIC12LF1822は5Vに耐えられない仕様だった。なんでLFなんて買ってしまったのか今となってはよくわからない。

さて、どうするか…

ESP8266をArduinoにさせる何かでも使おうかと思ったけど、あんまり意味がなさそう。
そういえば、Raspberry Piがごろごろ転がっていたので、これのGPIOを使って焼けないかと思っていたら、GitHubに見事にそれっぽいのが転がっていた。picberryというソフトを使えば買って来たマイコンが焼けるかと思いきや、そういう訳にも行かなかった。
これもまた買って来たPICが対応していなかった。しかし、ソースコードは思ってたよりも読みやすく、利用できそうだった。ので、PIC12F1822ファミリーのフラッシュメモリ書き込み仕様書を読みながら対応させた。PIC10F322ファミリーのフラッシュメモリ書き込み仕様書も見ていた。
https://github.com/akimasa/picberry/tree/devel
上記URLになる。
make raspberrypiかmake raspberrypi2でいけたと思う。
説明に書いてあった。GPIOを叩くだけっぽいので、BeagleBoneとかでもいけるらしい。試していないのでうまくいくかどうかはわからない。
自分はRaspberry Pi Zeroでやってみた。
イギリスの通販で買えば、500円もしなかった。送料がかかるので、送料込みだと結構な値段になるが、Raspberry Pi用のカメラとかも安かったので正月に色々まとめて買っていた。日本でも、Pi Zeroは最近発売されたらしいが、品薄だ。値段は確か、税抜き600円だったっけな。使うとなると、microSDにUSBケーブルが最低限必要になるので、揃えると1000円は超えそう。さらに、スルーホール用のテストワイヤーもあると便利。250円か。microSDにOSを入れる術も用意しておかないといけない。これは、microSDカードリーダーがあればいける。あと、ブレッドボードも必要かな。幸いなことに、OSの入ったmicroSDもUSBケーブルもテストワイヤーも全て家に転がっていた。したがって、出費なしでPIC書き込み環境が揃えられた。

  • Raspberry Pi Zero 600円
  • microSDHC 16GB 600円?
  • USBケーブル 100円?
  • テストワイヤー 250円
  • microSDカードリーダー 不明(PCに内蔵されていた)
  • ブレッドボード 270円?

なにも持っていなくてPICマイコンだけ買ってしまっても、これだけ揃えれば書き込みができる。今だとPi Zeroを入手するのが一番難しいか。その場合は、他のGPIOのついたRaspberry Piでも代用が充分できるが、少し高い。あと、片側がソケットになっているジャンパワイヤーが必要。Raspberry Piはピンヘッダがついているのでピンソケットで接続しないといけない。

 sudo ./picberry -f pic10f322 -w ramen_int2.hex

さて、上記コマンドでPIC10F322にうまいこと拾って来たhexファイルを焼くことができて、正常に動作するらしいことが確認できた。

PIC12LF1822にも同じサイトにあるhexファイルを拾って、見事に機能することが確認できた。書き込み時に-f pic12f1822と指定するといけたと思う。どのようなオプションをつければ良いかは後ほどまとめるかもしれないし、まとめないかもしれない。

3/20追記:今ではpic10f322と指定するだけでデバイスIDから自動検出するようになりました。

書き書きできたので、何か作ろうと思って、sdcchomebrewで入れてみた。コンパイル済みのものが降って来たのだが、あれを結構使っている人がいるってことだろうか。10年くらい前に使ってみて、delayが無いので不便だと思ってたけど、今になっても指定したミリ秒やマイクロ秒だけウェイトを入れる機能がない…

なんかうまい解決方法があるんかなぁ…。microchip公式の開発環境を使った方がいいんのかな。

とりあえず、Lチカ(違)はできた。ソースコードを置いておく。RA2を圧電スピーカーにでも繋ぐと音が出る(ぉぃ

とりあえず、ライターは動くものが出来ているけど、表示されている書き込みアドレスがおかしかったり、進捗がおかしかったりしているので、後で直して、プルリクエストを送るんだ…。ああ、そうだ。デバイスIDで機種を自動検出しないとな…。結構、やること多くて、PR送れるのはいつになるやら。

Z170-AでサスペンドしたらPT3が認識されなくなった件

サスペンドして、復帰すると、カーネルのログにNot a PT3と出力されてPT3が使い物にならなくなる。BIOSの更新を行なった後に発生したので、多分BIOSの更新が関係するとは思うのだが、BIOSのバージョンを元に戻すことができないので謎である。期待せずに、ASUSのサポート(代理店)に問い合わせたら期待通りの期待できない回答だった。

PT2の不具合をやっつけたら、今度はPT3で不具合かよ…。

2017/4/6追記:マザーボードを変えても同じ現象が再現した。もしかすると、BIOSが原因では無いのかもしれない。PT3の故障の可能性もありうる気がしてきた。あるいはPT3ドライバか。

2018/8/21追記:

なんとなく検索コンソールみたら2chからリンクを張られていた。参考までに、この問題は、通常GPUを差すPCIe x16スロット(CPUに近い方)にPT3を差し込むことで回避できている。

QEMUの仮想マシンでDHCPが通らなかった

以下のようなコマンドを実行すれば解決

http://qiita.com/TsutomuNakamura/items/e15d2c8c02586a7ae572https://wiki.linuxfoundation.org/networking/bridge が参考になった。

echo 0 >/proc/sys/net/bridge/bridge-nf-call-iptables

iptablesがDHCPパケットでもブロックしたようだ。なぜかIPv6は全く問題なく通信できていた。おそらく、DHCPとは違う何らかの方法で自動設定しているからかな。あるいは、ip6tablesが何もしていないからか。iptablesをいじっていないのに、なんでいきなりDHCPが通らなくなったのかは謎である。Docker関連っぽい設定が追加されていた気がするから、Dockerの更新がまずかったのかな。

IPv6が途切れる問題は仮想マシンと関係があるっぽい?

IPv6が途切れる問題

仮想マシンを使った後に現象が発生する気がするが、詳細は不明。
仮想マシンを使わずに24時間近く放置していて、サスペンドとリジュームを繰り返しているはずだが、今の所、問題ない。
後で調べる。

qemuをPCIパススルーでNVIDIAのGPUを使う場合1607に更新できない?

NVIDIA GPUドライバの問題なのか、Windowsの問題なのか、それとも蟹のオーディオのドライバの問題なのかよくわからないが、いずれにせよアップグレードしようとすると再起動後にBSoDが発生してすぐに元に戻ってしまう。
qemu-system-x86_64 -cpuにに次の様なオプションを追加することで問題なく進めることができた。
1511: kvm=off,hv_vendor_id=hoge
1607へアップグレード前:core2duo,kvm=off,hv_vendor_id=hoge
1607にアップグレード後:host,hv_vendor_id=hoge
ちなみに、これらのオプションはArchWikiのPCIパススルーのトラブルシューティングの項目に従って試行錯誤してみただけだった。
そういえば最初はhost,kvm=off,-hypervisorだったっけな。初めて起動スクリプトを書いた時とArchWikiの内容が変わっている?

IPv6が途切れる問題

IPv6のpingがサスペンドしたり、数時間経つと返って来なくなる問題が発生していた。
このページこのページを参考にecho 0 > /sys/class/net/br0/bridge/multicast_snoopingを実行したら、現象が再現しなくなった。
ので、
/etc/systemd/network/bridge.netdev

[Bridge]
MulticastQuerier=true
MulticastSnooping=true

を追加した。
これでどうなるか様子見。
続報がなければ多分良くなっている。
続報:だめだった。

[Bridge]
MulticastSnooping=false

今度はこれで様子見する。パフォーマンスの問題が起こるかもしれないから少し不安だ。
8/15追記:
これでもNetwork is unreachableになった。
何がまずいんだろう…