是不是这个意思,ro base是可执行代码的基址,因为代码在内存中是有个其实地址的,所有指令中的标号或者跳转地址都是在经过链接以后都是要转换成实际的地址(如0x38000000)这样一个数值,所以连接器就需要有一个robase,后面的b,bx,等指令跳转连接后就是这个robase+b后面所跟标号相对程序入口的偏移地址, 这样的话就存在这样一种情况: 如果我们在编译链接时候将robase 设为 0x30000000 而将编译好的bin文件烧到nor flash的0x00处,这样的话就不对了,因为,b等跳转指令跳转出错了。 所以就可以这么理解,robase就是你打算将编译好的映像文件烧写的首地址,这样理解对不对?
但是 image entry point 该怎么理解呢? |