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. Dijkstra算法(一)之 C语言详解

    本章介绍迪杰斯特拉算法.和以往一样,本文会先对迪杰斯特拉算法的理论论知识进行介绍,然后给出C语言的实现.后续再分别给出C++和Java版本的实现. 目录 1. 迪杰斯特拉算法介绍 2. 迪杰斯特拉算法 ...

  2. Example of ApplicationContextAware in Spring--转

    原文地址:http://www.concretepage.com/spring/example_applicationcontextaware_spring In spring we can get ...

  3. C/C++:提升_头文件的使用

    C/C++:提升_头文件的使用 ◇写在前面 学到现在,很多人编写程序时只会使用一个文件.这样在代码量较小的时候,更利于表达程序,但是随着代码量的逐步增加,程序的思维逻辑不是我们一下子就可以完全理清的, ...

  4. Linux - 常用Shell命令

    珠玉在前,不再赘言. 对Linux新手非常有用的20个命令 对中级Linux用户非常有用的20个命令 对Linux专家非常有用的20个命令

  5. 在ASPNET中使用JS集锦

    (一).确认删除用法: 1. BtnDel.Attributes.Add("onclick","return confirm('"+"确认删除?&qu ...

  6. 单纯形方法(Simplex Method)

    最近在上最优理论这门课,刚开始是线性规划部分,主要的方法就是单纯形方法,学完之后做了一下大M算法和分段法的仿真,拿出来与大家分享一下.单纯形方法是求解线性规划问题的一种基本方法. 线性规划就是在一系列 ...

  7. 用redux完成事务清单

    今天再来一个例子,我们从组件开始. App.js import React, { PropTypes } from 'react' import { bindActionCreators } from ...

  8. Eclipse窗口总是在最前的解决办法

    Eclipse窗口总是在最前的解决办法 状况: Eclipse在偶然的情况下,会莫名其妙地保持在窗口的最前面,一直保持在最前:然后alt + tab,或者鼠标点击其他窗口.想切换/激活其他窗口时,根本 ...

  9. Android 获取可靠的手机编码

    项目中出现了将设备和用户信息进行绑定的需求.最先想到的是IMEI串码和IMSI串码.手机登陆的时候一直都没有问题.换了一个平板中之后IMEI和IMSI串码都获取不到了.后来查了一下原因,是因为平板上是 ...

  10. jquery的promise实践--连续加载图片

    在javascript设计模式实践之代理模式--图片预加载中用代理模式实现了图片预加载功能. 现在就更进一步,完成一个能够一张一张的连续图片加载的功能. 功能: 1.一张一张加载图片. 2.加载错误, ...