donatello1996 发表于 2017-5-4 22:26:26

【NUCLEO-L496ZG评测】板载虚拟串口&CoreMark跑分

    Nucleo-L496开发板的板载虚拟串口与以往的Nucleo板子所用串口不一样,以往的板子都是用串口3,而Nucleo-L496却是用LPUART1,即低功耗串口1,反正这波我确实被官方套路到了,都是看过电路图才知道。板子的虚拟串口-低功耗串口1对应引脚为PG7和PG8,但是CubeMX所对应的LPUART1却是PC0和PC1,此处要留意,要将串口引脚改为PG7和PG8。

   另外,社区里之前发过串口评测的人们都是通过CubeMX直接生成的代码,但是CubeMX生成的代码有一个非常不友好的风格,就是会将外设的初始化函数与外设的时钟使能函数分开。由于我并不是直接使用CubeMX生成的代码(是间接使用,即先生成,再移植到自己的例程上),在MX_GPIO_Init()处的一行HAL_PWREx_EnableVddIO2()把我坑的不轻,这句话是低功耗串口才需要的,因此在以往的Nucleo-L476例程中并不会出现,如果没有这句话,L496的低功耗串口1就无法正常工作,相信刚使用HAL库的新手都会深有体会,而这点,在之前发布了L496虚拟串口打印或者Coremark评测的帖子中竟然完全没有提及!我相信有人看过我的帖子之后,能够少走弯路,更快完成开发。
          这里顺便说说使用MicroLIB来让printf()函数充当串口输出的方法。首先要在工程配置窗口勾选MicroLIB,这是必须的,

其次要重定义fputc()函数,里面的HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,0xFFFF);函数是每个基于ARM Cortex M内核单片机的串口输出单个字符的函数,

此方法适用于Keil支持的所有ARM Cortex M单片机,包括LPC、GD32、K64等等。这里顺便放上LPC824使用fputc()函数的方法:

    CoreMark跑分是评测MCU或者MPU性能指标的重要方法,已经在STM32F7和LPC546XX系列中广泛使用,CoreMark软件由一组头文件和源文件组成,其本质是使用算法检测处理器的响应时间来评测处理器性能,类似于桌面CPU的Fritz Chess Benchmark评测。参考@斜阳__的帖子,完成CoreMark跑分。
    分数结果出来后,我的内心毫无波动甚至还想笑。

    上传附件,让你们也玩玩CoreMark。


asmhai 发表于 2017-5-5 06:11:38

早上好!签到来了。

zero99 发表于 2017-5-5 08:34:49

支持一下

asmhai 发表于 2017-5-8 10:57:35

支持,签到签到。

feixiang20 发表于 2017-5-28 22:22:24

谢谢分享
页: [1]
查看完整版本: 【NUCLEO-L496ZG评测】板载虚拟串口&CoreMark跑分