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

asp.net网站访问统计7k网站怎么做

asp.net网站访问统计,7k网站怎么做,个人做网站被骗,百度爱采购个人主页~ 这篇文章是我亲身经历的#xff0c;在做完一个项目之后总结的经验#xff0c;虽然我没有将整个项目给放出来#xff0c;因为这项目确实也是花了米让导师指导的#xff0c;但是这个过程对于STM32的实战项目开发都是非常好用的#xff0c;可以说按照这个过程在做完一个项目之后总结的经验虽然我没有将整个项目给放出来因为这项目确实也是花了米让导师指导的但是这个过程对于STM32的实战项目开发都是非常好用的可以说按照这个过程在你熟悉各种外设的前提下你可以不用受别人指导地进行一个项目甚至完成自己的一个作品 实战项目的实现过程 一、FreeRtos1、简介2、功能1裸机开发2基于Rtos的开发 3、格式1定义任务2定义空闲任务3main函数4开始任务函数 一、FreeRtos 1、简介 Rtos就是实时操作系统os的意思就像是我们常用的iOS、HamonyOS是一个意思就是操作系统的意思而FreeRtos就是免费的实时操作系统在嵌入式系统中非常常用 它的底层代码是用C语言写成的可移植性特别好且简单易用核心代码有9000多行 2、功能 1裸机开发 像STM32在开始学习的时候我们的程序是一个main函数里面的代码一行接着一行执行非常单一只要写好程序程序就会按照既定的顺序执行不会出现某一段代码先于前面几行的代码的情况也就是实时性差这叫做裸机开发也就是不带操作系统的开发它常用于不需要高实时性的场景的产品开发 在delay函数下的等待只能等待没有占用CPU的情况浪费资源 2基于Rtos的开发 Rtos有很多种除了FreeRtos以外我们可以在浏览器上搜索其他的Rtos但在所有嵌入式系统中FreeRtos是应用最多的 添加了Rtos的嵌入式系统实时性会提高我们可以将某些程序分为多个任务给予它们优先级优先级高的优先获得CPU使用权也就是一个优先级低的任务执行过程中优先级高的任务一旦出现需要执行的情况优先级低的任务立刻发生中断先让优先级高的任务完成然后再回到原来的位置继续执行而且这个过程是可以嵌套的在优先级1的任务过程中优先级2的任务可以中断优先级1的任务然后优先级3的任务又可以中断优先级2的任务 多个任务可以同一优先级创建的实时任务数量没有软件限制也就是说在理想条件下创建的实时任务可以有无数个 在不断中断的过程中嵌入式系统捕捉外界变化的能力变得十分灵敏实时性有所提高 在delay函数下按照优先级的顺序使用CPU确保CPU能在每个时间段都有事情可做节省资源 3、格式 FreeRtos的配置过程可以直接看正点原子的视频教程这里其实只要懂得基本原理即可直接找一个现成的文件用就可以实在想要自己做就跟着视频教程一步一步来搭建一个Rtos系统 我们这里就不讲怎么配置了文本解释不清还占用篇幅 1定义任务 //任务优先级 #define START_TASK_PRIO 1 //任务堆栈大小 #define START_STK_SIZE 128 //任务堆栈 StackType_t StartTaskStack[START_STK_SIZE]; //任务控制块 StaticTask_t StartTaskTCB; //任务句柄 TaskHandle_t StartTask_Handler; //任务函数 void start_task(void *pvParameters);//任务优先级 #define TASK1_TASK_PRIO 2 //任务堆栈大小 #define TASK1_STK_SIZE 128 //任务堆栈 StackType_t Task1TaskStack[TASK1_STK_SIZE]; //任务控制块 StaticTask_t Task1TaskTCB; //任务句柄 TaskHandle_t Task1Task_Handler; //任务函数 void task1_task(void *pvParameters);//任务优先级 #define TASK2_TASK_PRIO 3 //任务堆栈大小 #define TASK2_STK_SIZE 128 //任务堆栈 StackType_t Task2TaskStack[TASK2_STK_SIZE]; //任务控制块 StaticTask_t Task2TaskTCB; //任务句柄 TaskHandle_t Task2Task_Handler; //任务函数 void task2_task(void *pvParameters);开始任务start_task是必须要有的然后按照一样的格式将任务1234等创建好确定堆栈以及堆栈大小控制块、句柄以及任务函数的声明 2定义空闲任务 //空闲任务堆栈 static StackType_t Idle_Task_Stack[configMINIMAL_STACK_SIZE]; //定时器任务堆栈 static StackType_t Timer_Task_Stack[configTIMER_TASK_STACK_DEPTH];//空闲任务控制块 static StaticTask_t Idle_Task_TCB; //定时器任务控制块 static StaticTask_t Timer_Task_TCB;//获取空闲任务的任务堆栈和任务控制块内存因为本例程使用的是静态内存 //因此空闲任务的任务堆栈由用户来提供接口函数就是下面这个函数//ppxIdleTaskTCBBuffer:任务控制块内存 //ppxIdleTaskStackBuffer:任务堆栈内存 //pulIdleTaskStackSize:任务堆栈大小 void vApplicationGetIdleTaskMemory(StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize) {*ppxIdleTaskTCBBufferIdle_Task_TCB;*ppxIdleTaskStackBufferIdle_Task_Stack;*pulIdleTaskStackSizeconfigMINIMAL_STACK_SIZE; }//获取定时器任务的任务堆栈和任务控制块内存 //ppxTimerTaskTCBBuffer任务控制块内存 //ppxTimerTaskStackBuffer任务堆栈内存 //pulTimerTaskStackSize任务堆栈大小void vApplicationGetTimerTaskMemory(StaticTask_t **ppxTimerTaskTCBBuffer, StackType_t**ppxTimerTaskStackBuffer, uint32_t *pulTimerTaskStackSize) {*ppxTimerTaskTCBBufferTimer_Task_TCB;*ppxTimerTaskStackBufferTimer_Task_Stack;*pulTimerTaskStackSizeconfigTIMER_TASK_STACK_DEPTH; }3main函数 int main() {//在前面这里放所使用模块的初始化将所有用到的外设驱动起来//下面就是开始任务函数的定义StartTask_HandlerxTaskCreateStatic((TaskFunction_t )start_task,//任务函数 (const char* )start_task,//任务名称 (uint32_t )START_STK_SIZE, //任务堆栈大小(void* )NULL, //传递给任务函数的参数 (UBaseType_t )START_TASK_PRIO, //任务优先级 (StackType_t* )StartTaskStack, //任务堆栈(StaticTask_t* )StartTaskTCB); //任务控制块vTaskStartScheduler();//开启任务调度 }4开始任务函数 在FreeRtos进入临界段代码的时候需要关闭中断当处理完临界段代码以后再打开中断 一般我们都会使用这个临界区进入和退出是配套使用的我们在使用的时候要尽量保持临时段耗时短 //开始任务函数 void start_task(void *pvParameters) {taskENTER_CRITICAL(); //进入临界区//创建task1任务Task1Task_HandlerxTaskCreateStatic((TaskFunction_t )task1_task, (const char* )task1_task, (uint32_t )TASK1_STK_SIZE, (void* )NULL, (UBaseType_t )TASK1_TASK_PRIO, (StackType_t* )Task1TaskStack, (StaticTask_t* )Task1TaskTCB); //创建task2任务Task2Task_HandlerxTaskCreateStatic((TaskFunction_t )task2_task, (const char* )task2_task, (uint32_t )TASK2_STK_SIZE, (void* )NULL, (UBaseType_t )TASK2_TASK_PRIO, (StackType_t* )Task2TaskStack, (StaticTask_t* )Task2TaskTCB);vTaskDelete(StartTask_Handler); //删除开始任务taskEXIT_CRITICAL(); //退出临界区 }这里只是简单地使用FreeRtos掌握Rtos下的多任务多优先级的实现方式掌握FreeRtos的基本用法打造一个实时性系统 今日分享就到这里~
http://www.dnsts.com.cn/news/3782.html

相关文章:

  • php 手机网站源码旅游网站建设普通论文
  • 建设网站的基本工作流程淘宝推广引流方法有哪些
  • 做企业网站可以没有后台吗有什么兼职做it的网站好
  • html5高端网站建设织梦模板阳江本地最新招聘信息
  • wordpress能做手机站么网站框架有哪些
  • 连云港做网站建设哈尔滨招标信息网官网
  • 湘潭网站建设 x磐石网络西安网页设计多少钱
  • 服务器怎么建网站公司广告宣传片拍摄
  • 吉林网站建设制作山东省城乡与住房建设厅网站
  • 网站有情链接怎么做营销网站建设企划案例
  • 做网站有没有前途有哪些做设计交易网站
  • 新手做网站需要多久泉州seo代理计费
  • 手机可以做网站吗?温州百度推广排名优化
  • 网络组建与维护实训报告百度seo网站
  • 厦门网站设计制作专门找建筑案例的网站
  • 成都高端网站建设公司成全视频免费观看在线看收索
  • 想自己做网站 有免费的吗广州seo效果
  • 临湘市网站为什么会有免费制作网站
  • 如何设置个人网站杭州seo薪资水平
  • 班级网站建设需求网页设计师培训费用图
  • 一般建设网站需要多少预算seo网络排名优化
  • 济南做网站优化哪家好郑州pc网站开发
  • 海淀网站建设服务网站排名优化怎么弄
  • 电影网站如何优化专属头像制作免费
  • 免费下载ppt模板网站推荐制作网页软件列表html代码
  • 青岛网站搭建公司湛江网站建设外包
  • 厦门网站建设2015西安it培训机构
  • 龙陵县住房和城乡建设局网站建设德育网站的意义
  • wordpress 手机发文东莞seo建站如何推广
  • 网站建设团队扬州详情页在线设计网站