berlin_zju 2021-01-13 09:07 采纳率: 0%
浏览 28

尝试在C语言中调用汇编编写的函数出错

在C语言中main函数之外定义extern int lwhw(int add1,int add2);

汇编文件如下

.file Add.S
.section .text
.globl Add
.type Add,@function 
Add:
nop
nop
nop
nop
nop
li a0, 255
li a0, 255
li a0, 255
li a0, 255
li a0, 255

lw a1,a0
lw a1,a0 
lw a1,a0 
lw a1,a0 
lw a1,a0 
lw a1,a0                                         
ret    

在project中可以看到该文件在src目录下。

编译时日志如下(报错):
riscv64-unknown-elf-gcc -o  Obj/gpio_toggle.elf  -nostartfiles -Wl,--gc-sections -lm  -Wl,-zmax-page-size=1024 -Wl,-Map="yoc.map"  -Wl,-Map=.//Lst/gpio_toggle.map  @gpio_toggle.txt  -nostartfiles  -Wl,--gc-sections  -T../../../../boards/alkaid_evb/v1.0/gcc_flash.ld  -mabi=ilp32 -march=rv32imacxthead  -L./Obj  -L../../../../components/mm/v1.0/lib -L../../../../components/csi/v1.0/lib -L../../../../components/console/v1.0/lib -L../../../../components/minilibc/v1.0/lib -L../../../../boards/alkaid_evb/v1.0/lib -L../../../../components/chips/chip_alkaid/v1.0/lib   -Wl,--whole-archive -lmm -lcsi -lconsole -lminilibc -lalkaid_evb -lchip_alkaid  -Wl,--no-whole-archive
d:/app/c-sky/csky/mingw/riscv64-unknown-elf-toolchain/bin/../lib/gcc/riscv64-unknown-elf/8.1.0/../../../../riscv64-unknown-elf/bin/ld.exe:Obj/chip_config.o: file format not recognized; treating as linker script
d:/app/c-sky/csky/mingw/riscv64-unknown-elf-toolchain/bin/../lib/gcc/riscv64-unknown-elf/8.1.0/../../../../riscv64-unknown-elf/bin/ld.exe:Obj/chip_config.o:1: syntax error
collect2.exe: error: ld returned 1 exit status
make[1]: *** [Obj/gpio_toggle] Error 1
make: *** [All] Error 2
gpio_toggle.mk:86: recipe for target 'Obj/gpio_toggle' failed
make[1]: Leaving directory 'D:/RISC-V/alkaid_evb_v2.3.0_cdk_2020-08-24-19_44_20/alkaid_evb_v2.3.0_cdk/projects/drivers/gpio/gpio_toggle'
Makefile:4: recipe for target 'All' failed
====1 errors, 0 warnings, total time : 627ms====
 

  • 写回答

2条回答 默认 最新

  • zqbnqsdsmd 2021-01-13 09:54
    关注

    C语言是一种高级语言,而汇编语言就比较低级了,但是C语言运行速度这边还是比不上汇编的,希望你了解

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#c语言#的问题,请各位专家解答!
  • ¥15 这个如何解决详细步骤
  • ¥15 在微信h5支付申请中,别人给钱就能用我的软件,这个的所属行业是啥?
  • ¥30 靶向捕获探针设计软件包
  • ¥15 别人给钱就能用我的软件,这个的经营场景是啥?
  • ¥15 react-diff-viewer组件,如何解决数据量过大卡顿问题
  • ¥20 遥感植被物候指数空间分布图制作
  • ¥15 安装了xlrd库但是import不了…
  • ¥20 Github上传代码没有contribution和activity记录
  • ¥20 SNETCracker