手把手教你如何在没有开发板的情况下学习RT-Thread——RT-Thread simulator的使用

前言

细心的朋友可能发现,RT-Thread的bsp目录下有一个simulator文件夹,simulator可以用于模拟开发板环境进行学习RT-Thread,本文将详细讲述如何在没有开发板环境下学习RT-Thread。使用visual studio 2015作为编译器,因为在这里我还搭建了虚拟LCD。

一、搭建RT-Thread simulator环境

1、下载RT-Thread源码

我是在Windows环境下开发的,使用git工具从码云克隆RT-Thread源代码,我克隆的是最新版本,这里推荐使用码云克隆,因为这样会快很多。
在这里插入图片描述

2、使用ENV工具运行scons命令生成Visual Studio工程

(1)、打开\rt-thread\bsp\目录下的simulator文件夹,可以看到有vs2005和vs2012工程模板,可以阅读readme.txt了解如何搭建环境。
在这里插入图片描述

(2)、使用ENV工具运行scons --target=vs -s或者scons --target=vs命令生成vs2005工程。

在这里插入图片描述

(3)、生成工程之后,发现多了一个如下的文件,使用VS2015打开它。
在这里插入图片描述

3、使用Visual Studio 2015编译

(1)、使用VS2015打开project.vcproj文件,弹出如下窗口都点击确定。
在这里插入图片描述
在这里插入图片描述

(2)、按快捷键F5进行编译,编译完成之后会弹出如下窗口,至此环境搭建完成,可以开始进行RT-Thread的学习了,需要添加自己的文件,可以在解决方案资源管理器添加。
在这里插入图片描述

在这里插入图片描述


二、编写一个线程测试

1、创建一个线程

(1)、打开application.c文件,在里面添加如下代码创建一个线程。
在这里插入图片描述

void test_thread_entry(void *parameter)
{
	while (1)
	{
		rt_kprintf("Hello RT-Thread Simulator\n");
		rt_thread_mdelay(500);
	}
}

void test_thread_start(void)
{
	rt_thread_t test_thread = RT_NULL;;

	test_thread = rt_thread_create("test",
		test_thread_entry,
		RT_NULL,
		512,
		RT_THREAD_PRIORITY_MAX / 2 - 5,
		50);

	if (test_thread != RT_NULL)
	{
		rt_thread_startup(test_thread);
	}
}

(2)、将test_thread_start放在rt_init_thread_entry里面。

在这里插入图片描述

2、编译运行工程

可以看到运行效果如下,线程能正常创建。
在这里插入图片描述


三、移植虚拟LCD

1、下载虚拟LCD文件

https://download.csdn.net/download/Sanjay_Wu/12088833

https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=423298#lastpost

2、移植到VS工程

(1)、下载后解压压缩包文件,可以看到包含如下文件。
在这里插入图片描述
(2)、将这些文件放在simulator目录下。
在这里插入图片描述

(3)、关闭原先的VS工程,使用ENV工具重新运行scons --target=vs -s命令生成工程。

(4)、打开新生成的VS工程,可以看到相关文件已经加入工程了。
在这里插入图片描述

3、初始化虚拟LCD

(1)、打开board.h文件,在里面包含lcd.h头文件。
在这里插入图片描述

(2)、打开board.c文件,rt_hw_board_init函数里面加入LCD初始化函数。
在这里插入图片描述

4、测试LCD显示字符串

(1)、在application.ctest_thread_entry加入这段代码。

lcd_show_string(100, 100, (8 * rt_strlen("Hello RT-Thread Simulator")), 16, "Hello RT-Thread Simulator", 16, 1);

在这里插入图片描述

(2)、按快捷键F5编译工程,可以看到已经生成虚拟LCD界面,并显示字符串在上面。
在这里插入图片描述

5、修改虚拟LCD分辨率

(1)、打开lcd.h文件,找到如下代码,可以根据实际需要修改分辨率大小。
在这里插入图片描述

(2)、修改后效果,例如把分辨率改为320*320。

#define LCD_WIDTH       240
#define LCD_HEIGHT      240

在这里插入图片描述

发布了54 篇原创文章 · 获赞 92 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/Sanjay_Wu/article/details/103880775