首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用“riscv32 32/64-未知-精灵-gcc”时,如何设置数据存储地址?

在使用“riscv32 32/64-未知-精灵-gcc”时,如何设置数据存储地址?
EN

Stack Overflow用户
提问于 2021-11-01 02:13:18
回答 1查看 287关注 0票数 1

我设计了RISCV32IM处理器,并使用“riscv32 32/64-未知精灵-gcc”来生成测试代码。指令内存设置已用以下选项(-Ttext选项)解决,但数据内存设置尚未解决。

代码语言:javascript
复制
riscv64-unknown-elf-gcc -v -march=rv32im -mabi=ilp32 -nostartfiles -x c  -Ttext 40000000 -o main.o main.c

我能知道我是否可以设置我想要的数据内存地址吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-01 04:04:13

看起来您需要链接linker script,类似于:

代码语言:javascript
复制
OUTPUT_ARCH( "riscv" )
ENTRY(_start)

SECTIONS
{
  . = 0x40000000;
  .text.init : { *(.text.init) }
  . = ALIGN(0x1000);
  .text : { *(.text) }
  . = ALIGN(0x1000);
  .data : { *(.data) }
  .bss : { *(.bss) }
  _end = .;
}

  • _start是一个开始符号,0x40000000是一个内存开始地址,后面跟着由0x1000.
  • text对齐的节名-- itself
  • data是一个静态初始化的variables
  • bss,是一个静态分配的变量
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69792036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档