• 【freertos】001linux环境准备


    前言

    主要是freertos。
    为啥突然要写这玩意的笔记?
    因为工作需要,所以在空闲时间抽时间写下,这个系列可能随时断更,因为作者在学和在做的主要还是网络协议栈。

    特别提示:
    有条件的同学们建议使用keil来在线仿真freertos,方便学习,可以直观地看到CPU寄存器组信息、实时栈信息、各个任务详细信息、各个任务占用CPU的时间轴图表等等。
    作者因为想在公司空闲时间和在家里空闲时间都能写下这些笔记,所以就不用keil了,因为版权原因。

    资源

    1. 用于FreeRTOS的Posix/Linux模拟器演示
    2. freertos学习官网
    3. 李柱明博客:https://www.cnblogs.com/lizhuming/p/16062433.html

    说明

    本系列是在 posix/linux 模拟器上跑freertos;
    所以本次freertos实现的接口层是使用posix标准实现。
    本节环境搭建对新手不太友好,偏向理论化,但是遇到的问题都比较简单,所以搭建环境不做细致教程。
    后面代码分析可以比较细化。

    注意:

    • 不要与freertos+posix library混淆,因为两者是相反的。
    • freertos+posix library 是freertos本地的一个接口库,是为了让posix标准的原因程序在freertos上跑。
    • 而 posix/linux 接口是为了让freertos在posix操作系统上跑。

    大概思路

    编译一个可跑的出现主要需要以下文件:

    1. 内核:freertos kernel相关文件;
    2. 接口:portable;
    3. 用户文件:main.c、freertos_config.h文件;
    4. 编译脚本:在linux使用GCC。

    提示:

    1. 其实上述资料都可以在freertos官网上,下载源码,在源码中找出。
    2. 其中接口文件只需要找到对应编译器下的即可。
    3. makefile可以自己写。

    实战

    1. 获取源码

    官网或者github下。

    注意:
    如果去官网下,可能找不到githubusercontent.com相关的服务器;
    那可以在ipaddress.com查找,然后ping一下,能ping通就把这个IP和对应的域名写到本地设备的hosts文件中固定下来。

    2. 组建自己的工程

    先创建两个文件夹:

    1. kernel:
      • 参考命令:mkdir kernel
      • 存放freertos内核相关文件,包括内核源码、接口文件等。
    2. user:
      • 参考命令:mkdir user
      • 存放用户文件。

    创建好文件夹后,拉取相关文件:

    1. kernel:
      • 把内核的头文件全部拉取:FreeRTOS/Source/include
      • 把内核中源文件全部拉取(这部分可以按需拉取):FreeRTOS/Source/*.c
      • 拉取对应接口文件和内存管理文件到kernel/portable下:
        • GCC的Posix标准接口:FreeRTOS/Source/portable/ThirdParty/GCC/Posix/
        • FreeRTOS/Source/portable/MemMang/
    2. user:
      • 创建main.c;(记得写上基本内容、可参考freertos提供的demo中的main.c)
      • 拷贝 FreeRTOS/Demo/POSIX_GCC 下的FreeRTOSConfig.h

    准备好相关文件后,准备编译脚本。
    编译脚本的实现有很多种,按自己习惯实现。
    在编译过程中遇到问题,按提示解决即可。

    最终工程大致布局如下:

    3. 编译&运行

    编译成功

    运行:

  • 相关阅读:
    排序算法说明
    easyExcel 读写excel表格
    POI 读写excel表格
    JVM虚拟机详解
    SSM相关的配置文件模板
    SSM 统一异常处理
    ssm框架实现发送邮件
    springboot发送邮件
    SpringBoot Ajax请求Json数据
    协程(Coroutine)(二)
  • 原文地址:https://www.cnblogs.com/lizhuming/p/16062433.html
Copyright © 2020-2023  润新知