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

用花生壳怎么做网站的服务器免费个人自助建站

用花生壳怎么做网站的服务器,免费个人自助建站,如何网站建设网站,哪个网站系统做的好1.FreeRTOS的移植过程是将系统需要的文件和代码进行移植和裁剪,其移植的主要过程为: (1)官网上下载FreeRTOS源码:https://www.freertos.org/ (2)移植文件夹,在portable文件夹中只需…

1.FreeRTOS的移植过程是将系统需要的文件和代码进行移植和裁剪,其移植的主要过程为:

(1)官网上下载FreeRTOS源码:https://www.freertos.org/

(2)移植文件夹,在portable文件夹中只需要保留:Keil、MemMang、RVDS。

(3)代码中的裁剪,修改相关的宏定义。

2.移植文件夹:

(1)首先在Keil的基本工程模板中创建一个文件夹FreeRTOS,用来存放FreeRTOS的源码:

(2)将如下三个文件夹导入到FreeRTOS目录下:

其中,Demo中存放的参考例程。License中是相关的许可信息。Source中便是FreeRTOS的源码。

(3)裁剪Source中的文件:

Source中的文件信息如下

portable中存放是FreeRTOS和硬件之间的接口桥梁,在portable中只需要保留如下三个文件夹即可。

MemMang中存放是内存管理相关的算法文件,本文选择heap_c.c。

RVDS和Keil中存放是软件和硬件之间的接口文件。本文的STM32是Coretex-M3系列,所以需要选择ARM_CM3。

3.创建工程文件:

在基础工程文件中创建两个如下两个文件夹用来存放FreeRTOS相关的文件:

添加文件:

4.导入头文件的路径:

5.移植FreeRTOSConfig.h文件:

FreeRTOSConfig.h是FreeRTOS的配置文件,通常FreeRTOS的裁剪都是通过修改此文件中的宏定义来实现。选择芯片序号和开发环境对应的文件:

将FreeRTOSConfig.h复制到自己的工程文件下,本文将FreeRTOSConfig.h放在include文件夹下:

6.代码裁剪:

(1)添加宏定义,将STM32的PendSV_Handler、SVC_Handler、SysTick_Handler映射到FreeRTOS中。在FreeRTOS中添加如下三个宏定义:

(2)注释stm32f10x_it.c中的SysTick_Handler()、SVC_Handler()和 PendSV_Handler()三个中断服务函数。因为在FreeRTOS中已经重新定义了这三个中断服务函数,所以此处需要注释,防止重复定义。

7.创建任务:

  (1)led.c

#include "led.h"void LED_Init(void)
{//¶¨Òå¶Ë¿ÚµÄ½á¹¹Ìå:GPIO_InitTypeDef GPIO_InitStruct;//1.ʹÄÜʱÖÓ£ºRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOA,ENABLE);//2.ÅäÖö˿ڽṹÌåµÄÏà¹ØÐÅÏ¢£º£¨LED1£©GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2;GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOD,&GPIO_InitStruct);//ÅäÖÃLED0£ºGPIO_InitStruct.GPIO_Pin = GPIO_Pin_8;GPIO_Init(GPIOA,&GPIO_InitStruct);//³õʼʱ½«LEDµÄ¶Ë¿Ú¶¼ÖÃΪ1£¬¼´Ï¨ÃðGPIO_SetBits(GPIOA,GPIO_Pin_8);GPIO_SetBits(GPIOD,GPIO_Pin_2);
}

(2)main.c:

#include "stm32f10x.h"
#include "led.h"
#include "delay.h"
#include "FreeRTOS.h"
#include "task.h"TaskHandle_t led0_handler;
TaskHandle_t led1_handler;void led0(void)
{while(1){GPIO_ResetBits(GPIOA,GPIO_Pin_8);			//´ò¿ªLEDvTaskDelay(500);GPIO_SetBits(GPIOA,GPIO_Pin_8);			//´ò¿ªLEDvTaskDelay(500);}
}void led1(void)
{while(1){GPIO_ResetBits(GPIOD,GPIO_Pin_2);			//´ò¿ªLEDvTaskDelay(1000);GPIO_SetBits(GPIOD,GPIO_Pin_2);			//´ò¿ªLEDvTaskDelay(1000);}
}int main(void)
{NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// ÉèÖÃÖжÏÓÅÏȼ¶·Ö×é2LED_Init();/*´´½¨ÈÎÎñ*/xTaskCreate((TaskFunction_t) led0,				//ÈÎÎñº¯Êý(const char *)"led0_task",								//ÈÎÎñÃû³Æ(uint16_t)50,											      //ÈÎÎñ¶ÑÕ»´óС(void *)NULL,													//´«µÝ¸øÈÎÎñº¯ÊýµÄ²ÎÊý(UBaseType_t)1,											//ÈÎÎñÓÅÏȼ¶(TaskHandle_t *)&led0_handler);				//ÈÎÎñ¾ä±úxTaskCreate((TaskFunction_t) led1,(const char *)"led1_task",(uint16_t)50,(void *)NULL,(UBaseType_t)1,(TaskHandle_t *)&led1_handler);vTaskStartScheduler();													//¿ªÊ¼ÈÎÎñµ÷¶È
}

8.运行结果:本文的运行结果是两个LED灯闪烁,其中led0每500ms闪烁一次,led1每1000ms闪烁一次。

9.总结:

FreeRTOS的移植过程主要是对相关的文件和代码进行裁剪。需要去了解每个文件夹中代码的大搞功能,才可以正确的移植文件。

此外,当使用xTaskGetSchedulerState()函数时,需要将FreeRTOS.h中的对应宏定义改为1:

http://www.hyszgw.com/news/26039/

相关文章:

  • 深圳龙岗现在算什么风险地区百度seo优化按年收费
  • 网站一般用什么软件做网络安全
  • 郑州网站设计公司排名企业网站推广方案
  • 兰州关键词网络推广百度seo新算法
  • 做网站上饶刷排名有百度手机刷排名
  • 天津做网站的公司手机app开发
  • 国家企业信用系统宁波seo优化费用
  • 电子商务网站建设与维护考试百度应用商店app下载安装
  • 登录wordpress数据库吗seo关键词排名优化软件
  • eclipse网站开发例子软文营销广告案例
  • 企业汽车网站建设百度竞价推广代运营
  • 中国建设网站轨道自检验收报告表安卓优化大师
  • 深圳seo网站优化seo站内优化技巧
  • 网站模板安装步骤开封网站推广
  • 网站建设从入门到精通+网盘seo排名是什么意思
  • 网站服务器购买郑州网站推广公司咨询
  • 3liang 设计网站 源码如何做seo搜索优化
  • 做网站录入和查询需求网络广告推广方案
  • 怎么查看网站提交百度的度qq刷赞网站推广
  • 做网站指导知识付费网站搭建
  • 网站开发培训中心附近的成人电脑培训班
  • 做公司网站计入什么会计科目seo分析
  • 网站建设制作找哪家怎样策划一个营销型网站
  • 免费个人网站制作百度免费推广怎么操作
  • 阿里巴巴官方网站网站优化的主要内容
  • 游戏官方网站开发设计报告网站推广优化的方法
  • 专门做旅游攻略的网站有哪些百度seo优化系统
  • 中国中小企业网站建设现状软文推广网站
  • 做网站销售的技巧推广营销网络
  • 做阿里巴巴网站图片seo排名优化工具