您的位置:首页 > 其它

下面放一段可以启动的,位置无关的arm bootloader简易启动:

2016-06-29 17:18 405 查看
非常好,可借鉴。

下面放一段可以启动的,位置无关的bootloader启动:

//Makefile

FILE_NAME = zkj-loader

SCRIPT_FILE = zkjloader.lds

CROSS_COMPILE=arm-linux-

###################################################

#C compiler

CC = $(CROSS_COMPILE)gcc

#Assembler

AS = $(CROSS_COMPILE)as

#Linker

LD = $(CROSS_COMPILE)ld

#Liblary

AR = $(CROSS_COMPILE)ar

#Object dump

OBJDMP = $(CROSS_COMPILE)objdump

#Object copy

OBJCOPY = $(CROSS_COMPILE)objcopy

#clean

CL = rm -f

###################################################

OBJ_FILE = \

start.o \

main.o

.PHONY: all

all:$(OBJ_FILE)

$(LD) $(OBJ_FILE) -T $(SCRIPT_FILE) -o $(FILE_NAME).elf -Map $(FILE_NAME).map

$(OBJDMP) -S -d $(FILE_NAME).elf > $(FILE_NAME)_disassemble.txt

$(OBJCOPY) -O binary $(FILE_NAME).elf $(FILE_NAME).bin

@echo ========== zkj-loader Compile Complete==========

.PHONY: clean

clean:

$(CL) *.o *.elf *.bin *.txt *.map

/////////////////////////////////////////////////////////////////////////////////////////////////

//start.s

.global _start

.global c_runtime_go

_start:

ldr sp,=0xe633fffc

/*

* set the cpu to SVC32 mode , ke yao ke bu yao

*/

mrs r0, cpsr

bic r0, r0, #0x1f

orr r0, r0, #0xd3

msr cpsr,r0

bl c_runtime_go

loop:

b loop

/////////////////////////////////////////////////////////////////////////////////////////////////

//main.c

//#include "board.h"

#define OUTDT3 0xE6053008 //GP3_26:TP139

#define INOUTSEL3 0xE6053004 //GP3_26:TP139

extern void c_runtime_go(void);

void c_runtime_go(void)

{

*(volatile unsigned int *)(INOUTSEL3) = 0xFFFFFFFF;

*(volatile unsigned int *)(OUTDT3) = 0xFFFFFFFF;

//*(volatile unsigned int *)(OUTDT3) = 0;

while(1);

}

/////////////////////////////////////////////////////////////////////////////////////////////////

//zkjloader.lds

OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")

OUTPUT_ARCH(arm)

ENTRY(_start)

SECTIONS

{

. = 0xe6300000;

. = ALIGN(4);

.text :

{

_start = .;

start.o (.text*)

*(.text*)

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: