用于开源处理器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;
 

用于OpenRISC的Makefile示例的更多相关文章

  1. 用于RISC-V的Makefile示例

    # Initialize ASM For RISC-V .section .text.entry .option norvc .global _start .macro push_reg addi s ...

  2. makefile示例

    1. 生成.so动态库 示例一: SoVer = 10010110CfgVer = 10010110 BinName = fnights.soGameName = "\"fnigh ...

  3. gcc链接g++编译生成的静态库和动态库的makefile示例

    使用c++开发程序或者库时,将库提供给其他人使用. 然而使用者是使用c开发的程序,链接g++编译生成的库时,于链接gcc生成的库,有所不同. 首先是静态库,以链接g++编译生成的libmylib.a为 ...

  4. 简单makefile示例

    Makefile cmd: - g++ 相信在linux下编程的没有不知道makefile的,刚开始学习linux平台下的东西,了解了下makefile的制作,觉得有点东西可以记录下. 下面是一个极其 ...

  5. 【嵌入式开发】 嵌入式开发工具简介 (裸板调试示例 | 交叉工具链 | Makefile | 链接器脚本 | eclipse JLink 调试环境)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42239705  参考博客 : [嵌入式开发]嵌入式 开发环境 (远 ...

  6. makefile基础(GNU)

    makefile的核心 targets : prerequisites ; commands...   //不分行的情况 targets : prerequisites                 ...

  7. Linux驱动学习 —— 在/sys下面创建目录示例

    有时我们需要在/sys下面创建一些目录, 下面给出了一个示例. 在加载驱动模块后, 在/sys下面会创建一个名为sysfs_demo的目录,并在其中在创建几个文件和目录. [root@tiny4412 ...

  8. C/C++ makefile自动生成工具(comake2,autotools,linux),希望能为开源做点微薄的贡献!

      序     在linux下C或C++项目开发,Makefile是必备的力气,但是发现手写很麻烦. 在百度有个comake2工具,用于自动生成Makefile工具,而在外边本想找一个同类工具,但发现 ...

  9. Linux内核Makefile文件(翻译自内核手册)

    --译自Linux3.9.5 Kernel Makefiles(内核目录documention/kbuild/makefiles.txt) kbuild(kernel build) 内核编译器 Thi ...

随机推荐

  1. 机器学习方法:回归(三):最小角回归Least Angle Regression(LARS),forward stagewise selection

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 希望与志同道合的朋友一起交流,我刚刚设立了了一个技术交流QQ群:433250724,欢迎对算法.技术.应用感 ...

  2. WPF Binding 的顺序问题

    做了一个Win 8 Store APP,其中有一个List Box,从另外一个Page Navigate到这个Page之后,需要自动选中 List Box中的一项. 开始是这么写的 <ListB ...

  3. 创建 OpenStack云主机 (十五)

    创建过程 创建虚拟网络 创建m1.nano规格的主机(相等于定义虚拟机的硬件配置) 生成一个密钥对(openstack的原理是不使用密码连接,而是使用密钥对进行连接) 增加安全组规则(用iptable ...

  4. OpenStack 存储服务 Cinder介绍和控制节点部署 (十三)

    Cinder介绍 OpenStack块存储服务(cinder)为虚拟机添加持久的存储,块存储提供一个基础设施为了管理卷,以及和OpenStack计算服务交互,为实例提供卷.此服务也会激活管理卷的快照和 ...

  5. iwebshop 自动给css js链接加版本信息

    lib/core/tag_class.php case 'theme:': $path = $matches[4]; $exts = strtolower(substr($matches[4], st ...

  6. shell脚本学习(五)

    流程控制 先说几个注意的地方 1)注意你是在unix下编程,注意文件的编码如果你发现报错请用notepad++打开,编辑->文档格式转换->点unix,然后再上传运行即可 2)sh的流程控 ...

  7. HDU 5514.Frogs-欧拉函数 or 容斥原理

    Frogs Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submi ...

  8. VisualStudio 2013 快捷键

    有些快捷键不是默认的,需要插件支持,如Resharper,WebEssentials,VSCommands Ctrl单键系列 Ctrl+Q Quick Info Ctrl+W Extend Selec ...

  9. NOIP2018 提高组题解

    Day1 T1 据说是原题积木大赛,但是考场上蠢了,只会写数据结构,于是写了一个线段树\(+\)堆\(+\)贪心,先选出最小的,然后区间修改,然后把左右两端区间的最小值丢进堆里,不停从堆中去最小值更新 ...

  10. 初识C#设计模式

    利用设计模式可以使我们的代码更灵活,更容易扩展,更容易维护.各种面向对象的程序设计语言都提供了基本相同的机制:比如类.继承.派生.多态等等.但是又有各自的特色,C# 中的反射机制便是一个很重要的工具, ...