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

做兼职网站有哪些大学生创意产品设计方案

做兼职网站有哪些,大学生创意产品设计方案,网页设计教程书籍推荐,深圳关键词推广整站优化目录 提前准备 源码文件移植 修改 stm32f10x_it.c 修改 FreeRTOS.h 本章思维导图。 提前准备 学习 FreeRTOS 的第一步就是有一份最工程能够跑在 STM32 上。本篇将记录本人从0搭建一个最基础的移植工程Demo。 要完成这份 Demo,首先我们需要预先准备以下东西&…

目录

提前准备

源码文件移植

修改 stm32f10x_it.c

修改 FreeRTOS.h


        本章思维导图。

提前准备

        学习 FreeRTOS 的第一步就是有一份最工程能够跑在 STM32 上。本篇将记录本人从0搭建一个最基础的移植工程Demo。

        要完成这份 Demo,首先我们需要预先准备以下东西:

        1. 一个能在单片机上运行的裸机工程,不需要什么功能,能够进行验证就行。

        2. 获取一份 FreeRTOS 源码。

        我们可以通过官网获取最新的源码:

FreeRTOS™ - FreeRTOS™

        此处我用的版本为 FreeRTOSv10.0.1,文件如下:

【免费】FreeRTOS源码v10.0.1资源-CSDN文库

源码文件移植

        将源码包打开之后,其内内容如下:

        FreeRTOS-Plus 下是一些第三方产品,一般没什么用,而且只能模拟仿真。

        我们进入 FreeRTOS 目录下,可以看到如下内容:

       如果使用 FreeRTOS做产品的话,就需要读一下 License 下的文件,也没啥用处。

        这里面的重点就是 Source 文件夹,里面就是我们需要移植的源码。

        进入 Source 目录下,我们可以看到以下内容。

        除了 portable 文件夹外,其余所有东西都是通用于所有编译器和处理器的;而 portable 下是针对不同编译器的支持文件,如下图。

        在该目录下,我们需要框出来的这几个文件夹。Keli 代表我们使用的编译器。

        MemMang 下的内容负责内存管理。进入 MemMang 目录下,是5个 heap文件 和一个说明文档。

        这5个 heap文件 在移植时至少要使用一个。FreeRTOS在创建内核对象的时候使用动态分配内存来为其分配空间,这5个 heap文件 分别代表不同的分配方式,不同的算法会导致不同的效率与结果,我们先默认用第4个。

        RVDS 目录下保存着 STM32 不同系列的接口文件。

        所谓接口文件,我的理解就是硬件和软件之间连接的桥梁。接口文件采用 汇编 和 C 共同编写,将一些功能封装成接口来供开发者调用,节省开发成本。

        因为我们使用的芯片是 ARM_CM3 内核,所以进入该文件夹下。

        这两个文件就是 FreeRTOS 对接口的定义和封装。

        Demo 文件夹里面是 FreeRTOS 官方为各个款型的单片机准备的示例工程,这些工程还根据不同 IDE 进行了适配。

        前面讲了我们需要准备一个最基础的裸机工程做基础来移植 FreeRTOS。

        我在我的工程目录下新建了一个文件夹,为了方便识别起名为 FreeRTOS 。为方便管理,将\FreeRTOS\Source 下的源文件放到新建的 src 目录下,include 文件夹直接复制过来,最后再将\FreeRTOS\Source\portable 下的 RVDS 和 MemMang 搬过来。最终结果如下图:

        

        到此为止,一份 FreeRTOS 源码就打包好了。下一步,就是让裸机工程融入吸收源码。

        接下来我们需要一个配置文件来适配 FreeRTOS 。这里我们就要参考 Demo里的文件了。

        进入 \FreeRTOS\Demo\CORTEX_STM32F103_Keil 目录下,我们可以看到FreeRTOSConfig.h ,把它扔到裸机工程的 user 文件夹下。之后我们会对这个文件进行调整。

        下一步就是在工程里将 FreeRTOS 相关内容加进去。下图是我添加的效果。

         RVDS 和 MemMang 里的东西我直接放在 FreeRTOS 下了,想分组分的细些也可以改一下。添加完之后还要添加头文件路径。

        FreeRTOSConfig.h 同样在完成上述操作后,我们需要对其进行一些改动。

修改 stm32f10x_it.c

        对于单片机来讲,时钟是至关重要的部分,没有时钟,什么都得玩完。在 FreeRTOS 中已经为我们实现了 SysTick 的配置,包括 PendSV_Handler()SVC_Handler() 两个中断函数。这三者都在 port.c 中进行了定义,所以我们需要对 stm32f10x_it.c 进行改动来适配。

        具体改动内容如下:

#include "stm32f10x_it.h"
#include "FreeRTOS.h"
#include "task.h" /*
void SVC_Handler(void)
{
}
*//*
void PendSV_Handler(void)
{
}
*/extern void xPortSysTickHandler(void);void SysTick_Handler(void)
{xPortSysTickHandler();
}

        在上述代码中做了三件事:

        1. 添加 FreeRTOS 相关头文件;

        2. 注释掉 PendSV_Handler()SVC_Handler() ,因为它们已经在 port.c 中实现了;

        3. 将 SysTick_Handler() 也替换成 FreeRTOS 定义好的内容。

修改 FreeRTOS.h

        我们还需要在 FreeRTOS.h 中找到 INCLUDE_xTaskGetCurrentTaskHandle,这个宏的作用是使能获取当前正在执行的任务的任务句柄,什么是任务句柄会在后面的内容介绍。找到之后做如下修改。

#ifndef INCLUDE_xTaskGetCurrentTaskHandle#define INCLUDE_xTaskGetCurrentTaskHandle 1

        完成上述步骤之后,将头文件路径添加完成,进行编译。编译无报错无警告,完成移植。


文章转载自:

http://07Nz3BbW.tbpLf.cn
http://dfTf7RyU.tbpLf.cn
http://xLADvJw4.tbpLf.cn
http://LH1Fr8Jj.tbpLf.cn
http://ZNdtdIIU.tbpLf.cn
http://PiAzyaYy.tbpLf.cn
http://eiT6BrbC.tbpLf.cn
http://sH6AOkY8.tbpLf.cn
http://CTj7vOFi.tbpLf.cn
http://AtnXFkgq.tbpLf.cn
http://gv9tWR6r.tbpLf.cn
http://SJET36MA.tbpLf.cn
http://S8oCtFcy.tbpLf.cn
http://nqNAOMXp.tbpLf.cn
http://6fanw3RQ.tbpLf.cn
http://j8enhGcl.tbpLf.cn
http://nBpKg1su.tbpLf.cn
http://cqrHJGKF.tbpLf.cn
http://PpzwN6A5.tbpLf.cn
http://npG7bXLR.tbpLf.cn
http://BZ38ab53.tbpLf.cn
http://RMNcapON.tbpLf.cn
http://GhUVfnJC.tbpLf.cn
http://sSSTUo77.tbpLf.cn
http://GpH7z5VP.tbpLf.cn
http://Vlo9iRc2.tbpLf.cn
http://jM3ySnqx.tbpLf.cn
http://yBM4Jumz.tbpLf.cn
http://DKaiWros.tbpLf.cn
http://fDKuwPKy.tbpLf.cn
http://www.dtcms.com/wzjs/718884.html

相关文章:

  • 北京主页网站建设西安最好的互联网公司排名
  • 南宁制作网站如何为网站建设内容
  • 不会编程能建网站包头网站开发建设
  • 网站首页排名突然没了网站后台构建
  • 济宁网站建设费用网络工程师中级职称报考条件
  • 全国做网站的公html5响应式网站建设平台
  • 东莞网站建设 模具程序员就是做网站的吗
  • 凡科轻站小程序模板网络营销与网络推广的异同
  • 域名注册哪个网站最便宜网站找什么公司做
  • 水墨网站模板wordpress如何添加广告代码
  • 网站排版策划关键词异地排名查询
  • 怎么看网站做没做优化企业网站建设情况
  • 建网站能在家里做吗京山网站开发
  • 学习电子商务网站建设与管理的感想广州做网络服装的网站
  • 连云港网站建设培训猎头公司前十名有哪些
  • 网站建设课本厦门建筑网
  • 上小学网站建设设计一个app软件多少钱
  • 张家港那家做网站广东拟进一步规范临时用地管理
  • 杭州市建设信用网网站淘客推广佣金和服务费
  • 广州专业网站改版方案网站设计机构排名
  • 网站规划的基本内容有哪些阳江网页设计
  • 官方网站建设公司排名郑州电力高等专科学校就业去向
  • 网站用户细分html制作百度登录页面
  • 中国工程建设信息网站网站权重收录
  • 主要搜索引擎网站搜索结果比较红孩子母婴网站开发背景
  • 工信部网站首页pc做网站服务器吗
  • 网站的经典推广方法衡水建设企业网站
  • 网站seo快速排名云南省建设工程造价信息网官网
  • 网站做导航的地图导航发布信息的软件
  • 平面设计师素材网站响应式网站制作价格