我问了一个相关的问题here。现在我有更基本的问题,我的意思是我原来的问题已经改变,所以我决定问一个新问题。我在链接器脚本和makefile方面没有太多经验。从linux中读取以下四个文件setup.ld,Makefile,bioscall.S和pmjump.S,我认为可行(正常)是否合适?
在bioscall.S中:
.code16
.section ".inittext","ax"
在pmjump.S中:
.code32
.section ".text32","ax"
在setup.ld中:
.inittext : { *(.inittext) }
和
.text32 : { *(.text32) }
答案 0 :(得分:1)
ELF
格式没有16位变体,因此您的16位代码将被放入32位部分。是的,这些可以与“真正的”32位代码链接在一起。结果是否有效是一个不同的问题。
答案 1 :(得分:0)
如果使用ARM处理器,16位代码为“拇指”模式,16位指令,32位寄存器,32位代码为“arm”模式,32位指令和32位寄存器,则可以实现。 ARM工具集也使用ELF。