0

開発ボードで提供されるマイクロチップ ソース コードを使用して、16F1947 のダリ コードの開発に取り組んでいます。

私は会社のおかげでコンパイラのプロフェッショナル バージョンを持っているので、PRO モードを使用して以前のプロジェクトをビルドすることができ、ビルド ツールによって提供されるすべての最適化が行われました。

マイクロチップ サイトから dali プロジェクトをダウンロードし、[PRO モードで] xc8 を使用してコンパイルしようとすると、ビルドが失敗し、次のエラー メッセージが表示されます。

/opt/microchip/xc8/v1.10/bin/aspic: signal 11 
:: error: exec failed: /opt/microchip/xc8/v1.10/bin/aspic
Microchip MPLAB XC8 C Compiler (PRO Mode)  V1.10
Copyright (C) 2012 Microchip Technology Inc.
make[2]: Leaving directory `/home/hobo/embed/mplab-x/projects/DALI_CG.X'
make[1]: Leaving directory `/home/hobo/embed/mplab-x/projects/DALI_CG.X'
(908) exit status = 1
make[2]: *** [dist/default/production/DALI_CG.X.production.hex] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 5s)

aspic は彼らのアセンブラーであり、XC8 のマイクロチップのユーザー マニュアルから、シグナル 11 が何を指しているのかは明確ではありません。さらにテストを行ったところ、ライセンス マネージャー xclm と関係があることがわかりました。これは、最適化を行わずにフリー モードでコードをビルドしようとすると、正常にビルドされるためです。今では誰もが知っているように、これにより、不要なループと変数が前後にコピーされる肥大化したコードが発生します。

私は愚かなことをしていますか?それとも、より多くのお金をフォークして、コンパイラの最新かつ最高のバージョンに支払う必要がありますか.

前もってありがとう、wb

4

1 に答える 1

0

まず、アセンブラからのシグナル 11 は、入力で segfault が発生したことを意味します (PRO バージョンのコンパイラですべての最適化を実行しようとしています)。明らかに、何もする必要がない無料版では、明らかな理由でセグメンテーション違反は発生しません。

1 つ上のバージョン (xc 1.21) にアップグレードする必要がありました。現在、PRO の最適化は正常に機能し、ライセンスに問題はありません。

振り返ってみると、これはおそらくばかげた質問でした。

はぁ。謝罪します。

于 2016-08-27T19:01:01.440 に答える