本帖最后由 FSL_TICS_ZP 于 2014-10-8 15:59 编辑
asm(“LDR r1,[r0]”)
asm(“MOV r13,r1”)
asm(“ADDS r0,r0,#0x04”)
asm(“LDR r0,[r0]”)
asm(“BX r0”)网上看了下 说是跳转PC指针 比如我KE02 bootloader 跳转向量中断重定位是到0x1000,那是不是跳转的时候PC指针会跳转到0X1000处开始运行程序,主要是我对r0,1这些存储是什么东西不了解!!!
希望有人能够帮助下,非常感谢!!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
没有源代码,不知道前面还有什么内容,就你贴出来这几句。 首先是初始化 SP(R13),R0指向地址存储值。 再跳转到R0+0x04开始执行。这是因为KE02的首4个字节是栈初始化值。4个字节后才真实的程序执行内容。如果R0是0x1000的话,则0x1000存值的栈初始化值,0x1004才是程序执行。好比没有BOOTLOAD的工程,则0x0000存储的栈初始化值,0x0004才是复位向量。
一周热门 更多>