C 如何在多个内存区域中放置程序代码?
有几个内存区域C 如何在多个内存区域中放置程序代码?,c,linker,ld,linker-scripts,C,Linker,Ld,Linker Scripts,有几个内存区域 MEMORY { rom1 (rx) : ORIGIN = 0x00000000, LENGTH = 256k rom2 (rwx) : ORIGIN = 0x10000000, LENGTH = 16M ram1 (rw!x) : ORIGIN = 0x20000000, LENGTH = 64k ram2 (rwx) : ORIGIN = 0x21000000, LENGTH = 16M } 如何将所有输入文件的.text部分
MEMORY
{
rom1 (rx) : ORIGIN = 0x00000000, LENGTH = 256k
rom2 (rwx) : ORIGIN = 0x10000000, LENGTH = 16M
ram1 (rw!x) : ORIGIN = 0x20000000, LENGTH = 64k
ram2 (rwx) : ORIGIN = 0x21000000, LENGTH = 16M
}
如何将所有输入文件的.text部分放置在rom1的内存区域中,如果没有足够的空间,则将剩余的字符放置在rom2中?在输出部分的说明中只能指定一个内存区域
.text :
{
*(.text)
} > rom1
据我所知,没有办法将一个部分分布在几个非连续的内存区域上 正如所建议的,应该将该部分划分为几个部分,然后分配给内存区域
一般来说,这是一个关于不同可能性的非常方便的文档。据我所知,没有办法将一个节分布在几个非连续的内存区域上 正如所建议的,应该将该部分划分为几个部分,然后分配给内存区域
一般来说,这是一个关于不同可能性的非常方便的文档。根据这是哪个CPU,可能有支持在多个区域中具有分区的链接器的商业替代方案。因此,链接器尝试将某个对象放置在区域1中,直到它不再适合该区域,然后将其放置在区域2中。在我的经验中,这是一个比较常见的特性,我经常在各种微控制器系统上使用它。根据这是哪种CPU,可能会有支持在多个区域中具有分区的链接器的商业替代方案。因此,链接器尝试将某个对象放置在区域1中,直到它不再适合该区域,然后将其放置在区域2中。根据我的经验,这是一个比较常见的特性,我经常在各种微控制器系统上使用它。