• 用于OpenRISC的Makefile示例


    用于开源处理器OpenRISC精简版AltOR32的软件开发,使用的工具链为or1k-elf-gcc,Makefile和连接脚本为:
     1 #***********************************************************************************************
     2 #    File        : Makefile
     3 #    Author        : Lyu Yang
     4 #    Date          :
     5 #    Description : Makefile for OpenRISC
     6 #***********************************************************************************************
     7 
     8 TARGET = main
     9 
    10 CROSS_COMPILE = or1k-elf-
    11 
    12 INCLUDE_DIRS = -I ./
    13 LIBRARY_DIRS = -L ./
    14 
    15 CC = $(CROSS_COMPILE)gcc
    16 CFLAGS =  $(INCLUDE_DIRS) -mno-delay -c -msoft-div -msoft-float -msoft-mul -mno-ror -mno-cmov -mno-sext -Os
    17 
    18 CXX = $(CROSS_COMPILE)g++
    19 CXXFLAGS =  $(INCLUDE_DIRS) -c -mno-delay -msoft-float -msoft-mul -mno-ror -mno-cmov -mno-sext -Os
    20 
    21 AS = $(CROSS_COMPILE)as
    22 ASFLAGS = -c
    23 
    24 LD = $(CROSS_COMPILE)ld
    25 LDFLAGS = $(LIBRARY_DIRS) -T./openrisc.lds -Map $(TARGET).map -nostartfiles -nodefaultlibs -nostdlib
    26 
    27 OBJCP = $(CROSS_COMPILE)objcopy
    28 OBJCPFLAGS = -O binary -j .text -j .rodata -j .data -j .bss
    29 
    30 AR = $(CROSS_COMPILE)ar
    31 ARFLAGS = cr
    32 
    33 DUMP = $(CROSS_COMPILE)objdump
    34 DUMPFLAG = --disassemble --syms --all-header
    35 
    36 SIZE = $(CROSS_COMPILE)size
    37 
    38 # Static library files
    39 OBJS_LIB +=
    40 
    41 # User should list all object files
    42 OBJS += $(patsubst %.S, %.o, $(wildcard *.S))
    43 OBJS += $(patsubst %.c, %.o, $(wildcard *.c))
    44 
    45 # Make
    46 .PHONY: all clean debug
    47 all: $(TARGET).elf $(TARGET).bin $(TARGET).asm $(TARGET).mif
    48     $(SIZE) $(TARGET).elf
    49 
    50 %.o: %.S
    51     $(AS) $(ASFLAGS) $^ -o $@
    52 
    53 %.o: %.c
    54     $(CC) $(CFLAGS) $^ -o $@
    55 
    56 $(TARGET).elf: $(OBJS)
    57     $(LD) $(LDFLAGS) $(OBJS_LIB) -o $@ $^
    58 
    59 $(TARGET).asm: $(TARGET).elf
    60     $(DUMP) $(DUMPFLAG) $(TARGET).elf > $(TARGET).asm
    61 
    62 $(TARGET).bin: $(TARGET).elf
    63     $(OBJCP) $(OBJCPFLAGS) $< $@
    64 
    65 $(TARGET).mif: $(TARGET).bin
    66     ./bin2fpga/bin2fpga 4096 $<
    67 
    68 clean:
    69     rm -rf *.o *.asm *.elf *.bin *.mif *.map *.coe data.txt
    70 
    71 debug:
    72     $(CROSS_COMPILE)gdb $(TARGET).elf -x gdbinit.txt
     1 /* Linker script for OpenRISC */
     2 
     3 OUTPUT_FORMAT("elf32-or1k")
     4 OUTPUT_ARCH(or1k)
     5 ENTRY(_reset)
     6 
     7 MEMORY
     8 {
     9     RAM (rwx) : ORIGIN = 0x0, LENGTH = 0x4000
    10     DRAM (rwx) : ORIGIN = 0x10000000, LENGTH = 0x10000000
    11 }
    12 
    13 
    14 SECTIONS
    15 {
    16     .text :
    17     {
    18         _stext = .;
    19         stext = .;
    20         *(.text)
    21         *(.text.*)
    22         . = ALIGN(4);
    23         _etext = .;
    24         etext = .;
    25     } > RAM
    26 
    27     .rodata :
    28     {
    29         _sdata = .;
    30         sdata = .;
    31         . = ALIGN(4);
    32         *(.rodata)
    33         *(.rodata.*)
    34     } > RAM
    35 
    36     .data :
    37     {
    38         *(.sdata)
    39         *(.data)
    40         *(.rwdata)
    41         *(.got.plt) *(.got)
    42         *(.shdata)
    43         *(.data.* .gnu.linkonce.d.*)
    44         . = ALIGN (4);
    45         _edata  =  .;
    46         edata  =  .;
    47     } > RAM
    48 
    49     .bss :
    50     {
    51         . = ALIGN(4);
    52         __bss_start = .;
    53         *(.sbss .sbss.*)
    54         *(.bss .bss.*)
    55         *(COMMON)
    56         . = ALIGN (4);
    57         __bss_end = .;
    58     } > RAM
    59 }
    60 
    61 /* Stack base address */
    62 __stack_pointer = 0x4000;
     
  • 相关阅读:
    Vscode开发工具中的Simple React Snippets插件,对React开发有哪些便捷
    函数防抖和节流
    4.怎么样用CSS实现一个loading效果
    3.常见清除浮动的
    2.css处理各种溢出
    1. css画三角形
    2.javascript中call()和apply()区别
    1.js的继承的实现方法
    css、js小技巧
    JS函数声明和函数表达式的关系
  • 原文地址:https://www.cnblogs.com/lyuyangly/p/5197808.html
Copyright © 2020-2023  润新知