数码小叶 发表于 2016-12-14 11:18:57

NUCLEO-F412ZG移植Coremark失败,求解---(问题已解决)

本帖最后由 数码小叶 于 2016-12-15 10:58 编辑

本来想用NUCLEO-F412ZG移植Coremark跑分的,可是两天一直没成功,所以还是把过程发出来,希望有人能看出哪不正确,感觉思路已经陷入死胡同了,问题不解决一直卡着。。。。


开始用的串口一直没输出,于是今天才用的是板载的STLINK 虚拟串口。
在确认工程可以正常输出的情况下,



然后开始移植:

将需要的6个.c文件和.h文件复制到工程下,并添加进工程





然后开始编辑Core_portme.c 文件。
首先复制原main中的初始化函数到Core_portme.c 中





然后再把main中相关函数复制过来。




修改start_time函数如下
void start_time(void)
{
      Tick = 0;
SysTick_Config(SystemCoreClock/1000);
};

修改stop_time函数如下
void stop_time(void)
{
      SysTick->CTRL &=SysTick_Counter_Disable;
SysTick->VAL = SysTick_Counter_Clear;      
}



修改CORE_TICKS get_time函数如下
CORE_TICKS get_time(void)
{
      CORE_TICKS elapsed =(CORE_TICKS)Tick;
return elapsed;
}





修改stm32f4xx_it.h中的SysTick_Handler函数如下
void SysTick_Handler(void)
{
    extern __IO uint32_t Tick;
    Tick++;
}



再屏蔽相关宏定义





添加宏定义



设置迭代次数



然后把工程中的main删除,编译,无错后下载,可是就是没输出。。。。。。。。。






wolfgang2015 发表于 2016-12-14 11:30:34

Print 的函数呢?

数码小叶 发表于 2016-12-14 11:33:23

wolfgang2015 发表于 2016-12-14 11:30
Print 的函数呢?

#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */


PUTCHAR_PROTOTYPE
{

HAL_UART_Transmit(&UartHandle, (uint8_t *)&ch, 1, 0xFFFF);

return ch;
}

creep 发表于 2016-12-14 11:44:02

debug看下是不是fault了,如果是的话修改下堆栈大小。

风子 发表于 2016-12-14 11:44:15

https://www.stmcu.org.cn/module/forum/thread-609484-1-1.html
楼主可看看这篇,在412也测试成功的

moyanming2013 发表于 2016-12-14 12:03:46

用“调试单步走+看变量和内存”可解决。

Paderboy 发表于 2016-12-14 13:26:09


按照教程一步一步检查下。。。




编译好的BIN文件。。。需要的可以测试下。。

数码小叶 发表于 2016-12-14 14:08:46

风子 发表于 2016-12-14 11:44
https://www.stmcu.org.cn/module/forum/thread-609484-1-1.html
楼主可看看这篇,在412也测试成功的 ...

已经崩溃了。。。。

数码小叶 发表于 2016-12-14 14:09:39

Paderboy 发表于 2016-12-14 13:26
按照教程一步一步检查下。。。




这个bin给我也没用啊,我只是想跳出坑{:3_47:}

Paderboy 发表于 2016-12-14 14:38:20

数码小叶 发表于 2016-12-14 14:09
这个bin给我也没用啊,我只是想跳出坑

那你把工程发上来,大伙帮你。看看
页: [1] 2 3
查看完整版本: NUCLEO-F412ZG移植Coremark失败,求解---(问题已解决)