リンクアドレスが異なると、同じプログラムの実行時間が変わります。それらの間の関係は何ですか?プログラムの最適な実行を確保する方法は?
わかりました。ありがとう。
こんにちは、センレント、
ご提案ありがとうございます!
マップファイルの特徴は、以下の通りです。section(".func_mem_area")で関数を指定します。この領域の開始アドレスを変更すると、実行時間が異なります。
また、0x00001410~0x0000141Fなどのアドレスで同じ関数を指定するタイミングも異なります。
0x00001410 [54US]
0x00001412 [75US]
0x00001414 [85US]
0x00001418 [54US]
アライメントやアドレスがプログラムの実行時間に与える影響について説明していただけますか?
次に、マップ・ファイルとテスト関数を示します。
*(.func_mem_area)
.func_mem_area
0x00001410 0x1c ./Sources/main.o
0x00001410 DelayTest
void CODE_AREA DelayTest(uint32_tサイクル)
{
uint16_tインデックス= 0u、indey = 0u;
for(indey = 0u; indey < cycles; indey++)
{
for(インデックス = 0u; インデックス < 255u; インデックス++)
{
/*遊ぶ。*/
}
}
}
SysTickを遅延に使用すると、アドレス変更による影響が少なくなります。
お返事をお待ちしております。