当前位置: 首页 > news >正文

南昌旅游集团网站建设企业网站推广计划

南昌旅游集团网站建设,企业网站推广计划,滨江区做网站公司,wpf算是网站开发吗说明#xff1a;本文翻译自Erich Styger的文章《Implementing FreeRTOS Performance Counters on ARM Cortex-M》#xff0c;文章的权属属于原作者。 当使用像FreeRTOS这样的RTOS时#xff0c;迟早要问一个问题#xff1a;每个任务花费多少时间#xff1f;基于Eclipse的M…说明本文翻译自Erich Styger的文章《Implementing FreeRTOS Performance Counters on ARM Cortex-M》文章的权属属于原作者。 当使用像FreeRTOS这样的RTOS时迟早要问一个问题每个任务花费多少时间基于Eclipse的MCUXpresso IDE具有很好的视图准确显示了此类信息 FreeRTOS运行时信息 为了使FreeRTOS或“任务列表”视图显示非常有用的信息开发人员必须提供帮助以便RTOS可以收集此信息。本文说明如何在ARM Cortex-M上完成此操作。 1、概述 不久前我从处理器专家的角度讨论了FreeRTOS的性能和运行时分析中的该主题。这次是关于使用“本机” FreeRTOS和使用NXP MCUXpresso SDK但是相同的原理将适用于Cortex-M处理器和微控制器的所有其他环境。至于FreeRTOS端口我正在使用https://github.com/ErichStyger/McuOnEclipseLibrary中的端口因为该端口已经存在所有需要的钩子。GitHub上提供了本文中使用的所有文件和源。 2、如何工作 操作系统使用计数器来衡量任务执行时间。因此在任务上下文切换时间此计数器用于确定该任务使用的时间。重要的一点是该时间不是绝对的例如37毫秒而是一些“滴答声”例如241个滴答声。RTOS知道总体上使用了多少“滴答声”。RTOS知道系统中有多少个任务因此它可以显示每个任务花费了总时间的百分比。另一个要注意的是时间*包括*在中断中花费的时间。 这是一种非常简单但功能强大的估算任务执行时间的方法通常就是您所需要的。它可以通过一种非常简单的方式来实现使用一个使计数器递增的计时器和一个用于读取计数器值的函数。 要打开性能测量我必须启用两个FreeRTOS配置设置 #define configUSE_TRACE_FACILITY 1 /* 1: include additional structure members and functions to assist with execution visualization and tracing, 0: no runtime stats/trace */#define configGENERATE_RUN_TIME_STATS 1 /* 1: generate runtime statistics; 0: no runtime statistics */ 要配置计时器并读取计数器我必须使用两个宏来告诉函数名称 #define configGET_RUNTIMER_COUNTER_VALUE_FROM_ISR   AppGetRuntimeCounterValueFromISR#define configCONFIGURE_TIMER_FOR_RUNTIME_STATS     AppConfigureTimerForRuntimeStats 3、使用“滴答”计数器 一种非常简单的衡量任务执行情况的方法是使用FreeRTOS滴答计数器本身。可以通过以下方式启用 #define configGENERATE_RUN_TIME_STATS_USE_TICKS     (1) 但是这仅在任务执行时间超过RTOS滴答周期时才能测量任务执行时间。对于更快的任务此方法没有用。根据Nyquist-Shannon采样定理我最好使用2倍更好10倍的测量频率。 4、使用Cortex-M周期计数器 实现该计数器的另一种方法是使用Cortex-M周期计数器该计数器已在许多设备上实现并给出了很好的结果。最好的是无需中断或额外的计时器。可能的实现如下所示 static uint32_t prevCycleCounter, cycleCntCounter 0;void AppConfigureTimerForRuntimeStats(void) {cycleCntCounter 0;McuArmTools_InitCycleCounter();prevCycleCounter McuArmTools_GetCycleCounter(); }uint32_t AppGetRuntimeCounterValueFromISR(void) {uint32_t newCntr, diff;newCntr McuArmTools_GetCycleCounter();diff newCntr-prevCycleCounter;prevCycleCounter newCntr;cycleCntCounter diff12; /* scale down the counter */return cycleCntCounter; } 5、使用定期定时器中断 标准方法是使用定期中断计时器该计时器增加计数器。对于1 kHz滴答计时器推荐的频率是FreeRTOS滴答计时器频率的10倍在这种情况下为10 kHz100 us static uint32_t perfCounter 0;#define PIT_BASEADDR       PIT #define PIT_SOURCE_CLOCK   CLOCK_GetFreq(kCLOCK_BusClk) #define PIT_CHANNEL        kPIT_Chnl_0 #define PIT_HANDLER        PIT0_IRQHandler #define PIT_IRQ_ID         PIT0_IRQnvoid PIT_HANDLER(void) {PIT_ClearStatusFlags(PIT_BASEADDR, PIT_CHANNEL, kPIT_TimerFlag);perfCounter;__DSB(); }void AppConfigureTimerForRuntimeStats(void) {pit_config_t config;PIT_GetDefaultConfig(config);config.enableRunInDebug false;PIT_Init(PIT_BASEADDR, config);PIT_SetTimerPeriod(PIT_BASEADDR, PIT_CHANNEL, USEC_TO_COUNT(100U, PIT_SOURCE_CLOCK));PIT_EnableInterrupts(PIT_BASEADDR, PIT_CHANNEL, kPIT_TimerInterruptEnable);NVIC_SetPriority(PIT_IRQ_ID, 0);EnableIRQ(PIT_IRQ_ID);PIT_StartTimer(PIT_BASEADDR, PIT_CHANNEL); }uint32_t AppGetRuntimeCounterValueFromISR(void) {return perfCounter; } 6、摘要 FreeRTOS包含一项功能可以测量相对于系统中其他任务的任务执行时间。我需要提供的是计时器或某种计数器的初始化例程以及获取计数器值的方法。如果您对检查FreeRTOS计时的其他方式感兴趣请查看Percepio Tracealyzer或Segger SystemView。如果您希望应用程序本身显示性能数据请查看“ 使用FreeRTOS进行性能和运行时分析”中介绍的Shell / Commandline实现。 7、链接 GitHub上的项目https : //github.com/ErichStyger/mcuoneclipse/tree/master/Examples/MCUXpresso/tinyK22/tinyK22_FreeRTOSFreeRTOS的性能和运行时分析在Eclipse中更好的FreeRTOS调试ARM SWO性能计数器GitHub上的McuLibhttps : //github.com/ErichStyger/McuOnEclipseLibraryMCUXpresso IDE和SDKhttps ://mcuxpresso.nxp.com 欢迎关注
http://www.zqtcl.cn/news/764290/

相关文章:

  • 在建设部网站首页莒县网页设计
  • 河北省城乡和住房建设厅网站网店代运营托管
  • 彩票网站建设wordpress判断用户权限
  • 简洁大气企业网站源码h5商城网站建设是什么
  • 河间做网站价格wordpress评论导出
  • 网站关键词布局图网站推广与宣传怎么做
  • 小说类网站程序西安移动网站建设
  • 贵州高端网站建设网站做好了怎么做后台
  • 网站建设与管理 答案国外做免费的视频网站有哪些
  • 网站建设电脑端手机端企业网站建设需求调研表
  • 怎么做游戏网站google国际版
  • 学校网站建设发展规划线上推广的渠道有哪些
  • 公主岭网站建设seo网站推广技术
  • 网站建设一次crm管理
  • 电商网站设计公司优选亿企邦wordpress管理员头像
  • 医院做网站需要多少钱wordpress 模板 设计
  • 建设网站的规则建设公司网站的原则
  • 专业网站定制 北京龙泉驿网站seo
  • 网站标签是什么网站flash导入页
  • 城市网站建设摘要论文网站建设基本步骤包括哪些
  • 如何做招聘网站分析wordpress状态修改
  • 兰考网站建设微信运营是干嘛的
  • 网站ps照片怎么做的网站开发项目实训报告
  • 做流量网站it建设人才网
  • 杭州拱墅区网站建设推荐定制型网站建设
  • 网站建设需要达到什么样的效果上海营销网站推广多
  • 现代化公司网站建设长沙公司网站建立
  • 网站开发需要哪些人才辽宁奔之流建设工程有限公司网站
  • 做旅游产品的网站有哪些个人做搜索网站违法吗
  • 营销型网站的功能网站制作价钱多少