1. Makefile 中會 指定linker.ld.c 要編成 linker.ld .
e.g. $(OBJ_DIR)/linker.ld: $(SRC_DIR)/linker.ld.c
$(CC) -Xpreprocessor $(IFLAGS) -P -E $< -o $@
2. linker.ld.c中會指定 obj 要放在哪個地方
e.g.
.sram : {
obj/wcom*.o(.text);
*(.sram);
} > sram AT> flash
.text : {
*(.text);
} > flash
這樣表示 , 除非特別指定放在sram , 否則都放在 flash
從編出來的執行檔 可以看出這個差異 (1.有放在.sram . 2. 拿掉)
$ nm PDK_dbg.elf | grep OOBResponseTask
8a00008c T OOBResponseTask //in SRAM
$ nm PDK_dbg.elf | grep OOBResponseTask
8b03b108 T OOBResponseTask //in FLASH
沒有留言:
張貼留言