当前位置: 技术问答>linux和unix
链接脚本vmlinux.lds.S的问题!
来源: 互联网 发布时间:2017-01-18
本文导语: 在链接脚本kernel-2.6.13archarmkernelvmlinux.lds.S中,有一行ENTRY(stext),据说是用来指定入口点的。 那么我的问题是: 1,链接脚本中的ENTRY(stext)指定的入口点是,head.S中的stext吗? 2,为什么在链接脚本和head.S中都要写EN...
在链接脚本kernel-2.6.13archarmkernelvmlinux.lds.S中,有一行ENTRY(stext),据说是用来指定入口点的。
那么我的问题是:
1,链接脚本中的ENTRY(stext)指定的入口点是,head.S中的stext吗?
2,为什么在链接脚本和head.S中都要写ENTRY(stext)呢? 只写一个可以吗?比如说在head.S中写了ENTRY(stext),那链接脚本中不写可以吗?为什么?
3,head.S中除了ENTRY(stext)以外,还有ENTRY(secondary_startup)和ENTRY(__secondary_switched),为什么要使用这么多次ENTRY()呢? 这样它们几个到底哪一个是入口点?由什么决定的?
多谢!大侠们了!!!
那么我的问题是:
1,链接脚本中的ENTRY(stext)指定的入口点是,head.S中的stext吗?
2,为什么在链接脚本和head.S中都要写ENTRY(stext)呢? 只写一个可以吗?比如说在head.S中写了ENTRY(stext),那链接脚本中不写可以吗?为什么?
3,head.S中除了ENTRY(stext)以外,还有ENTRY(secondary_startup)和ENTRY(__secondary_switched),为什么要使用这么多次ENTRY()呢? 这样它们几个到底哪一个是入口点?由什么决定的?
多谢!大侠们了!!!
|
1、如果cpu有mmu,一般就配置使用 head.S,入口就在 ENTRY(stext);
如果没有mmu,一般就配置使用 head-nommu.S,入口在 ENTRY(stext);
2、指明连接器将 stext 作为可执行文件的入口,一般只能指明一个。一个可执行文件运行时可以有多个入口吗?你写的应用程序中,可以有多个 main 函数吗?
3、两个文件中的 ENTRY 意义不同。入口由链接器脚本文件决定。
如果没有mmu,一般就配置使用 head-nommu.S,入口在 ENTRY(stext);
2、指明连接器将 stext 作为可执行文件的入口,一般只能指明一个。一个可执行文件运行时可以有多个入口吗?你写的应用程序中,可以有多个 main 函数吗?
3、两个文件中的 ENTRY 意义不同。入口由链接器脚本文件决定。