問題タブ [softune]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
debugging - 富士通Softuneデバッガの制御
他のアプリケーション (Eclipse など) で富士通 Softune デバッガを制御する方法はありますか? Softune のドキュメントに記載されているコマンドを送信して出力を解析することを考えていますが、他のアプローチも歓迎します。
enums - 富士通Softuneの列挙型ストレージのサイズ縮小
使用する富士通のマイクロコントローラは32ビットです。したがって、列挙型ストレージも32ビットです。しかし、私のプロジェクトでは、実際には列挙型要素は256を超えません。列挙型のストレージをサイズダウンするコンパイラオプションはありますか?
linker - Softune WorkbenchリンカーファイルでのRWXIのIはどういう意味ですか?
リンカマッピングファイル(.mp1)には、「タイプ」というタイトルの列がありR
、たとえば、、、、および可能な属性がありW
ますX
。I
マニュアルも他のユーザーガイドも、これらの属性の意味については言及していません。自分のコードをチェックR
すると、読み取り、W
書き込み、X
コード(実行可能)を意味することは明らかです。たとえば、変数はRW-?
、定数R--?
、関数です。R-X?
ここでは?
、の有無で注意しましたがI
、できませんでした。意味を見つけてください。
誰かがI
そのRWXI
意味を知っていますか?
eclipse - Eclipse デバッガーの変更
Eclipse CDT デバッガーを変更して、FR ファミリの富士通ボードでコードをステップ実行できるようにしようとしています。ボードは SOFTUNE IDE からのみ通信できます。富士通は、SOFTUNE のデバッガと通信するための dll を提供しています。
簡単な C++ プログラムを作成して、これを動作させ、SOFTUNE を制御することができました。
.dll で提供されるコマンドは次のとおりです。
私が抱えている問題は、CDT デバッガーにプラグインを作成して、dll を使用してコマンドを渡すことです。Web を検索すると、独自のデバッガーを作成することしかできません。ゼロから始めるよりも簡単な方法はありますか?
eclipse - Eclipse DSF の操作
私は、softune のデバッガーを eclipse のデバッガーとマージする任務を負っています。私は、DSF がまさにこのために作られていることを理解しています。ただし、DSF を実際に使用する方法についての指示はないようです。
チュートリアルや例を検索しましたが、これに関連するものは見つかりませんでした。誰にもヒントやアイデアはありますか?.dll から softune デバッガーを制御できます。これをデバッガーのフレームワークに取り込もうとしていますが、どこから始めればよいかわかりません。
どんな助けでも大歓迎です。
ありがとう
c - NOP/数行の余分なコード/ポインターのエイリアシングの最適化が役立つのはなぜですか? 【富士通 MB90F543 MCU Cコード】
富士通 MB90F543 の成熟したプログラムで見つかったバグを修正しようとしています。このプログラムはこれまで 10 年近く動作していますが、ある特殊な状況下では、最初の 2 つのことを実行できないことが判明しました。そのうちの 1 つが重要です。
低レベルおよび高レベルの初期化 (ポート、ピン、ペリフェラル、IRQ ハンドラー) の後、構成データが EEPROM から SPI 経由で読み取られ、ステータス LED がしばらくオンになります (それらをオンにするために、データは SPI 経由で LED ドライバーに送信されます)。これらの特別な状況が最初に発生し、EEPROM の読み取りを呼び出す最初の関数だけが失敗し、さらに、点灯するはずの LED のいくつかが点灯しません。
プログラムは C で書かれており、Softune v30L32 を使用してコンパイルされています。驚くべきことに、低レベルのハードウェア init に単一の __asm(" NOP ") を追加するだけで、上記の状況でプログラムが期待どおりに動作するようになります。最適化設定で「ポインター エイリアシングの最適化を制御する」をオフにするだけで十分です。さまざまな場所に数行のコードを追加することも役立ちます。
__asm(" NOP ") を使用するバージョンと使用しないバージョンのコンパイル済みプログラムの ASM リストを比較 (DIFF) し、前述の両方のオプティマイザー設定を使用して比較しましたが、すべて問題なく表示されます。
コンパイル中に Softune コンパイラが何年も出力してきた唯一の警告は次のとおりです。
*** W1372L: セクションが RAM 領域または I/O 領域 (IOXTND) の外に配置されています
かなり一般的な質問だと思いますが、より大きな画像を持っている人が考えられる原因を指摘できるかもしれません.
何がそのような奇妙な動作を引き起こす可能性があるか考えていますか? バグを見つけて修正する方法
初期化中に、いくつかの長い (約 20ms) 遅延ループが使用されます。それらは約 2ms から増加されましたが、役に立ちませんが、ハードウェア初期化関数の任意の行で単一の NOP が機能し、関数の前後でも役立ちます。
両方の待機ループが機能します。オシロスコープで確認してみました。(LED のオンとオフを追加しました)。
SPI クロックを 1MHz から 500kHz に落として、タイミング仮説を確認しました。何も変わりません。250kHz まで減速すると、コードの一部の実行時間が長すぎる (>25ms) ため、ウォッチドッグがリセットされます。
もう一つ。ソースファイルにローカル変数を追加すると、問題が消えたり再発したりすることがあります。同じことが、初期化されていないローカル変数の初期化にも当てはまります。いずれかのファイルに数行のコードを追加すると、問題が解決したり明らかになったりします。
c - Softune C Compiler では _Generic の使用が機能しない
コードで _Generic 一次式を使用しなければならない問題について、フォーラムで多くの検索を行いました。_Generic 機能を使用して変数のデータ型を取得するマクロを作成しました。
これまでのコードでは、マクロを呼び出します:
したがって、_Generic 関数が定義されていないことを示すコンパイル エラーが発生します。
W1020B: 警告: 識別子 "_Generic" は未定義です E4254B: 型名は許可されていません E4018B: ")" が必要です E4065B: ";" が必要です
何か案は?Softune C Compiler を使用してプロジェクトをコンパイルしたことを示すことが重要です。