0

出力セクションに C ファイル全体を含めたいのですが、

これが私が試しているサンプルコードです:

#include<stdio.h>
#pragma arm section code = ".sec_ro"
int main(void)
{
printf("Hi\n");
}
#pragma arm section

私が使用した:

arm-none-linux-gnueabi-gcc -S hello.c

.S ファイルを取得します。

しかし、sec_roセクションが .S ファイルに存在しないようです。

編集/更新:

.s ファイルの内容の添付:

.arch armv5te
.fpu softvfp
.eabi_attribute 20, 1
.eabi_attribute 21, 1
.eabi_attribute 23, 3
.eabi_attribute 24, 1
.eabi_attribute 25, 1
.eabi_attribute 26, 2
.eabi_attribute 30, 6
.eabi_attribute 18, 4
.file   "hello.c"
.section    .rodata
.align  2
.LC0:
    .ascii  "Hi\000"
    .text
    .align  2
    .global main
    .type   main, %function
main:
    .fnstart
.LFB0:
    @ args = 0, pretend = 0, frame = 0
    @ frame_needed = 1, uses_anonymous_args = 0
    stmfd   sp!, {fp, lr}
    .save {fp, lr}
    .setfp fp, sp, #4
    add fp, sp, #4
    ldr r0, .L2
    bl  puts
    mov r0, r3
    ldmfd   sp!, {fp, pc}

C ファイル全体を囲んで出力セクションを作成したいのですが、GNU ARM ツール チェーンを使用しています。

4

2 に答える 2

0

gcc を使用する場合、progma のようなものでファイル セッション全体を指定する方法はありませんか?

多くの場合、特に大規模なプロジェクトが同じリンク スクリプトを共有する場合、リンカはどのファイルがインクルードされるかを実際には認識していないため、ソース コード レベルからプログラム構文を許可することが重要です。

于 2020-01-10T03:49:21.923 に答える