|
发表于 2017-12-19 10:57:19
|
显示全部楼层
a0a.1 32b0c
问题1:案例中USB传输数据时,为什么会出现卡顿现象?以及如何解决?
实战经验案例中的关键词:“如果只是单向通信,就一直都是正常的。 ”
根据这一特点可初步判断就是收发通道竞争造成,再根据原文中的检查步骤俄到以下的结果:
“由于此问题是发送与接收处于不同优先等级导致资源冲突所致,那么我们可以将发送也放到与USB接收中断相同的中断等级中去,例如可以利用USB的EOPF中断,在开启EOPF中断后,在此中断内发送数据,这样发送与接收中断就处于相同等级了,EOPF每1ms触发一次,速度完全可以。当然开启一个相同优先级的定时器来做发送数据也是可以,只不过定时器间隔得控制好。”
实此问题是出现在Cube库的低版本中,最新本的CubeF4 V1.16.0,CubeF2 V1.6.0版本中此问题得到了解决;
解决方法可以对比两个版本的相关源代码
问题2:案例中,常用的测量STM32L低功耗模式下的唤醒时间方法是什么?
使用探索板,找到对应工程项目的目录(“ STM32Lxxxxxx-Discovery\Examples\PWR ”),
目录下的PWR_STANDBY 和PWR_STOP这项目工程,通过这两个低功耗模式做一个说明测量唤醒时间的方法。
通过实战经验的两个示例可以看出,通常结合外部模式(外部中断模式External Interrupt Mode或外部事件模式External Event Mode)和__SEV()指令翻转GPIO口来测量低功耗模式下的唤醒时间测量。
由于外部事件模式不需要额外处理中断时间的特点,所以利用它,我们能够得到更精确的唤醒时间的测量,更适合用于唤醒后执行下一条命令的低功耗模式。
问题3:案例中提到,基于Gcc和Eclipse的集成开发环境有哪两种?并简要说明其优势
集成开发环境有SW4STM32和TrueSTUDIO
SW4STM32 是AC6公司的,相关Eclipxe插件和开发工下载工具地址:
http://www.openstm32.org
SW4STM32通过OpenOCD内建对ST-Link的支持,可以使用图形化界面单步调试源代码。
安装后,可插件升级实现开发工具库的升级,插件的下载地址:
http://www.ac6-tools.com/Eclipse ... nch.update-site-v2/
SW4STM32 只支持ST各系列的MCU和、官方、自定义开发板,支持链接调试工具(“如:ST-LINK等内容)需要通过OpenOCD的配置文件进行配置(默认可用ST-LINK)作为链接工具。
TrueStudio是 Atollic公司,rueSTUDIO Lite完全免费,没有大小限制;TrueSTUDIO Pro需要授权,但是你可以获得更多高级功能,包括代码分析和调试。
相关下载:http://atollic.com/resources/download/
最新集成版本8.1
二者均可采用OpenOCD实现对 ST-LINK等下载调试工具的支持,
TrueStudio除了支持ST产品外,还支持其他厂家的MCU,如NXP等,还支持J-LINK、PEMicro等调试工具。
|
|