Tasking 编译后分配函数位置的顺序

Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

我在LED.c 中定义了如下函数,函数在文件中的顺序见表1,编译后,函数在map文件中的分配的位置见表2。map文件中函数分配的位置的顺序和函数在文件中的顺序好像是无关的,例如, LED_Toggle_P33_11()在L118,LED_Toggle_P33_2()在L92,但是LED_Toggle_P33_11()分配在了前面。我的问题是,Tasking是按照什么原则分配函数位置的,谢谢~

  • L 8 ボイドLED_Init(ボイド)
  • L 82 ボイドSysHeart_LED(ボイド)
  • L 92 ボイドLED_Toggle_P33_2(ボイド)
  • L 97 ボイドLED_Toggle_P33_3(ボイド)
  • L 108 const void LED_Toggle_P33_9(ボイド)
  • L 118 const void LED_Toggle_P33_11(ボイド)

 

|0x80004f32 |LED_Init | |
|0x80005166 |LED_Toggle_P33_11 | |
|0x80005188 |LED_Toggle_P33_2 | |
|0x800051aa |LED_Toggle_P33_3 | |
|0x800051cc |LED_Toggle_P33_9 | |
|0x800051ee |SysHeart_LED

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Tasking-%E7%BC%96%E8%AF%91%E5%90%8E%E5%88%86%E9%85%8D%E5%87%BD%E6%95%B0%E4%BD%8D%E7%BD%AE%E7%9A%84%E9%A1%BA%E5%BA%8F/td-p/680386

0 件の賞賛
1 解決策
Translation_Bot
Community Manager
Community Manager
Community Manager

C ソース ファイル内の関数の順序は、メモリ内の関数の順序とは関係ありません。 すべての関数は個々のセクションに配置され、リンカーは内部検索アルゴリズムまたはリンカー スクリプト ファイルの要件に TLE9243QK_BASE_BOARD セクションを配置します。

メモリ内の関数の特定の順序が必要な場合は、次のような関数を含むセクションの順序を定義するリンカLSLファイルグループを追加できます。

section_layout :vtc:linear
{
グループMY_CODE (順序付け、連続、fill=0x00、run_addr=mem:mpe:pflash0)
{
select ".text.";
select ".text.SysHeart_LED>";
select ".text.LED_Toggle_P33_2>";
...
}

よろしくお願いいたします

ウルリッヒ・クロイド
タスキングツールのサポート

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Tasking-%E7%BC%96%E8%AF%91%E5%90%8E%E5%88%86%E9%85%8D%E5%87%BD%E6%95%B0%E4%BD%8D%E7%BD%AE%E7%9A%84%E9%A1%BA%E5%BA%8F/m-p/680793

元の投稿で解決策を見る

0 件の賞賛
2 返答(返信)
Translation_Bot
Community Manager
Community Manager
Community Manager

你好,

你可能需要查看下tasking的编译手册,或者问下他 @User13836 .

@User13836マップファイル内の関数アドレスの場所の順序が実際のソースファイルと異なる理由はありますか?

 

感謝

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Tasking-%E7%BC%96%E8%AF%91%E5%90%8E%E5%88%86%E9%85%8D%E5%87%BD%E6%95%B0%E4%BD%8D%E7%BD%AE%E7%9A%84%E9%A1%BA%E5%BA%8F/m-p/680448

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

C ソース ファイル内の関数の順序は、メモリ内の関数の順序とは関係ありません。 すべての関数は個々のセクションに配置され、リンカーは内部検索アルゴリズムまたはリンカー スクリプト ファイルの要件に TLE9243QK_BASE_BOARD セクションを配置します。

メモリ内の関数の特定の順序が必要な場合は、次のような関数を含むセクションの順序を定義するリンカLSLファイルグループを追加できます。

section_layout :vtc:linear
{
グループMY_CODE (順序付け、連続、fill=0x00、run_addr=mem:mpe:pflash0)
{
select ".text.";
select ".text.SysHeart_LED>";
select ".text.LED_Toggle_P33_2>";
...
}

よろしくお願いいたします

ウルリッヒ・クロイド
タスキングツールのサポート

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/Tasking-%E7%BC%96%E8%AF%91%E5%90%8E%E5%88%86%E9%85%8D%E5%87%BD%E6%95%B0%E4%BD%8D%E7%BD%AE%E7%9A%84%E9%A1%BA%E5%BA%8F/m-p/680793

0 件の賞賛