Note:
Be aware of the QEMU paths being used.
Adapt them to your paths.
And don't forget to change your SD card device name (e.g. /dev/sdb).
The following copy can be copied:
#####GENERAL#####
CROSS_PREFIX= /usr/local/gcc-arm-none-eabi-5_2-2015q4/bin/arm-none-eabi-
AS = $(CROSS_PREFIX)as CC = $(CROSS_PREFIX)gcc LD = $(CROSS_PREFIX)ld OBJCOPY = $(CROSS_PREFIX)objcopy OBJDUMP = $(CROSS_PREFIX)objdump
#ASFLAGS = -Wall -march=armv7-a ASFLAGS = -Wall -mcpu=cortex-a8
################## QEMU ################## QEMU-PATH = ~/Documents/Trustzone/QEMU/qemu-tz/arm-softmmu QEMU-MACHINE-ARGS = qemu-system-arm -M realview-pb-a8 -serial stdio -kernel #QEMU-MACHINE-ARGS_2 = qemu-system-arm -M vexpress-a15 -cpu cortex-a15 -nographic -kernel QEMU-IMG-PATH = ~/Documents/Trustzone/TrustPi/qemu_com_smc/qemu.img
QEMUFLAG = -DQEMU
QEMU-OBJS = \ qemu-main.o \ qemu_lib.o
################## i.MX53 QSB ################## #MKIMAGE = /home/zhang/research/imx53/u-boot/tools/mkimage MKIMAGE = mkimage #CFLAGS = -Wall -O0 -nostdlib -nostartfiles -ffreestanding -march=armv7-a CFLAGS = -Wall -O0 -nostdlib -nostartfiles -ffreestanding -mcpu=cortex-a8
IMXFLAG = -DIMX53QSB
LDFLAGS = -L . -lgcc
IMX-OBJS = \ imx-main.o \ mxc_serial.o
################## RULES ################## all : imx53.img qemu.img
imx53_entry.o : imx53_entry.S $(AS) imx53_entry.S -o imx53_entry.o
qemu_entry.o : qemu_entry.S $(AS) $(ASFLAGS) -g qemu_entry.S -o qemu_entry.o
qemu-main.o : main.c $(CC) $(CFLAGS) $(QEMUFLAG) -c main.c -o qemu-main.o
imx-main.o : main.c $(CC) $(CFLAGS) $(IMXFLAG) -c main.c -o imx-main.o
#mxc_serial.o : mxc_serial.c # $(CC) $(CFLAGS) -c mxc_serial.c -o mxc_serial.o
#qemu_lib.o : qemu_lib.c # $(CC) -c qemu_lib.c -o qemu_lib.o
imx53.img : imx53.ld imx53_entry.o $(IMX-OBJS) $(LD) imx53_entry.o $(IMX-OBJS) -T imx53.ld -o imx53.elf $(LDFLAGS) $(OBJDUMP) -D imx53.elf > imx53.asm $(OBJCOPY) imx53.elf -O binary imx53.img $(MKIMAGE) -n imximage.cfg -T imximage -e 0x97800000 -d imx53.img imx53.imx
# # $(LD) generates unnecessary files and conflicts with the linking in this case, gcc is successfull and works fine # qemu.img : qemu.ld qemu_entry.o $(QEMU-OBJS) $(CC) qemu_entry.o $(QEMU-OBJS) -T qemu.ld -o qemu.elf -nostartfiles $(OBJDUMP) -S qemu.elf > qemu.asm $(OBJDUMP) -t qemu.elf | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$$/d' > qemu.sym $(OBJCOPY) qemu.elf -O binary qemu.img
run-qemu: cd $(QEMU-PATH) $(QEMU-MACHINE-ARGS) $(QEMU-IMG-PATH)
run-imx : sudo dd if=imx53.imx of=/dev/sdb bs=512 seek=2
clean : rm -f *.o *.elf *.sym *.asm *.img *.imx