-
Notifications
You must be signed in to change notification settings - Fork 60
Open
Description
搜别的东西的时候路过这边,看到readme里提到了:
如果想采用elf加载器来实现gcc编译mrp仍然需要解决r9和r10寄存器的问题,因为斯凯使用armcc编译的elf与gcc编译的elf是不同的,虽然都是静态PIE,但是gcc编译的结果仍然保留了GOT表
从我折腾某些MMUless系统的经验以及这边的描述看,我感觉mrp用的可能不是PIC/PIE而只是单纯的因为没有或者不想用MMU而用了reloc(gcc可以用-Wl,--emit-relocs生成)
如果猜测属实,换成纯reloc应该就可以避免这类bug。程序不会因为r9和r10被用作PIC寄存器(sb和sl)导致寄存器损坏(虽然r9本身是platform dependent所以如果mrp和gcc/eabi对r9默认的使用方法不同可能还是需要patch gcc来彻底修复),也不存在需要处理GOT表的问题。
Metadata
Metadata
Assignees
Labels
No labels