Score:2

รวบรวมรหัส ARMv7A (AArch32) บนเครื่อง ARMv8A (AArch64) หรือไม่

ธง id

ฉันได้อ่านในหลาย ๆ ที่ว่า ARMv8A รองรับรหัส ARMv7A ที่เข้ากันได้แบบย้อนหลัง (ก่อนหน้านี้เรียกว่า AArch64 และต่อมาเรียกว่า AArch32)

ฉันใช้เครื่อง ARMv8A (บน Raspberry Pi 4B พร้อม BCM2835 SoC) แต่ฉันต้องการเขียนและดีบักโค้ด GNU Assembly ที่เขียนด้วยภาษา ARMv7A ฉันจะรวบรวมไฟล์ .S ที่เขียนด้วย ARMv7A และเรียกใช้บนเครื่องของฉันได้อย่างไร

ฉันหวังว่าจะเป็นอย่างนั้น

    gcc MyAsmFile.S -march=armv7-a

จะใช้งานได้ แต่ฉันได้รับข้อผิดพลาดต่อไปนี้:

    cc1: **ข้อผิดพลาด**: ค่าที่ไม่รู้จัก: 'armv7-a' สำหรับ '-march'
    cc1: *หมายเหตุ*: อาร์กิวเมนต์ที่ถูกต้องคือ: armv8-a ... armv8.6-a ดั้งเดิม; คุณหมายถึง '**armv8-a**'?

คำแนะนำใด ๆ ที่จะได้รับการชื่นชม! เหตุผลคือฉันต้องการฝึกฝนรหัส ARMv7A โดยเฉพาะเพราะเป็นสิ่งที่เราจะใช้ในที่ทำงาน

hr flag
บางทีคุณอาจต้องการ cross toolchain (อาจเป็นไปได้ว่า gcc-arm-linux-gnueabihf)?
Gregory Fenn avatar
id flag
ขอบคุณ แต่ฉันจะรันโค้ดที่คอมไพล์แล้วได้อย่างไร มีแฟล็กพิเศษใดบ้างที่ฉันต้องบอก gcc-arm-linux-gnuabihf ว่าโค้ดนั้นเขียนใน ARMv7A แต่จะรันบน AArch32 หรือสิ่งเหล่านี้เหมือนกันและสามารถใช้แทนกันได้โดยกำเนิด?
hr flag
ขออภัย ฉันไม่รู้อะไรเลยเกี่ยวกับสถาปัตยกรรมนั้นจริงๆ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา