如何把C语言移植到ARM中

如何把C语言移植到ARM中,第1张

你需要一个编译过的二进制的C Lib, 网上有很多开源的, 编译器一般选用GCC. 这样以后你的C函数可以直接调用C Lib的二进制代码. 制作C Lib注意是否支持多线程多核, 是否支持调试.

强烈建议初学者使用Keil工具。

1,无论是Keil工具还是ADS工具,都有一段入口汇编代码,一般叫start.s。这取决于你这个程序的Project设置,自己去找找。

2,你一定要找到这个入口汇编代码的文件,然后把你的汇编函数添加到末尾。

3,入口汇编代码中要找到跳转到C程序入口的那条跳转语句。C程序的入口调用一般在ADS里是: B __main 这样的一句汇编。把这句改成B callsum5。

首先你得搞清楚s32 function(u32 VirtualAddr)编译后叫什么。一般来说可能会叫_function。

传递参数很简单,如果ax里放的就是参数,那么push ax,然后再调用就可以。

返回值如果我没有记错的话应该在AX里。如果返回值太长,就会放到堆栈里。

你想搞清楚如果跨语言编程,最好彻底明白C语言的机制。也就是写一段函数调用程序比如下面的

main()

{ int i;}

fu(int i)

{in j}

然后编译成汇编语言,好好研究一下。或者再复杂一点。请参考http://zhidao.baidu.com/question/348586073.html。

有什么问题再向我提问


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/8029178.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存