问题
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\n"
".file: .ascii \"/dev/mem\\000\"\n"
);
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
回答1:
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.
来源:https://stackoverflow.com/questions/42809752/cant-declare-data-in-inline-assembly