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

电子商务网站开发 什么框架建站管理后台

电子商务网站开发 什么框架,建站管理后台,路桥做网站的公司有哪些,廊坊建站软件在MCU on Eclipse网站上看到Erich Styger在2月25日发的博文#xff0c;一篇关于使用FreeRTOS进行性能和运行分析的文章#xff0c;本人觉得很有启发#xff0c;特将其翻译过来以备参考。当然限于个人水平#xff0c;有描述不当之处恳请指正。原文网址#xff1a;https://m…在MCU on Eclipse网站上看到Erich Styger在2月25日发的博文一篇关于使用FreeRTOS进行性能和运行分析的文章本人觉得很有启发特将其翻译过来以备参考。当然限于个人水平有描述不当之处恳请指正。原文网址https://mcuoneclipse.com/2018/02/25/performance-and-runtime-analysis-with-freertos/#more-23229 FreeRTOS操作系统的优点之一是它提供了免费的性能分析它向我们展示在每个任务中花费了多少时间。最好的是它在Eclipse中也以图形的方式显示了相应内容 Eclipse中的FreeRTOS运行时信息 在上面的输出中我看到我的应用程序现在是97.5%的空闲这是一件好事符合我的期望因为这个机器人正等待着在轨道上运行。 如何获得这样的信息? 在Eclipse中的图形视图中需要一个Eclipse插件(请参阅Eclipse中更好的FreeRTOS调试)。该插件已经预先安装在NXP MCUXpresso IDE中。 另一种查看该信息的方法是使用“tasklist”命令该命令将输出发送到控制台(Segger RTT, UART, USB或类似的) Tasklist命令 此命令可用于GitHub上的McuOnEclipse FreeRTOS。 如何工作的? 在每个任务切换时FreeRTOS记录会切换到该任务所传递的时间(或消耗的时间)。为此它在任务信息结构中使用了一个32位计数器。这实际上是在“运行时”列下的“任务列表”命令显示的计数器。然后根据总运行时的总数来计算百分比。 FreeRTOS内部的计数器值为32位所以它不太适合长时间的测量。 为了修正这些数字在FreeRTOSConfig.h中必须将两个FreeRTOS配置定义为1。 #define configUSE_TRACE_FACILITY 1 /* 1: 包括额外的结构成员和功能以协助执行可视化和跟踪0: 没有运行时状态跟踪*/ #define configGENERATE_RUN_TIME_STATS 1 /* 1: 生成运行时统计; 0: 没有运行时统计 */ 如果使用处理器专家上述两个配置项有一个图形化设置: 用于性能分析的处理器专家设置 计数器 如上所述:FreeRTOS记录了每个任务所花费的时间。但这实际上不是实时的如果configGENERATE_RUN_TIME_STATS打开它只是某种计时器的计数器值。在这种情况下FreeRTOSConfig。h需要配置有两个应用程序功能配置的宏 #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() AppConfigureTimerForRuntimeStats() #define portGET_RUN_TIME_COUNTER_VALUE()         AppGetRuntimeCounterValueFromISR() 第一个是在RTOS启动时配置timer第二个是返回实际的计时器计数器值。 一般的经验法则是用于测量任务的计时器应该比实际的滴答计数器快10倍。 处理器专家的用户又有了一个优势:他们可以在处理器专家设置中轻松地配置这样的计时器并且一切都得到了处理: FreeRTOS的处理器专家计时器 下面是一个计时器的设置它的运行速度是1 kHz RTOS计时器的10倍。 性能计数器 下面是产生的定时器代码: /* ** **     Method      :  FRTOS1_OnCounterRestart (component FreeRTOS) ** **     Description : **         This method is internal. It is used by Processor Expert only. ** */ void RTOSCNTRLDD1_OnCounterRestart(LDD_TUserData *UserDataPtr __attribute__((unused))) { FRTOS1_RunTimeCounter; /* increment runtime counter */ } /* ** **     Method      :  FRTOS1_AppConfigureTimerForRuntimeStats (component FreeRTOS) **     Description : **         Configures the timer for generating runtime statistics **     Parameters  : None **     Returns     : Nothing ** */ #if configGENERATE_RUN_TIME_STATS void FRTOS1_AppConfigureTimerForRuntimeStats(void) { #if configGENERATE_RUN_TIME_STATS_USE_TICKS /* nothing needed, the RTOS will initialize the tick counter */ #else FRTOS1_RunTimeCounter 0; FRTOS1_RunTimeCounterHandle RTOSCNTRLDD1_Init(NULL); (void)RTOSCNTRLDD1_Enable(FRTOS1_RunTimeCounterHandle); #endif } #endif /* configGENERATE_RUN_TIME_STATS */ /* ** **     Method      :  FRTOS1_AppGetRuntimeCounterValueFromISR (component FreeRTOS) **     Description : **         returns the current runtime counter. Function can be called **         from an interrupt service routine. **     Parameters  : None **     Returns     : **         ---             - runtime counter value ** */ uint32_t FRTOS1_AppGetRuntimeCounterValueFromISR(void) { #if configGENERATE_RUN_TIME_STATS #if configGENERATE_RUN_TIME_STATS_USE_TICKS return xTaskGetTickCountFromISR(); /* using RTOS tick counter */ #else /* using timer counter */ return FRTOS1_RunTimeCounter; #endif #else return 0; /* dummy value */ #endif } 中断服务例程计数一个计时器计数器该计数器用于度量在任务中花费的时间。 如果中断是从性能角度考虑的问题并且不需要很高的精度那么处理器专家端口就有一个很好的特性:它不使用专用计时器而是重新使用RTOS的滴答计时器。为此有一个额外的设置来配置这个: #define configGENERATE_RUN_TIME_STATS_USE_TICKS 0 /* 1: 使用RTOS tick计数器作为运行时计数器。 0: 使用额外的 在UI中对应的设置如下: 使用Tick计数器 有了这些我们可以做一些基本的测量。但这不适合测量短任务执行时间。说RTOS的计时器是1毫秒那么运行不到1毫秒的任务将很少被测量。 使用ARM Cortex循环计数器 另一种在ARM Cortex M例如Cortex-M4或M7上测量执行时间的方法是使用ARM Cortex循环计数器。 #include KIN1.h static uint32_t prevCycleCounter, cycleCntCounter 0; void AppConfigureTimerForRuntimeStats(void) { cycleCntCounter 0; KIN1_InitCycleCounter(); prevCycleCounter KIN1_GetCycleCounter(); } uint32_t AppGetRuntimeCounterValueFromISR(void) { uint32_t newCntr, diff; newCntr KIN1_GetCycleCounter(); diff newCntr-prevCycleCounter; prevCycleCounter newCntr; cycleCntCounter diff12; /* scale down the counter */ return cycleCntCounter; } 这种方法测量循环计数器区别两个调用AppGetRuntimeCounterValueFromISR()和基于价值的计数器计数。为了不过快地计算计数器的值在上面的实现(使用120 MHz ARM的Cortex-M4)上按12位的偏移量缩小。对于运行速度更快或更慢的内核您可能需要调整该值。 总结 FreeRTOS具有跟踪任务执行时间的内置函数。它是在每个任务描述符中使用一个计数器实现的因此不需要太多RAM。应用程序必须提供一个计数器其速度通常比正常情况下要快10倍以获得一些合理的测量值。但是即使使用tick计数器本身也会给出一些粗略的性能分析数据。否则应用程序可以提供一个定期计时器计数器。如果使用臂皮质- m3 /M4/M7使用手臂皮层循环计数器是另一种选择因为它不需要任何定时器或中断。 欢迎关注
http://www.yutouwan.com/news/213769/

相关文章:

  • 建设银行证券转银行网站个人网站建设方法
  • 东莞seo网站关键词优优化常州网络公司主营业务
  • 长春网站建设4435网站访问速度慢的原因
  • dedecms建网站浙江企业响应式网站建设
  • 肇庆cms建站系统做网站的广告
  • 做网站鼎盛网站设计制作费用多少
  • 企业做网站需要做哪些工作淮安做网站需要多少钱
  • 佛山如何网站建设在哪里做私人设计工作室前景
  • 嘉兴丝绸大厦做网站的公司旅游景点推广策划方案
  • 酷炫个人特别网站免费网络验证
  • app设计网站有哪些功能p2p理财网站开发流程
  • 商城网站前台html模板windows2008做网站
  • 安阳昨天发生的事件短视频seo排名
  • 关于建设旅游网站的书籍网站点击量设计
  • 江西省建设监理网站邢台市属于哪个省
  • 怎么自己做淘宝客网站樟木头网站仿做
  • 贵城乡建设官方网站crm管理系统软件哪家好
  • 北京单页营销型网站制作温州专门做网站
  • 温州建设局老网站陕西做网站的公司在哪
  • 商家免费网站模板网站管理过程
  • 东坑镇做网站前端学到什么程度可以找到工作
  • 怎样批量做地级市网站网站最新程序策划书
  • 淘客网站如何建设自己数据库全国ip地址查询
  • 关于网站开发所需的知识论坛是做网站还是app好
  • 织梦网站地图模板样式网站怎么屏蔽ip访问
  • 自己的电脑可以做网站服务器吗视频号直播推广二维码
  • 网站建设优化建站经营网站备案信息
  • 南昌哪家网站建设最好巴中做网站
  • 在哪里可以找到网站辽阳北京网站建设
  • 南京做代账会计在哪个网站上找网络营销服务的特点有