タグ付けされた質問 「cortex-m」

1
マシンコードの正確なコピーは、元の関数よりも50%遅く実行されます
組み込みシステムのRAMとフラッシュメモリからの実行を少し試しました。迅速なプロトタイピングとテストのために、私は現在Arduino Due(SAM3X8E ARM Cortex-M3)を使用しています。私が見る限り、Arduinoランタイムとブートローダーはここでは何の違いもないはずです。 ここに問題があります:ARM Thumb Assemblyで記述された関数(calc)があります。calcは数値を計算して返します。(> 1s runtime for the given input)次に、その関数のアセンブルされたマシンコードを手動で抽出し、それを生のバイトとして別の関数に入れました。両方の機能がフラッシュメモリに存在することが確認されています(アドレス0x80149および0x8017D、隣り合っています)。これは、逆アセンブルとランタイムチェックの両方で確認されています。 void setup() { Serial.begin(115200); timeFnc(calc); timeFnc(calc2); } void timeFnc(int (*functionPtr)(void)) { unsigned long time1 = micros(); int res = (*functionPtr)(); unsigned long time2 = micros(); Serial.print("Address: "); Serial.print((unsigned int)functionPtr); Serial.print(" Res: "); Serial.print(res); Serial.print(": "); Serial.print(time2-time1); Serial.println("us"); …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.