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

如何本地搭建自己的网站/属性词 关键词 核心词

如何本地搭建自己的网站,属性词 关键词 核心词,网站如果不备案吗,广州网站排名开始这篇文章之前先简单说明一下,我使用的MCU是我们公司自主研发的ACH1180芯片,和STM32差不多,都是Cortex-M4的核,所以移植的过程参考了STM32移植的步骤。 1.解压FreeRTOSV8.2.3到本地目录(FreeRTOS的源码在官网上有&a…

   开始这篇文章之前先简单说明一下,我使用的MCU是我们公司自主研发的ACH1180芯片,和STM32差不多,都是Cortex-M4的核,所以移植的过程参考了STM32移植的步骤。

 

1.解压FreeRTOSV8.2.3到本地目录(FreeRTOS的源码在官网上有,目前是9.0.0版本,据说8版本稳定,但未做考证)

 

2.\FreeRTOSV8.2.3\FreeRTOS\中的Source文件夹复制到待移植的代码工程中,并且重新命名为“FreeRTOS

 

 

3.IAR中建立FreeRTOS的文件域,FreeRTOS文件域下建立srcinc.

  

 

4.添加FreeRTOS文件: 

 I)src文件域下,添加FreeRTOS文件夹中源文件

 

 

 II)src文件域下,添加\FreeRTOS\portable\IAR\ARM_CM4F中源文件

 

 

 III)src文件域下,添加FreeRTOS/portable/MemMang下的源文件 

 

 

完成效果图:

 

  

5.制作FreeRTOSConfig.h文件 

    由于ACH的核和STM32F4XX系列的核都是ARM CM4F的核,所以可以参考STM32F4XXFreeRTOSConfig.h的文档. 

把源码中,FreeRTOSV8.2.3\FreeRTOS\Demo\CORTEX_M4F_STM32F407ZG-SK中的FreeRTOSConfig.h复制到 待移植的工程目录中:ACH_170727\FreeRTOS\include

FreeRTOSConfig.h添加到IAR工程中,FreeRTOS  inc文件域下。(这步仅仅为了编辑代码方便) 

将待修改FreeRTOSConfig信息: 

#define configUSE_IDLE_HOOK 1 

#define configUSE_TICK_HOOK 1 

#define configCHECK_FOR_STACK_OVERFLOW 2 

#define configUSE_MALLOC_FAILED_HOOK     1 

修改为: 

#define configUSE_IDLE_HOOK 0 

#define configUSE_TICK_HOOK 0 

#define configCHECK_FOR_STACK_OVERFLOW 0 

#define configUSE_MALLOC_FAILED_HOOK     0

 

以下为ACH订制修改方案: 

将:#define configMAX_PRIORITIES ( 5 ) 

   #define configTOTAL_HEAP_SIZE ( size_t ) ( 75 * 1024 ) ) 

修改为: 

  #define configMAX_PRIORITIES (12) 

  #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 50 * 1024 ) ))

 

6.添加编译路径 

I)添加C文件编译路径 

  

II)添加汇编文件编译路径 

  

完成以上步骤,可以编译了,若编译没有错误,表示FreeRTOSconfig文件修改正确。 

 

7.删除FreeRTOS中多余的库文件。

 

     \ACH_170727\FreeRTOS\portable\文件夹中,除了IAR MemMang保留,其他文件夹删除。 

 

  

\ACH_170727\FreeRTOS\portable\IAR文件夹中,除了ARM_CM4F保留,其他文件夹删除。 

 

 

8.引入系统时钟 

GKI_SetSystemCoreClock函数中,把sulSystemClcok变量复制给SystemCoreClcok

 

 

9.编写测试代码。 

测试代码如下: 

/* Scheduler includes. */ 

#include <stdio.h> 

#include "FreeRTOS.h" 

#include "task.h" 

#include "queue.h" 

#include "semphr.h" 

#define TASK1_PRIORITY  2 

#define TASK2_PRIORITY  3 

#define TASK3_PRIORITY  4 

void vTask1( void *pvParameters ); 

void vTask2( void *pvParameters ); 

void vTask3( void *pvParameters ); 

void FreeRTOS_test(void) 

{

     printf("portTICK_PERIOD_MS = %d\r\n", portTICK_PERIOD_MS); 

    xTaskCreate( vTask1, "Task1", 512, NULL, TASK1_PRIORITY, NULL );

    xTaskCreate( vTask2, "Task2", 512, NULL, TASK2_PRIORITY, NULL ); 

    xTaskCreate( vTask3, "Task3", 512, NULL, TASK3_PRIORITY, NULL ); 

    vTaskStartScheduler(); 

    GKI_Printf("FreeRTOS Failed\r\n"); 

void vTask1(void *pvParameters)

    while (1) { 

        vTaskDelay(1000 / portTICK_PERIOD_MS);

         GKI_Printf("vTask1\r\n");

    } 

}

  

void vTask2(void *pvParameters)

    while (1) { 

        vTaskDelay(2000 / portTICK_PERIOD_MS); 

        GKI_Printf("vTask2\r\n"); 

    } 

}

 void vTask3(void *pvParameters)

{

     while (1) { 

        vTaskDelay(3000 / portTICK_PERIOD_MS); 

        GKI_Printf("vTask3\r\n");

    }

Uart0端可以看到vTask1 vTask2 vTask3 在指定的时间片上打印,表示FreeRTOS移植成功。

 

转载于:https://www.cnblogs.com/mfc1207/p/8616185.html

http://www.jmfq.cn/news/5008177.html

相关文章:

  • 查法人信息的网站/网站链接提交
  • 南宁网站建设醉懂网络/百度关键词排名神器
  • 织梦怎么修改网站标题/微信如何投放广告
  • 网站有哪些区别是什么/文军seo
  • 北京建筑网/seo是什么牌子
  • 河南网站建设报价/徐州百度seo排名优化
  • 建设一个网站的所有代码/百度趋势搜索大数据
  • 济南做平台网站的/软文推广经典案例
  • 网站开发 沈阳/漳州网络推广
  • 专门做电路图的网站/北京知名seo公司精准互联
  • 玉溪网站建设制作/手机最新产品新闻
  • 经典 网站/竞价推广论坛
  • 专业创建网站/企业查询平台
  • it培训机构一般多少钱/东莞seo优化推广
  • 自己做的网站加载速度慢/产品推广方案ppt
  • 文登住房和建设局网站/seo短视频网页入口
  • ae做模板下载网站/百度账号申诉中心
  • 如何在百度做自己公司的网站/欧洲站fba
  • 网站定制开发报价单/站长之家备案查询
  • 学销售去哪个学校最好/重庆seo技术教程博客
  • java移动网站开发/免费广告发布平台app
  • 软件正版化情况及网站建设情况/广告推广有哪些平台
  • 深圳网站建设自己人/怎么样在百度上推广自己的产品
  • 旅游网站的建设的意义/seo零基础视频教程
  • 免费提供ppt模板的网站/湖南靠谱关键词优化
  • 那个网站做二手车好/搜索引擎的使用方法和技巧
  • 网站建设维护什么意思/seo挂机赚钱
  • 作者自己建立的网站/兰州seo整站优化服务商
  • 中小企业网站建设行情/南宁百度seo排名
  • 网站开发项目怎么接/网络推广长沙网络推广