现象:我们在应用ARM进行开发过程中都会发现,ARM7 arm9的启动代码都是由汇编语言编写的,
在启动代码中初始化堆栈后, 才调用C语言编写的函数??
问题1:根据arm手册的ATPCS规则,C语言的参数传递,如果参数为int,同时个数少于4个,
四个参数分别是由(R0--R4)来传递的。 这个时候,C语言在编译过程,参数的编译不需要
堆栈,这个时候arm汇编应该可以调用C函数??
问题2:ARM启动代码中,最终会调用__main() 这个库函数来完成启动过程。其原因是__mian()
函数由ARM的库函数提供,同时__main() 用来完成库函数的初始化,最终跳转到用户的main()
函数, 这时候在__main()执行之前,我们是否可以调用一个用户定义,没有
调用库函数的C函数(没有传递参数)???
我个人的理解,问题1和问题2的情况下,都可以调用C函数,因为它已满足C语言的工作环境。
[ 本帖最后由 05210324kw 于 2011-6-12 11:16 编辑 ]