建网站怎么弄,深圳做网站优化费用,西海岸建设局网站,便利的网站建设公司coremark的官方仓库#xff1a;https://github.com/eembc/coremark 官方收录了很多单片机的跑分情况#xff1a;https://www.eembc.org/coremark/scores.php 这个是我建立的一个仓库#xff0c;用来收集自己用到的一些单片机的跑分情况#xff1a;https://gitee.com/wild_c… coremark的官方仓库https://github.com/eembc/coremark 官方收录了很多单片机的跑分情况https://www.eembc.org/coremark/scores.php 这个是我建立的一个仓库用来收集自己用到的一些单片机的跑分情况https://gitee.com/wild_coder/coremark_test欢迎共建(现在还没两个后面遇到新的会慢慢添加。。。) 文件添加代码下载好是这样的把如下部分的头文件和源文件添加到自己的工程 把自己的main()函数注释掉因为core_main.c中已经有一个了。然后打开core_portme.h搜索COMPILER_FLAGS根据自己的编译器优化选项填上去不同优化等级分数差距会非常大 在core_portme.h最上面定义这个常量 ITERATIONS 这个常量是运算的次数不是固定的因为这个跑分需要算法运行10秒以上才有效跑的快的就大点慢的就小点填错的话后面打印也会提示你运行时间不足再调整就好了 #define ITERATIONS 1000修改下main函数参数类型 在core_portme.c中添加自己的系统初始化时钟和打印初始化这些我这里初始化了时钟和打印接口然后再coremark.h文件中搜索HAS_PRINTF按需映射下ee_printf 在core_portme.c中适配自己的定时器EE_TICKS_PER_SEC1000即使用1ms的定时器中断 主要是四个函数start_time(),stop_time(),get_time(),和自己平台的一个定时器函数如Tim1_IRQHandler()
uint32_t gTick 0;
void
start_time(void)
{
// GETMYTIME(start_time_val);gTick 0;Bt_M0_Run(TIM1);
}void
stop_time(void)
{
// GETMYTIME(stop_time_val);Bt_M0_Stop(TIM1);
}CORE_TICKS
get_time(void)
{
// CORE_TICKS elapsed
// (CORE_TICKS)(MYTIMEDIFF(stop_time_val, start_time_val));return (CORE_TICKS)gTick;
}//在对应中断文件中修改
extern uint32_t gTick;
void Tim1_IRQHandler(void) //1ms
{static uint8_t cnt_5ms_flag 0;static uint16_t cnt_1s_flag 0;if(TRUE Bt_GetIntFlag(TIM1, BtUevIrq)){gTick;Bt_ClearIntFlag(TIM1,BtUevIrq); //Timer3模式0 中断标志清除}
}没了跑个分试试这个是华大的hc32l136
其他注意 ITERATIONS 值太大而运行速度太慢的时候是要等很久的此时是没有任何输出的所以可以先设小点如果报错再加大对堆栈有很少量的需求简单测试的最小测试通过的配置 在main函数的最后可以加一句方便的打印CoreMarks/MHz这里48是系统运行频率 如果出现时间相关参数没打印出来如下图先测试下浮点数打印正常比如打印个3.14试试很多平台的printf默认是不支持浮点数的需要想办法实现下这里贴个RTTview的浮点实现备忘原文链接https://blog.csdn.net/jiayujiang/article/details/119216304。。 case f:case F:{float fv;fv (float)va_arg(*pParamList, double); //取出输入的浮点数值v (int)fv; //取整数部分_PrintInt(BufferDesc, v, 10u, NumDigits, FieldWidth, FormatFlags); //显示整数支持负数_StoreChar(BufferDesc, .); //显示小数点v abs((int)(fv * 100)); v v % 100;_PrintInt(BufferDesc, v, 10u, 2, FieldWidth, FormatFlags); //显示小数点后两位}break;