0

問題があります。評価キットと、WINDOWS xp の下の IDE のツールスイート プラグインでかなりうまく機能する starter_kit プログラムがあります。IDE の同じツールスイート プラグインは、Ubuntu 12.0.4 で動作しますが、同じことはしません。こと。参考までに、私のツールは次のとおりです。

  • MCU:PIC24HJ128GP504
  • ボード:PIC24H MCU用MPLAB STARTER KIT
  • ロード/デバッグ用 USB 接続 SKDE PIC24H SENSOR
  • IDE:MPLABX IDE v1.85
  • Cコンパイラ:XC16 V1.11
  • ソース コード: pic24 H センサー デモ用スターター キット

UBUNTU では、エラーなしで XC16 C コンパイラを使用して MPLAB X IDE でそのソース コードをコンパイルおよびリンクし、デバイスをプログラムしますが、その後、Microchip のロゴ (スタートアップ エクササイズ) が OLED に表示され、コードの他の部分は表示されません。実行(ホーム画面など)とOLEDが点滅し、点滅中にMicrochipのロゴを表示することを繰り返します.RESET LOOPに入るように思えます。

奇妙なのは、OS を ubuntu から Windows XP に変更し、Windows XP にインストールされた同じ IDE と同じ C コンパイラを使用してデバイスをプログラムすると、完全に動作し、この一見リセット ループに入らないことです。 Microchip ロゴ (スタートアップ エクササイズ) を表示し、残りのプログラムを実行します (ホーム画面)。何が悪いのかわかりません。私はこの問題をデバッグするためにこの手順を使用しましたが、成功しませんでした。私の場合はどうするか、問題を見つけるのを手伝ってくれるかどうかを知りたいです。

  • マップファイル (リンカー出力) を比較します。winXP のマップには resetPRI 関数があることを除いて、2 つのファイルはほとんど同じですが、ubuntu のマップはリセットを使用します (関数ではなくメモリ セクションのように思われます)。マップファイルの共通部分と以下の違い。

External Symbols in Program Memory (by address):

              0x000200                  __resetPRI 
Memory Configuration:

Name             Origin             Length             Attributes
data             0x000800           0x002000           a !xr
reset            0x000000           0x000004   
program          0x000200           0x015600    

LOAD libp24HJ128GP504-elf.a


.reset            0x000000          0x4 
                  0x000000          0x2 SHORT 0x200 ABSOLUTE (__reset)
                  0x000001          0x2 SHORT 0x4
                  0x000002          0x2 SHORT 0x0 ((ABSOLUTE (__reset) >> 0x10) & 0x7f)
                  0x000003          0x2 SHORT 0x0

.text             0x000200        0xf06



libpic30-elf.a(crt0_standard.o)
              0x000200                  __reset (difference:from ubuntu map file)
              0x000200                  __resetPRI (difference:from winxp map file)
build/default/production/_ext/1360937237/**Main.o** 

_0x40c515645214dac2 (difference:from ubuntu map file)
_0213CF005214c228   (difference:from winxp map file)
                    0x2600        0x1c0
 _0x40c515645214dac2  (difference:from ubuntu map file)
 _0213CF005214c228   (difference:from winxp map file)
                    0x2600        0x1c0 build/default/production/_ext/1360937237       /Accelerometer.o   (ONE function in the program )  
                0x2600                  _BufferA

  _0x40c515c05214dac2  (difference:from ubuntu map file)
_0213D1205214c228       (difference:from winxp map file)

どこで問題を探すべきか、どんなアイデアでも大歓迎です。

4

0 に答える 0