RT-Thread是一个国产开源的实时操作系统,支持MCU多,外设丰富。值得学习

  • 下载地址:http://www.rt-thread.org/page/31.html ,解压可以得到一下目录结构:
    |-- bsp
    |-- components
    |-- documentation
    |-- include
    |-- libcpu
    |—src
    其中bsp文件夹包括对各个MCU的支持,这里我们先拿simulator这个文件夹的模拟器来找找感觉。
  • 按照官方提供的《RT-Thread编程指南》,构建项目工程需要用到SCons,而SCons需要Python2.x的支持。下面主要简介一下windows下的配置
    • Python
      1.下载地址:https://www.python.org/getit/,一定要下2.x的那个,3.5和2.7 语法不一样,不兼容。
      2.Python按照正在的顺序安装就行,安装完成后要进行这样的步骤(尤其是64位操作系统),不然后面安装SCons会提示“No Python installation found in the registry”。
      检查注册表里面的这个项的默认值是指向你安装Python的目录(例如“C:\\Python27”):
      HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Python/PythonCore/2.7/InstallPath (64位特有)
      HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/2.7/InstallPath
    • SCons
      1.下载地址:http://www.scons.org/ ,点击右边的download跳转到sourceforge下载,安装的时候记得用管理员权限(尤其是win8/10的电脑)

      2.安装完成后把“C:\Python27\Scripts”和“C:\Python27”(C:\Python27替换为你的Python安装目录)添加到环境变量PATH中
      3.然后你在cmd里面运行scons出现这样的提示就说明可以了
    • 生成VS项目
      1.接下来定位到“rt-thread-2.0.1\bsp\simulator”,里面虽然有2个vc的工程文件,但是都是空的,需要用SCons生成修改的工程文件

      2.先打开rtconfig.py,把msvc那一段的EXEC_PATH改成你的VS的nmake的位置,一般是”VS安装目录/VC/BIN/NMAKE.exe”

      3.然后定位到simulator的目录,在输入“SCons --target=vs -s”,就会生成新的工程文件
  • hello world
    1.找到application.c,将原来的修改成如下代码:
    void entry(void *parameter)
    {
    int i = ;
    rt_kprintf("%dHZ\nHello World\n", RT_TICK_PER_SECOND);
    while (i++)
    {
    rt_thread_delay();
    rt_kprintf("%d\t",i);
    }
    } int rt_application_init()
    {
    rt_thread_t tid;
    tid = rt_thread_create("init",
    rt_init_thread_entry, RT_NULL,
    , RT_THREAD_PRIORITY_MAX / , );
    if (tid != RT_NULL)
    rt_thread_startup(tid); rt_thread_startup(rt_thread_create("GGG", entry, NULL, , , )); return ;
    }

    2.然后运行就能出现这样的界面了:

RT-Thread入门和模拟器的配置生成的更多相关文章

  1. RT Thread 通过ENV来配置SFUD,操作SPI Flash

    本实验基于正点原子stm32f4探索者板子 请移步我的RT Thread论坛帖子. https://www.rt-thread.org/qa/forum.php?mod=viewthread& ...

  2. PHP入门及服务环境配置(Nginx+PHP)

    PHP入门及服务环境配置(Nginx+PHP) PHP入门 PHP维基百科: PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一 ...

  3. Asp.Net SignalR 使用记录 技术回炉重造-总纲 动态类型dynamic转换为特定类型T的方案 通过对象方法获取委托_C#反射获取委托_ .net core入门-跨域访问配置

    Asp.Net SignalR 使用记录   工作上遇到一个推送消息的功能的实现.本着面向百度编程的思想.网上百度了一大堆.主要的实现方式是原生的WebSocket,和SignalR,再次写一个关于A ...

  4. MVC5+EF6 入门完整教程13 -- 动态生成多级菜单

    稍微有一定复杂性的系统,多级菜单都是一个必备组件. 本篇专题讲述如何生成动态多级菜单的通用做法. 我们不用任何第三方的组件,完全自己构建灵活通用的多级菜单. 需要达成的效果:容易复用,可以根据mode ...

  5. 前端引擎初步设计稿 -通过配置生成动态页面 ,LandaSugar平台 .NET-C#-MVC

    公司准备开发出一款项目开发平台 LandaSugar,分为 前端引擎.工作引擎.数据引擎 三大块,开发人员只需要对三大模块进行相应的配置便能够完成一个定制项目的开发. 听起来貌似是异想天开,但是是否真 ...

  6. MyCat 入门:漫谈 MyCat 配置系统

    文章首发于[博客园-陈树义],点击跳转到原文<MyCat 入门:漫谈 MyCat 配置系统> 上篇文章<MyCat 启蒙:分布式系统的数据库架构演变>中,我们通过一个项目从零到 ...

  7. Redis入门 -- Redis安装与配置

    Redis入门 -- Redis安装与配置 Redis的安装 Redis的安装,我这里使用的是虚拟机. 为了让主机和虚拟机之间可以顺利通信,按照以下步骤进行: 1. 将网络连接模式改为桥接 2. re ...

  8. SpringBoot入门之内嵌Tomcat配置

    spring boot默认web程序启用tomcat内嵌容器tomcat,监听8080端口,servletPath默认为 / .需要用到的就是端口.上下文路径的修改,在spring boot中其修改方 ...

  9. Linux基础入门之网络属性配置

    Linux基础入门之网络属性配置 摘要 Linux网络属性配置,最根本的就是ip和子网掩码(netmask),子网掩码是用来让本地主机来判断通信目标是否是本地网络内主机的,从而采取不同的通信机制. L ...

随机推荐

  1. CLR执行模型

    好好学习底层运行机制,从CLR via C# 开始. CLR的执行模型: CLR:Common Language Runtime,是一个可由多种编程语言使用的"运行时".CLR的核 ...

  2. 启动Genymotion时报错Failed to initialize backend EGL display

    在启动Genymotion的时候报错: video card说的是显卡,你的显卡可能不支持  OpenGL2.0,或者你装的驱动有问题. 解决办法:将驱动重新安装一下. 可直接下载一个如“驱动人生“一 ...

  3. js组件在线编辑器插件、图表库插件、文件树插件

    在线编辑器插件: 一.kindeditor 二.UEditor 图表库插件: 一.echart 二.highchart 文件树插件: 一.zTree -- jQuery 树插件 http://www. ...

  4. [Java 基础]字符串

    String类 实例化String对象 String 对象初始化方式有多种. 如下代码中,各种初始化方式的效果是一样的,初始化后,String 对象的内容为 "hello" . p ...

  5. 数论 - Funny scales(SPOJ - SCALE)

    Funny scales Problem's Link ------------------------------------------------------------------------ ...

  6. 代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能

    在代码生成工具的各种功能规划中,我们一向以客户的需求作为驱动,因此也会根据需要增加一些特殊的功能或者处理.在实际的开发中,虽然我们一般以具体的表进行具体业务开发,但是有些客户提出有时候视图开发也是很常 ...

  7. C# 文件 文件夹

    //判断文件夹(路径)是否存在 if (Directory.Exists(Path)) { } //获取文件大小 FileInfo file = new FileInfo(labOfPath); si ...

  8. Android Volley框架的使用(4)

    5. 取消请求 可以通过请求的setTag()方法给请求设置TAG,需要取消这些请求时,用请求队列的cancelAll()方法取消带有特定TAG的请求. 为请求设置TAG: stringRequest ...

  9. python mysql Connect Pool mysql连接池 (201

     easy_install mysql-connector-python >>>import mysql.connector as conner >>> conn ...

  10. Time series database

    https://en.wikipedia.org/wiki/Time_series_database https://influxdb.com/docs/v0.9/introduction/getti ...