IAR中优化等级对Kinetis FGPIO执行速度的影响

本文探讨了在IAR环境中,优化等级如何影响Kinetis微控制器的Fast GPIO (FGPIO)执行速度。优化等级设置为'Low'时,FGPIO的翻转速度受限,而提高到'High(Speed优先)'则能实现三倍的提升,达到期望的48MHz。关键在于优化等级影响了反汇编代码的长度和对GPIO寄存器的访问方式,提醒用户在实际应用中注意这一细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在灯光控制、IO模拟Flex Bus等很多应用中,对GPIO的翻转速度有很高的要求,M0+内核中集成了一个特定的single-cycle I/O port,Kinetis中我们称之为Fast GPIO(FGPIO)。它可以完成对IO口的单周期load和store,主要的区别在于FGPIO的端口可以被内核零等待的访问,于是可以达到Core Clock的速度,而普通GPIO需要内核通过内部的crossbar/AIPS来访问,从而增加了时间上的延迟,使GPIO输出频率被限制。


        在客户应用中发现,Codewarrior和KEIL IDE下只需要在代码中直接操作FGPIO的寄存器即可完成GPIO口48Mhz的翻转速度,然而在IAR默认环境中使用同样的起始代码和时钟配置却未能达到48M的翻转速度,而仅有普通GPIO的速度8M左右。通常我们会从时钟上找原因,http://tiyubisai.com/video_news/news_135616.html 但是究其原因,发现原来IAR的优化等级对FGPIO的速度产生了影响,这点很容易被忽略,所以下面截图详细的做一对比:


         如下图1,在IAR的优化选项“Optimizations Tab” 中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值