Ubuntu下LoongArch32交叉编译器的使用

安装和mips32编译器一样,详情查看另一篇博客(这篇博客最下面有篇参考博客,强烈建议看一下,里面有关于mips编译的教学,看完那篇参考博客再看这个比较轻松):

(26条消息) 在Ubuntu虚拟机中安装GNU工具链——傻瓜版(已更新完)_NoNamePlus的博客-CSDN博客

把待会交叉编译产生的所有文件都放到一个目录下,这样方便操作

交叉编译要在同一个目录下打开终端进行操作,否则很有可能因为找不到文件而报错 

下面代码可能在抄的时候有些抄错,如果运行不了的话,直接按照第五步用Makefile脚本一步到位

相关资源:

 链接:https://pan.baidu.com/s/16Eky_gMjh7SlOSRU4izexg 
提取码:bp5k 

1.生成.o文件

sudo /install/loongarch32-unknown-elf/bin/as -mabi=ilp32 /mnt/LoongArch/inst_rom.S -o inst_rom.o

/install/loongarch32-unknown-elf/bin是我虚拟机上交叉编译器可执行文件的目录,关键在于这个as才是交叉编译的功能

不同用户不一样的地方在于,loongarch32-unknown-elf前面的那个文件目录,我是在虚拟机上直接把交叉编译链的压缩包install解压到主目录的,所以是/install/,如果你是解压到/mnt/目录下,解写成/mnt/install/.... 其他的以此类推

我的交叉编译工具链的目录(左上角那个install)——图中这个页面只需要点击桌面那个文件夹管理,之后再点击左下角的加号就可以了

2.生成.om文件

sudo /install/loongarch32-unknown-elf/bin/ld -static -T ram.ld /mnt/LoongArch/inst_rom.o -o inst_rom.om

ram.ld是链接文件,开头给的那篇博客的最下面有篇参考博客,里面有一个ram.ld,或是我网盘打包好里面有一份ram.ld自取。

 3.生成.bin文件

sudo /install/loongarch32-unknown-elf/bin/objcopy --reverse-bytes=4 -O binary /mnt/LoongArch/inst_rom.om inst_rom.bin

--reverse-bytes=4表示机器指令中每四个字节反转一次,可以不加,加的话译码的结果是小端,加上的话译码的结果是大端

4.生成.data文件 

./Bin2Mem.exe -f inst_rom.bin -o inst_rom.data

inst_rom.data就是一个16进制的文件了,里面的机器码以16进制的形式表现,可以直接传入Vivado中仿真 

5. 用make all一键完成

把Makefile文件和.S文件放在同一个目录下(Makefile在我提供的压缩包里面有)

之后输入

make all

就可以一键生成1~4步中生成的所有文件了

我的交叉编译的文件都摆放在同一个目录(注意不是install,而是另外的新目录,我电脑上是mnt这个目录,该目录是我和宿主机的共享目录,这样方便我把文件拿出来到windows系统上用)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值