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

电影网站盗链怎么做厦门seo网络推广

电影网站盗链怎么做,厦门seo网络推广,建设工程消防设计备案网站,张家港网站建设做网站基于裸机的cpu loading监控方案工程代码#xff1a;https://github.com/i-jaffer/cpu_monitor_no_thread1. What’s this​!​ ​​ cpu_monitor_no_thread 是一个针对裸机应用编写的 cpu loading 监控方案。使用 FreeRTOS、RT-Thread 这类操作系统时#xff0c;往往 RTOS 内…基于裸机的cpu loading监控方案工程代码https://github.com/i-jaffer/cpu_monitor_no_thread1. What’s this​!​ ​​ cpu_monitor_no_thread 是一个针对裸机应用编写的 cpu loading 监控方案。使用 FreeRTOS、RT-Thread 这类操作系统时往往 RTOS 内都自带了 cpu monitor 的组件但是针对裸机应用场景却缺乏此类组件因此在进行逻辑开发时对于 CPU loading 统计便成了问题因此开发了 cpu_monitor_no_thread 此组件。 使用 cpu_monitor_no_thread 时建议对应的裸机开发也需遵循一定的任务思想进行开发这样统计 cpu loading 才具有一定的意义如果将事情全部放在while(1) 循环内不关心执行频率cpu 能跑多少次就跑多少次对于这类应用场景相信你也无须考虑 cpu loading 的问题因为你的 cpu 一直都在忙着干活一直都是100% 2. Other 为避免使用此组件的开发者未能理解裸机任务开发思想特作此补充说明若已理解可直接跳过 任务开发思想即将 cpu 需要做的事情拆分为多个任务如 A、B、C并根据需求确定相关任务的执行频率如 任务A10ms 执行一次任务B20ms 执行一次任务C30ms 执行一次 由系统定时器Cortex M处理器通常使用 system tick产生基础时间节拍 tick如 1ms 产生一个 tick 下方展示一个简单的由 system tick 产生时间节拍的处理方式 uint32_t clock_array[5]{0}; /* 用于拆分任务处理 */ uint32_t system_tick 0;void SysTick_Handler(void) {uint8_t i 0;system_tick ;for(i 0; i 5; i){if(clock_array[i] ! 0)clock_array[i] --;} }有了 system tick 提供的时间片之后之后在主循环内即可设计对应任务处理了伪代码如下 int main(void) {/* xxxx init */while (1) {if (clock_array[0] 0) {clock_array[0] 10;A(); /* 执行A任务*/}if (clock_array[1] 0) {clock_array[1] 20;B(); /* 执行A任务*/}if (clock_array[2] 0) {clock_array[2] 30;C(); /* 执行A任务*/}} }3. Usage 3.1 Steps step1 添加 cpu_monitor_no_thread 组件至对应工程 step2 根据对应平台适配系统时间戳接口uint32_t cpu_monitor_get_systick(void)接口声明位于cpu_monitor_interface.h 文件内 step3 系统时钟初始化之后且其他外设/中断未启动前调用 cpu_monitor_init(); 务必注意在系统时钟初始化之后再调用否则初始化将失败 此函数运行固定时间用来统计全cpu计算的基分母因此要求在其他外设/中断未启用前调用的这样更加精准 step4 主循环内调用 cpu_monitor_run_hook() 统计cpu空闲时占比 step5 系统时钟中断内调用 cpu_monitor_calculate() 定周期计算 cpu loading 可通过修改 #define CPU_MONITOR_PERIOD_TICK 100 调整 cpu loading 计算周期 step6 可调用 cpu_monitor_get_loading() 获取当前 cpu 使用率 3.2 Example 系统滴答处理 uint32_t clock_array[5]{0}; /* 用于拆分任务处理 */ uint32_t system_tick 0;void SysTick_Handler(void) {uint8_t i 0;system_tick ;for(i 0; i 5; i){if(clock_array[i] ! 0)clock_array[i] --;}cpu_monitor_calculate(); }主函数处理 #include cpu_monitor.h #include cpu_monitor_interface.huint32_t cpu_monitor_get_systick(void) {return get_systick(); }int main(void) {uint8_t major 0, minor 0;Systick_Init();cpu_monitor_init();/* xxxx init */while (1) {cpu_monitor_run_hook();if (clock_array[0] 0) {clock_array[0] 10;A(); /* 执行A任务*/}if (clock_array[1] 0) {clock_array[1] 20;B(); /* 执行A任务*/}if (clock_array[2] 0) {clock_array[2] 30;C(); /* 执行A任务*/}if (clock_array[3] 0) {clock_array[3] 1000;cpu_monitor_get_loading(major, minor);printf(cpu loading:%d.%02d\r\n, major, minor);}} }4. Record 实现 cpu monitor 没什么太大困难但是有一个坑点需要特别注意 4.1 注意init和hook实现count计数逻辑一致性 实现 cpu_monitor_init() 的时候主要思想是让cpu不干别的只做 count 计算统计cpu全力计数时能计到的最大值作为后续cpu loading计算时的分母。那么这里务必注意代码编写的处理逻辑一定要和 cpu_monitor_run_hook() 里面空闲cpu计数的处理方式一致 比如 cpu_monitor_run_hook() 运用的是 if 处理加 自加 运算对应 cpu_monitor_init()里面也应如此 void cpu_monitor_init(void) {uint32_t tick cpu_monitor_get_systick();while (cpu_monitor_get_systick() - tick CPU_MONITOR_PERIOD_TICK) {cpu_monitor.data.total_loop;if (cpu_monitor.data.total_loop CPU_MONITOR_MAX_LOOP) {cpu_monitor.data.total_loop 0;cpu_monitor.data.total_count ;}}cpu_monitor.status.init_flag 1; }void cpu_monitor_run_hook(void) {cpu_monitor.data.run_loop;if (cpu_monitor.data.run_loop CPU_MONITOR_MAX_LOOP) {cpu_monitor.data.run_loop 0;cpu_monitor.data.run_count ;} }如果 cpu_monitor_init() 里面换另外一种方式如 while void cpu_monitor_init(void) {uint32_t tick cpu_monitor_get_systick();while (cpu_monitor_get_systick() - tick CPU_MONITOR_PERIOD_TICK) {cpu_monitor.data.total_count;cpu_monitor.data.total_loop 0;while (cpu_monitor.data.total_loop CPU_MONITOR_MAX_LOOP)cpu_monitor.data.total_loop;}cpu_monitor.status.init_flag 1; }那么你会发现代码里面不放什么一开始的 loading 就是40%了这是因为两种写法不一致导致 cpu 执行周期不一致进而导致的统计误差 4.2 注意while循环内任务思想开发 这个不多说章节2有详细描述 5. Conclusion 以上就是一种裸机的 cpu loading 监控组件分享了有问题欢迎大家提 pr
http://www.zqtcl.cn/news/643889/

相关文章:

  • 免费空间访客领取网站提高网站互动性
  • 湖北省市政工程建设网站汉中网站建设电话
  • 宁波大型网站推广服务丁香花在线电影小说观看
  • 合肥的网站建设公司哪家好百度旗下产品
  • 墨星写作网站阿里云购买网站登录
  • 做微网站公司知名网站设计
  • 宁波中科网站建设有限公司天津市建设 银行网站
  • 长沙建个网站一般需要多少钱化妆品网站建设方案项目书
  • 宁波外贸网站推广做网站如何选域名
  • 如何在百度上搜索到自己的网站提升关键词
  • asp net做网站建设英文网站的公司
  • 旅游英文网站 建设需求WordPress首页id
  • 南宁网站如何制作网站seo查询站长之家
  • 网站备案太麻烦门户网站模板
  • 九江建网站多少钱打开云南省住房和城乡建设厅网站
  • 合肥市门户网站wordpress登陆不上
  • 摄影网站在线建设办公室设计装修
  • 深圳市移动端网站建设游戏网站建设与策划方案
  • wap版网站 加app提示厦门网站seo优化
  • 旅游网站 功能建设银行网站会员
  • 公园网站建设wordpress 分类目录使用英文
  • 苏州高端网站设计制作wordpress改固定连接
  • 门户网站开源sae安装wordpress
  • 建设彩票网站需要哪些要求城乡与住房建设厅网站首页
  • 公司做网站费用计入什么科目网络建设规划
  • 外贸网站建设案例深圳设计网站培训
  • 龙岗地区做网站公司北京装饰公司排行 2019
  • 大企业网站建设方案wordpress博客模板查询
  • 手机网站建设动态公司做网站效果怎么样
  • 网站推广和优化教程上海网络科技有限公司招聘