armcc编译器使用
‘壹’ linux模块编译时,默认的编译器是什么怎么有时候指定了CC=arm-linux- 但是command里面没有用到CC
默认的编译器是gcc。
在linux 里 gcc 便是cc,两者是没区别的,gcc前面的g是代表GNU(至于GNU的意思,你可以查网络之类,关于linux的历史了)的意思。
假如如没有cc,你查下gcc有没有。假如没有,说明你装的是交叉编译工具arm-linux-gcc。
CC=arm-linux- 应该是 CC=arm-linux-gcc。
arm-linux-gcc 应该是用来编译嵌入式的。
‘贰’ 有关armcc编译器的问题
如在如下子目录中:d:\new\01
可用下述命令:armcc d:\new\01\filename.c
[格式]有多长写多长,后边加个:\<文件名>
‘叁’ arm 汇编调用 C 函数问题
不同的编译器对C 函数的处理不同,如armcc和gcc就有很多不同,从你的代码来看,应该使用的是armcc编译器;
应注意到代码中涉及两次返回:函数返回和中断返回;
进入中断后,lr寄存器保存的是中断函数的返回地址,因此中断返回时出栈时将该返回地址赋给PC即可,这一点比较好理解;
但函数返回的问题比较复杂:
1.为什么不使用BL来调用C函数?
因为bl 指令跳转范围有限(好像4M左右吧),但bl指令可以将返回地址保存在lr中,当然,如果你的跳转范围不大,也可使用BL,则不需要ldr lr, =int_return 。
;而“ldr pc, =EINT_Handle”跳转范围为4G,但不会保存返回地址。
2. C函数使用 ldr pc, lr来实现返回,所以lr应预先保存好返回地址,即ldr lr, =int_return
‘肆’ armcc hello.c -c -o hello.o是什么意思
armcc是ARM C编译器
-c:表示只进行编译不链接文件;
-o<file>:指定编译器最终生成的输出文件名。
详细见:http://blog.sina.com.cn/s/blog_419066f501008dqz.html
‘伍’ ARMCC和ARMCLANG两代编译器有什么区别
armcc,armclang都是arm的编译器,armcc支持到Armv7架构,armclang可以支持Armv6,Armv7, Armv8以及今后Arm的新处理器。 如果是原来老项目,可以继续使用armcc,但对于新项目或新的Arm core,建议armclang。
‘陆’ armcc vs gcc,及llvm目前的使用情况是什么样的
armcc 在代码的体积上相比与开源gcc编译器更好,而且作为商业产品,能涉及到处理器的更多细节,所做出来的优化应该也更好,想比较而言,gcc就更加的保守了。llvm最近势头很猛,因为使用不同的licence,一些商业公司比较青睐,而且作为后发起的项目,在初始设计的时候就考虑到gcc现存的一些问题,更加模块化,有很多先天的优势吧。但是gcc也在一步步进化,毕竟在目前的开源界,它还是标配吧。
‘柒’ 求armcc 编译工具
armcc 在 keil 的 MDK 中,安装一个 MDK 就有了。
MDK 在 keil 官网有下载。
‘捌’ Arm编译器有什么用
Arm RVDS 4.1中的Arm编译器是唯一一个与Arm编译器联合开发的商用编译器,专门设计用于为 Arm 编译器架构程序并提供最优支持。该编译器的开发历经有20年左右,被公认为是业界标准 C 和 C++ 编译器,用于生成面向 Arm、Thumb、Thumb-2、VFP 和 NEON 指令集的应用程序。详情请到亿道电子咨询
‘玖’ 命令提示符中输入armcc干什么用
可以安装一个腾讯手机管家帮你手机加速减少内存占用率,最大化的释放更多的手机内存和微信存储空间,而且还能分类清理微信呢
‘拾’ 基于ARM 平台 下,对编译器GCC\ADS\ARMCC的理解。
不可以。ARM11与ARM9体系架构已经变了,它是ARMv6的处理器,而ARM9是基于ARMv4。
再者,同个程序,就是同是ARM9的S3C2440与S3C2410,你也不可能直接适用。