Darkside(https対応しました)

2018年9月30日(日) 21:00

6.73 vs 6.76

 ソースが公開されていない最新版の Ver 6.76 で、device6.ini だけ書き換えて PIC16F1827 に書き込んでみる。すると、2箇所のベリファイエラーが出てそれ以外は書き込み成功した。
 ただしそれ以外にも、恐らく CONFIG レジスターは書き込みできていない。

 もう少し良く見ると、ベリファイエラーが出た2箇所は、書き込もうとしている値がおかしい。というのも、プログラムエリアは14ビットなので、0x0000 〜 0x3FFF までの値しか存在し得ない。だが、7番地と8番地はそれを超える値になっている。そんな値は絶対に書き込みできない。下位14ビットは正常に書き込まれている。
 つまり、恐らく書き込みは CONFIG 以外成功していて、なぜかHEXファイルの読み込みで2箇所のデーター化けが生じている。
 不具合は書き込みではなく、HEX読み込みの方だ。

  MPLAB X IDE 上からオリジナルのプログラムコードを確認すると、7番地と8番地は全く異なる値である。そして、それ以外のプログラムコードは AKI-PIC 上でも正常に読み込まれているようだ。

 原因は、恐らく CONFIG レジスターである。AKI-PIC が7番地と8番地に読み込んだ値が、CONFIG1 と CONFIG2 の値と一致している。そして、CONFIG レジスターは、8007h 番地と 8008h 番地である。
 ちなみに、PIC16F88 の場合、CONFIG レジスターは 2007h 番地と 2008h 番地に存在する。

 AKI-PIC がHEXファイルを読み込んだとき、番地を14ビットマスクしてしまい、CONFIG レジスターの値を7番地と8番地に上書きしてしまったのだと思われる。そして CONFIG レジスターは 2007h 番地と 2008h 番地に存在すると思い込んでいて、だから値を読み込めずデフォルトの 0x3FFF が設定されたまま。

 何てこった。

 Ver 6.76 は、恐らく PIC16F1827 に書き込むことができる。HEXファイルの読み込みさえ修正すれば、恐らく使える。だが、Ver 6.76 はソースが公開されていないので修正できない。
 ソースが公開されている Ver 6.73 は、チップイレースでエラーが出て書き込みできない。

written by higashino [バトルタンク改造Tiger1] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Darkside(https対応しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4