用于开源处理器OpenRISC精简版AltOR32的软件开发,使用的工具链为or1k-elf-gcc,Makefile和连接脚本为:
 #***********************************************************************************************
# File : Makefile
# Author : Lyu Yang
# Date :
# Description : Makefile for OpenRISC
#*********************************************************************************************** TARGET = main CROSS_COMPILE = or1k-elf- INCLUDE_DIRS = -I ./
LIBRARY_DIRS = -L ./ CC = $(CROSS_COMPILE)gcc
CFLAGS = $(INCLUDE_DIRS) -mno-delay -c -msoft-div -msoft-float -msoft-mul -mno-ror -mno-cmov -mno-sext -Os CXX = $(CROSS_COMPILE)g++
CXXFLAGS = $(INCLUDE_DIRS) -c -mno-delay -msoft-float -msoft-mul -mno-ror -mno-cmov -mno-sext -Os AS = $(CROSS_COMPILE)as
ASFLAGS = -c LD = $(CROSS_COMPILE)ld
LDFLAGS = $(LIBRARY_DIRS) -T./openrisc.lds -Map $(TARGET).map -nostartfiles -nodefaultlibs -nostdlib OBJCP = $(CROSS_COMPILE)objcopy
OBJCPFLAGS = -O binary -j .text -j .rodata -j .data -j .bss AR = $(CROSS_COMPILE)ar
ARFLAGS = cr DUMP = $(CROSS_COMPILE)objdump
DUMPFLAG = --disassemble --syms --all-header SIZE = $(CROSS_COMPILE)size # Static library files
OBJS_LIB += # User should list all object files
OBJS += $(patsubst %.S, %.o, $(wildcard *.S))
OBJS += $(patsubst %.c, %.o, $(wildcard *.c)) # Make
.PHONY: all clean debug
all: $(TARGET).elf $(TARGET).bin $(TARGET).asm $(TARGET).mif
$(SIZE) $(TARGET).elf %.o: %.S
$(AS) $(ASFLAGS) $^ -o $@ %.o: %.c
$(CC) $(CFLAGS) $^ -o $@ $(TARGET).elf: $(OBJS)
$(LD) $(LDFLAGS) $(OBJS_LIB) -o $@ $^ $(TARGET).asm: $(TARGET).elf
$(DUMP) $(DUMPFLAG) $(TARGET).elf > $(TARGET).asm $(TARGET).bin: $(TARGET).elf
$(OBJCP) $(OBJCPFLAGS) $< $@ $(TARGET).mif: $(TARGET).bin
./bin2fpga/bin2fpga $< clean:
rm -rf *.o *.asm *.elf *.bin *.mif *.map *.coe data.txt debug:
$(CROSS_COMPILE)gdb $(TARGET).elf -x gdbinit.txt
 /* Linker script for OpenRISC */

 OUTPUT_FORMAT("elf32-or1k")
OUTPUT_ARCH(or1k)
ENTRY(_reset) MEMORY
{
RAM (rwx) : ORIGIN = 0x0, LENGTH = 0x4000
DRAM (rwx) : ORIGIN = 0x10000000, LENGTH = 0x10000000
} SECTIONS
{
.text :
{
_stext = .;
stext = .;
*(.text)
*(.text.*)
. = ALIGN();
_etext = .;
etext = .;
} > RAM .rodata :
{
_sdata = .;
sdata = .;
. = ALIGN();
*(.rodata)
*(.rodata.*)
} > RAM .data :
{
*(.sdata)
*(.data)
*(.rwdata)
*(.got.plt) *(.got)
*(.shdata)
*(.data.* .gnu.linkonce.d.*)
. = ALIGN ();
_edata = .;
edata = .;
} > RAM .bss :
{
. = ALIGN();
__bss_start = .;
*(.sbss .sbss.*)
*(.bss .bss.*)
*(COMMON)
. = ALIGN ();
__bss_end = .;
} > RAM
} /* Stack base address */
__stack_pointer = 0x4000;
 

最新文章

  1. Laravel学习--关于Relation的坑
  2. aix磁盘分区挂载问题
  3. [总结] I/O输入,输出
  4. Hive几种数据导出方式
  5. C#项目实例中读取并修改App.config文件
  6. 基本套接字编程(5) -- epoll篇
  7. mount分区为读写属性
  8. Java Day 09
  9. 博客中最快捷的公式显示方式:Mathjax + Lyx
  10. Ubuntu中wine安装的程序如何卸载
  11. shell的进度条【转】
  12. Tools:Android studio 使用
  13. Django-website 程序案例系列-10 cookie 和 session的应用
  14. stm32与HC-SR04超声波传感器测距
  15. 谈一谈Vector类
  16. 在ubuntu bionic下对基于qemu的arm64进行linux内核5.0.1版本的编译和运行
  17. The Closest M Points
  18. Django网站搭建(相关命令-Win10环境)
  19. Windows下运行Hadoop
  20. Rsa2加密报错java.security.spec.InvalidKeySpecException的解决办法

热门文章

  1. Linux网络编程:一个简单的正向代理服务器的实现
  2. AC日记——「SCOI2016」美味 LiBreOJ 2016
  3. 转:攻击JavaWeb应用[7]-Server篇[1]
  4. HDU3466 Proud Merchants [背包]
  5. 图论&amp;双连通分量&amp;强联通分量&amp;2-SAT
  6. poj 2773欧几里德
  7. ES5 方法学习
  8. BZOJ 2527 [Poi2011]Meteors(整体二分)
  9. 【枚举】【SPFA】Urozero Autumn Training Camp 2016 Day 5: NWERC-2016 Problem I. Iron and Coal
  10. 【推导】Codeforces Round #424 (Div. 1, rated, based on VK Cup Finals) A. Office Keys