Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

Hello I have a problem where I can't seem to declare .data . I've tried various different things with my code and it always seems to break at this part

    asm(
       ".data
"
       ".file:  .ascii "/dev/mem\000"
"
    );

I can also remove any information after the .data and it will still break at '.data'. This is done on a raspberry pi 2 with inline assembly on C. If the rest of the code is relevant let me know but I'm pretty sure it's not. Thanks for any help!

Edit: Apologies I forgot to include the error message

"ERROR: .size expression for 'method name here' does not evaluate to a constant

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
245 views
Welcome To Ask or Share your Answers For Others

1 Answer

You don't restore the section before the end of the inline assembly, and gcc generate code that relies on inline assembly not changing the current section.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...