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删除,编译,无错后下载,可是就是没输出。。。。。。。。。
Print 的函数呢? 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;
} debug看下是不是fault了,如果是的话修改下堆栈大小。 https://www.stmcu.org.cn/module/forum/thread-609484-1-1.html
楼主可看看这篇,在412也测试成功的 用“调试单步走+看变量和内存”可解决。
按照教程一步一步检查下。。。
编译好的BIN文件。。。需要的可以测试下。。
风子 发表于 2016-12-14 11:44
https://www.stmcu.org.cn/module/forum/thread-609484-1-1.html
楼主可看看这篇,在412也测试成功的 ...
已经崩溃了。。。。 Paderboy 发表于 2016-12-14 13:26
按照教程一步一步检查下。。。
这个bin给我也没用啊,我只是想跳出坑{:3_47:} 数码小叶 发表于 2016-12-14 14:09
这个bin给我也没用啊,我只是想跳出坑
那你把工程发上来,大伙帮你。看看