天嵌 ARM开发社区

 找回密码
 注册
查看: 4437|回复: 11

TQ210 交叉编译工具链

[复制链接]
kshaojun 发表于 2012-12-6 13:31:07 | 显示全部楼层 |阅读模式
本帖最后由 kshaojun 于 2012-12-6 13:51 编辑

天嵌大虾:
       我在测试TQ210运行速度时,发现貌似你们的交叉编译工具链有些问题,我写了一段测试代码,如下:
#include <stdio.h>
int main()
{
    volatile int i;
    volatile int j;
    volatile int k;
    volatile int f;
    i=10;
    j=100;
    k=1000;
    f=1000;
    printf("Start to test in RAM!\n");
    while(i--)
    {
        j=100;
        while(j--)
        {
            k=1000;
            while(k--)
            {
                f=1000;
                while(f--);
            }
        }
    }
    printf("End of testing in RAM!\n");
    return 0;
}
我用了两个编译工具:一个是用你们提供的A8工具链,另一个是我自己以前在ARM11生成的工具链,用这两个工具链生成可执行文件;用time a.out进行测试。
两种测试:
1.tq210平台上运行两个工具链生成的可执行文件,A8工具链生成的文件运行时间较长;
2.在tq210平台和我的ARM11平台上测试,tq210平台的运行时间长。
上述测试时tq210主频设在1000MHz,ARM11平台设在667MHz。
理论上ARM11工具链生成的可执行文件运行时间要长些,但结果却是相反的。请帮忙解释下!谢谢!

TQ-lkp 发表于 2012-12-6 14:22:54 | 显示全部楼层
你这样测试很不准确,建议使用获取程序开始时间和结束时间,然后相减的方法来测试
 楼主| kshaojun 发表于 2012-12-6 17:28:07 | 显示全部楼层
这个程序我在ARM9和ARM11上测试是可以通过的,ARM9明显比ARM11慢很多,而且再怎么不准确A8的运行时间也不能比ARM11慢。或许你们能提供一个测试程序以及完整的测试方法!
亚瑟王 发表于 2012-12-6 18:03:19 | 显示全部楼层
kshaojun 发表于 2012-12-6 17:28
这个程序我在ARM9和ARM11上测试是可以通过的,ARM9明显比ARM11慢很多,而且再怎么不准确A8的运行时间也不能 ...

在TQ210配套光盘中的apps压缩包中的apps_TQ210\vfp_test文件就是我们用来检测编译器的。我们分别用过6410的或2440的和210的编译器,然后编译出来的二进制文件和反编译的汇编上可以体现出来两者的差异(210的编译器直接使用了对应的汇编指令;6410或2440的就是用很多条汇编来实现的)。
你说的这种方式没有测试。
 楼主| kshaojun 发表于 2012-12-7 09:51:35 | 显示全部楼层
本帖最后由 kshaojun 于 2012-12-7 11:52 编辑
亚瑟王 发表于 2012-12-6 18:03
在TQ210配套光盘中的apps压缩包中的apps_TQ210\vfp_test文件就是我们用来检测编译器的。我们分别用过6410 ...

是的,反汇编可以看出指令使用的多少,但是我希望你们能提供更有说服力的方法进行验证。毕竟我们是工程的,必须有实质性的性能提升我们才会继续使用!比如用nbench进行测试,我也刚下载了这个测试工具,你们也抽时间帮忙试试,给出一个有说服力的测试方法!谢谢!
或许并不是编译器的问题,是uboot当中初始化出了问题?
 楼主| kshaojun 发表于 2012-12-7 11:52:52 | 显示全部楼层
或许并不是编译器的问题,是uboot当中初始化出了问题?
亚瑟王 发表于 2012-12-7 14:12:44 | 显示全部楼层
kshaojun 发表于 2012-12-7 11:52
或许并不是编译器的问题,是uboot当中初始化出了问题?

u-boot初始化出了什么问题?
 楼主| kshaojun 发表于 2012-12-7 15:53:44 | 显示全部楼层
本帖最后由 kshaojun 于 2012-12-7 16:07 编辑
亚瑟王 发表于 2012-12-7 14:12
u-boot初始化出了什么问题?

我以前做ARM9的uboot引导内核时(bootm),对协处理器、I/D cache的初始化不正确,虽然内核打印消息中时钟速度还是正确的,但cpu的运行速度就是上不去。会不会是你们uboot中初始化不完全???
我觉得问题出在编译器上的概率较大,我甚至用ARM11的工具链生成的可执行文件运行都比较快!
亚瑟王 发表于 2012-12-7 19:43:41 | 显示全部楼层
kshaojun 发表于 2012-12-7 15:53
我以前做ARM9的uboot引导内核时(bootm),对协处理器、I/D cache的初始化不正确,虽然内核打印消息中时钟 ...

你可以尝试用android附带的编译器编译了试试。编译器路径在android源码下的prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin
 楼主| kshaojun 发表于 2012-12-10 10:15:58 | 显示全部楼层
亚瑟王 发表于 2012-12-7 19:43
你可以尝试用android附带的编译器编译了试试。编译器路径在android源码下的prebuilt/linux-x86/toolchain ...

我看了下,那个编译器是支持arm5te架构的,不是ARMV7
亚瑟王 发表于 2012-12-11 20:25:39 | 显示全部楼层
kshaojun 发表于 2012-12-10 10:15
我看了下,那个编译器是支持arm5te架构的,不是ARMV7

对于arm来讲,编译器都是向下兼容的,arm版本低的肯定可以兼容高的,高的未必能够兼容低的。
 楼主| kshaojun 发表于 2012-12-13 11:29:31 | 显示全部楼层
我想知道的是你们能不能提供一个A8与ARM11性能的测试,并且能证明你们开发板性能确实比ARM11强!而不是讨论这些没实际意义的话题!!!!!!!!!!!!如果无法提供,只能说明你们技术还不够强,只会照抄三星原厂资料,并且还把三星原厂的部分资料也屏蔽了,不给!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-8 05:34 , Processed in 1.062500 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表