【CSDN精选】基于龙芯1B200的rt-thread基础

本文介绍了如何在基于龙芯的工程上移植RT-Thread操作系统,并详细说明了单线程的创建过程,包括使用龙芯IDE、配置项目以及关键函数的调用。作者强调了虽然开发环境存在一些缺点,但RT-Thread的移植非常简单。
摘要由CSDN通过智能技术生成

       

此篇博客主要解决一下两个问题! 

目录

〇、介绍

一、基于龙芯工程的rt-thread操作系统的移植。

二、单线程创建



〇、介绍

龙芯(Loongson):

龙芯是中国的一款自主设计的处理器架构,由中国科学院计算技术研究所(ICT)主导研发。龙芯处理器最早的版本为Loongson-1,其后发展出Loongson-2、Loongson-3等系列。这些处理器主要用于高性能计算、服务器、嵌入式系统等领域。Loongson架构具有独立知识产权,是中国自主研发的一种指令集架构。龙芯的设计旨在实现对计算机体系结构的自主掌握,减少对外部知识产权的依赖。

RT-Thread操作系统:

RT-Thread(Real-Time Thread)是一个开源的实时嵌入式操作系统。它具有轻量级、可裁剪、可移植、开源的特点,广泛应用于嵌入式系统、物联网设备、工控系统等领域。RT-Thread的设计目标是提供一个简单而灵活的实时操作系统,以满足不同嵌入式设备的需求。

RT-Thread的特点包括:

        实时性: RT-Thread专注于实时性,提供了实时调度和响应机制,适用于对任务响应时间要求较高的场景。

        轻量级: RT-Thread的内核设计简单,占用资源相对较小,适用于资源有限的嵌入式系统。

        模块化: RT-Thread采用模块化设计,支持动态添加和移除模块,用户可以根据需求裁剪内核和组件。

        开源: RT-Thread使用Apache License 2.0许可,允许用户根据开源协议自由使用、修改和分发。

RT-Thread支持多种处理器架构,包括ARM、MIPS、X86等,也可以运行在仿真器和虚拟机上。它有一个活跃的社区,提供了许多软件包和应用示例,方便开发者在嵌入式系统中使用。

       

一、基于龙芯工程的rt-thread操作系统的移植。

        我们目前只能使用龙芯自己研发的ide进行开发,ide虽然垃圾的一批虽然它 跳转定义和声明不方便、语法错误不能实时监测、报错信息不明确、文档和支持不足、性能差、功能简单。。。的缺点。

        但是!人家移植rt-thread操作系统是非常的简单。

第一步、打开龙芯ide

第二步、 新建项目向导

 第三步、选择自己的单片机型号和工具链,操作系统一栏选择rt-thread

目前来说只创建一个线程用不着组件 

 

核对一下信息 ,后点击确定。

 

二、单线程创建

关键函数

rt_thread_t rt_thread_create(const char *name,                //线程名字
                             void (*entry)(void *parameter),  //线程入口函数
                             void       *parameter,           //线程入口函数参数
                             rt_uint32_t stack_size,          //分配线程的堆栈大小
                             rt_uint8_t  priority,     //线程的优先级(0优先级代表最高优先级)
                             rt_uint32_t tick)        //线程所分配的时间片

这是创建一个简单线程的函数,学会怎么用他,那你基本上就入门啦!

实验效果展示

编译成功!

下载成功!

我勒个韶钢啊!这也太神了!

咱们这一期就讲到这里,下次有空了再更,有什么问题请私信UP哦。

源码在此↘

/*
 * RT-Thread Application
 */

#include <time.h>

#include "rtthread.h"

//-------------------------------------------------------------------------------------------------
// BSP
//-------------------------------------------------------------------------------------------------

#include "bsp.h"

//-------------------------------------------------------------------------------------------------
// Simple demo of task
//-------------------------------------------------------------------------------------------------

/*定义线程控制块*/
static rt_thread_t m_demo_thread = NULL;

static void demo_thread(void *arg)
{
	unsigned int tickcount;

    for ( ; ; )
    {
        tickcount = rt_tick_get();

        rt_kprintf("tick count = %i\r\n", tickcount);
        rt_kprintf("Welcome to use LS1B!\n\n");

        rt_thread_delay(500);
    }
}

//-------------------------------------------------------------------------------------------------

int main(int argc, char** argv)
{
	rt_kprintf("\r\nWelcome to RT-Thread.\r\n\r\n");

    m_demo_thread = rt_thread_create("demothread",  //线程名字
                                      demo_thread,  //线程入口函数
                                      NULL,         //线程入口函数参数
                                      1024,          //分配线程的堆栈大小
                                      10,           //线程的优先级(0优先级代表最高优先级)
                                      10);          //线程所分配的时间片

    if (m_demo_thread == NULL)
    	rt_kprintf("create demo thread fail!\r\n");
	else   //启动线程,开启调度
    	rt_thread_startup(m_demo_thread);


    return 0;
}

剧透一下,咱们下期讲多线程如何编写程序。

火箭升空的过程中,会逐步解体释放没有燃料的底座,用于减少负重,让达到逃逸速度的舱体飞行更远的太空,而达到太空的舱体在轨道上旋转,当面朝家乡的时候,总是隐约的看到那些,被释放掉的,空空的燃料的底座。

人生就是做加减法,你要减去的东西都是必然的,彼时做了决定就做了改变,此时再回首往事已如烟,你只能继续用你当下的状态,再去做新的加减法。

  • 25
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值