鸿 网 互 联 www.68idc.cn

RT-Thread入门和模拟器的配置生成

来源:互联网 作者:佚名 时间:2018-02-03 17:16
RT-Thread是一个国产开源的实时操作系统,支持MCU多,外设丰富。值得学习 下载地址: http://www.rt-thread.org/page/31.html ,解压可以得到一下目录结构: |-- bsp |-- components |-- documentation |-- include |-- libcpu |src 其中bsp文件夹包括对各个

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的电脑)
      image
      2.安装完成后把“C:\Python27\Scripts”和“C:\Python27”(C:\Python27替换为你的Python安装目录)添加到环境变量PATH中
      3.然后你在cmd里面运行scons出现这样的提示就说明可以了
      image
    • 生成VS项目
      1.接下来定位到“rt-thread-2.0.1\bsp\simulator”,里面虽然有2个vc的工程文件,但是都是空的,需要用SCons生成修改的工程文件
      image
      2.先打开rtconfig.py,把msvc那一段的EXEC_PATH改成你的VS的nmake的位置,一般是”VS安装目录/VC/BIN/NMAKE.exe”
      image
      3.然后定位到simulator的目录,在输入“SCons --target=vs -s”,就会生成新的工程文件
      image
  • hello world
    1.找到application.c,将原来的修改成如下代码:
    void entry(void *parameter)
    {
        int i = 1;
        rt_kprintf("%dHZ\nHello World\n", RT_TICK_PER_SECOND);
        while (i++)
        {
            rt_thread_delay(50);
            rt_kprintf("%d\t",i);
        }
    }
    
    int rt_application_init()
    {
        rt_thread_t tid;
        tid = rt_thread_create("init",
                               rt_init_thread_entry, RT_NULL,
                               2048, RT_THREAD_PRIORITY_MAX / 3, 20);
        if (tid != RT_NULL)
            rt_thread_startup(tid);
    
        rt_thread_startup(rt_thread_create("GGG", entry, NULL, 512, 20, 1));
    
        return 0;
    }
    2.然后运行就能出现这样的界面了:
    image

网友评论
<