• 换个环境运行-将FreeRTOS运行在linux上【转】


    转自:https://blog.csdn.net/q361750389/article/details/104105862

    前言:了解FreeRTOS第一步肯定是搭建可以运行的环境,不管是移植到STM32还是哪里都阔以,有自己敲代码的实践总比只捧着书看来的印象深刻,所以为了方便,本猿查阅点资料,把FreeRTOS运行在linux上来方便学习!


    本篇目标:搭建FreeRTOS可用的环境来运行,并学习基本的一些功能。
    材料准备:


    文件介绍

    1. 官方这份 FreeRTOS-simulator-for-Linux 资料demo里面包含了很多linux外设和FreeRTOS的使用,但是内核版本很低,很久没有往上迭代了,有些参数发生了变化,也不方便于最新版本的学习,所以只拿来作为移植的参考。
    2. 修改后的移植工程 Freertos_in_linux 借鉴了官方的移植,改变了一些编译结构,将demo分成不同的文件夹进行编译测试,同时将FreeRTOS的版本更新到了v10.2.1,方便与最新的进行同步学习了解。
    .
    ├── output
    ├── Posix_GCC_Simulator
    │   ├── FreeRTOS_Posix
    │   │   ├── config.h				//demo 配置文件
    │   │   ├── Debug					//demo 编译相关文件
    │   │   ├── FreeRTOSConfig.h		//FreeRTOS 配置文件
    │   │   ├── FreeRTOS_Kernel			//FreeRTOS 内核文件
    │   │   ├── Release
    │   │   └── study_demo				//demo 工程,直接脚本可以编译,待更新,详细见例程介绍
    │   └── Readme.txt
    ├── Posix_GCC_Simulator_6.0.4.zip
    └── README.md

    运行

    # 编译
    cd Posix_GCC_Simulator/FreeRTOS_Posix/study_demo/rtos_start_1/
    sh build.sh
    
    # 运行
    ./rtos_start_1_app.bin
    
    # 清除
    sh build.sh clean
    

    运行输出

    [13:18:49] jinhao:rtos_start_1 git:(master) $ ./rtos_start_1_app.bin 
    [log ] main.c:79 | Freertos v10.2.1 start 
    Running as PID: 9367
    Timer Resolution for Run TimeStats is 100 ticks per second.
    [log ] main.c:43 | creat_task
    [log ] main.c:55 | this is creat task:idle-0
    [log ] main.c:55 | this is creat task:idle-1
    [log ] main.c:55 | this is creat task:idle-2
    [log ] main.c:55 | this is creat task:idle-3
    [log ] main.c:55 | this is creat task:idle-4
    [log ] main.c:55 | this is creat task:idle-5
    [log ] main.c:55 | this is creat task:idle-6
    [log ] main.c:55 | this is creat task:idle-7
    [log ] main.c:55 | this is creat task:idle-8
    [log ] main.c:55 | this is creat task:idle-9
    [log ] main.c:63 | delete creat task
    

    例程更新ing

    .
    ├── rtos_start_1									//rtos的启动demo
    ├── rtos_task_2										//rtos任务的使用和任务资源情况查看
    ├── rtos_message_3							//rtos消息队列的使用
    ├── rtos_sem_4										//rtos信号量的使用
    ├── rtos_message_second_5			//rtos消息队列的另一种使用
    ├── rtos_mutex_6									//rtos互斥锁的使用
    ├── rtos_event_7									//rtos事件的使用
    └── rtos_timer_8									//rtos定时器的使用
    

    小结

    后续物联网的一些应用工程可以直接搭建在demo上面,毕竟linux的资源还是很足够的,用于了解协议数据还是比较方便快捷的。

    Tuu

    【作者】张昺华
    【大饼教你学系列】https://edu.csdn.net/course/detail/10393
    【新浪微博】 张昺华--sky
    【twitter】 @sky2030_
    【微信公众号】 张昺华
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    字蛛webfont 安装及使用方法
    二级菜单被banner遮住的解决方法
    空a标签在IE下无效之解决方法
    wamp新建虚拟目录无法运行的解决方法
    js中this关键字用法详解
    css3新特性
    css手册中各种符号的意思
    gradient 渐变
    ie6-ie8中不支持opacity透明度的解决方法
    mysql给定一个随机数
  • 原文地址:https://www.cnblogs.com/sky-heaven/p/13914272.html
Copyright © 2020-2023  润新知