查看: 219|回复: 1

[教程] 野火MINIRT1052简测及coremark跑分测试

[复制链接]

主题

好友

5001

积分

状元

  • TA的每日心情
    擦汗
    6 小时前
  • 签到天数: 493 天

    连续签到: 2 天

    [LV.9]以坛为家II

    发表于 2019-2-14 10:41:03 |显示全部楼层
    本帖最后由 df_flying 于 2019-2-14 10:39 编辑

    一、MINI RT1052简介
           I.MX RT系列是NXP推出的一款跨界处理芯片,其自身定位既非传统的应用处理器也非传统的微控制器。目前该系列有RT1060,RT1050,RT1020,RT1015以及基于最近比较火的新架构Cortex-M33的RT600系列。
        除去RT600这款最新架构的先不说,相比较cortex M7架构的较早的几款MCU,如ST的STM32F/H7系列(216MHz/400MHz),NXP的Kinetis® KV5x系列(240MHz),以及Microchip的SAM V7x系列(300MHz),RT系列给人的第一印象就是速度快,其主频最高达到了600MHz。其次就是价格便宜,其中RT1050系列算其中的性价比最高的一款了,当然这里得除去因为其封装为BGA的原因带来的PCB制板及工艺的附加成本外了。当然还有LQFP封装的RT10XX系列可供大家选择。
        野火作为NXP的合作伙伴,也在第一时间推出了基于I.MXRT1052的核心板,不得不说这款核心板是目前为止配置较为凶悍的一款了,存储上集成了32MB SDRAM, 128MB NANDFLASH、 32MB QSPI FLASH,2Kb EEPROM,这样的存储空间足够评估数据储存,或者挂载简单的文件系统了
    001.png
    002.png
            本次有幸以1元价格试用到其MINI的开发板,个人觉得MINI的板子更适合项目需求评测来使用,当然进一步学习的话,野火也有功能更加强大的Pro版本的开发板供大家学习。MINI板将所有的IO都使用了2.54mm排针引出,同时扩展了USB和网络等高级接口供大家方便评估。拿到板子的开关有点小问题,不影响使用的情况下就直接使用电阻跳接了。
    003.png
    二、RT1052 coremark跑分测试:
           野火的资料使用起来还是比较方便的,工程可以直接使用进行测试,承接51等简单MCU的学习,也保留了对寄存器操作的例子,当然复杂的接口不太建议使用寄存器操作,毕竟NXP也推出了很多的函数库,并也在实时更新其中的bug。
        这里直接使用野火提供的参考代码中的点LED灯的程序,并使用sysTick作为中断计时,使用的log打印是官方自带的打印函数,不过在开启PRINTF_FLOAT_ENABLE后,
    004.png
        发现打印float格式的数据还是有点问题,打印出全是0.0000,其中的原因还没分析,这里先对coremark中浮点型的打印使用了*1000打印lu格式处理。log使用/1000提示
    005.png
    Total time (secs),Iterations/Sec,CoreMark 1.0: 三项使用了*1000后的值,
    测试的结果如下:
    006.png
        使用的芯片是MIMXRT1052CVL5B,其最大核心频率是528MHz,官方给的是600MHz下的3020 coremark跑分参考,跟频率简单计算下528MHz下约是2657.6,相比2442.797还有进一步优化的空间。测试代码见附件。
        *简单说下移植的步骤:
    1、由于core_main.c中有main函数,所以将原程序中main函数另命名,并保留其中的系统初始化,放到测试程序的init中,位于core_portme.cportable_init函数中。
        void portable_init(core_portable *p,int *argc, char *argv[])
                    {
                        extern void main_init(void)
                      main_init();
                      ... ....
    2、定义#define ITERATIONS 30000 这个数字要足够大,否则会出现ERROR! Must execute for at least 10 secs for a valid result! error log
    3、提供测试的时间,即core_portme.c中的start_time(),stop_time(),计数值,这里直接使用了sysTick中断提供的计数值作为时间基数,同时需要修改时间转换函数time_in_secs()
    4、重定义一些宏定义,这是打印一些使用的测试环境信息,位于core_portme.h
    5、提供log的打印入口,这里直接将ee_printf宏定义改为原先的打印入口,即:
    #defineee_printf  DbgConsole_Printf

    本次简测先到这,进一步学习在后期整理并分享



    RT1052_T_coremark.zip

    1.63 MB, 下载次数: 0

    测试源码

    coremark_v1.0.zip

    699.77 KB, 下载次数: 0

    coremark源码

    MINIRT1052简测及coremark测试.pdf

    934.76 KB, 下载次数: 1

    pdf文档

    已有 1 人评分铜板 收起 理由
    satoll + 40 感谢分享

    总评分: 铜板 + 40   查看全部评分

    回复

    使用道具 举报

    主题

    好友

    6040

    积分

    管理员

    该用户从未签到

    发表于 2019-2-14 11:26:01 |显示全部楼层
    感谢分享
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /5 下一条

    手机版|爱板网

    GMT+8, 2019-3-20 18:36 , Processed in 0.095546 second(s), 15 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-5   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001056号

    Powered by Discuz!

    返回顶部