嵌入式实时操作系统的学习记录。其实之前也学过一些不过只是浮于表面,就是运行几个示例代码看个结果,学了又好像没学。
所以,想系统地学习和应用RT-Thread,就得踏踏实实学习其内涵。
一、工程结构展示
application:RT-Thread的用户例程
drivers:RT-Thread的驱动,不同平台的底层驱动具体实现
Libraries:ST的STM32固件库文件
packages:示例代码
rt-thread:Rt-Thread的源文件
|-components:RT-Thread的组件代码
|-include:RT-Thread内核的头文件
|-libcpu:各类芯片的移植代码
|-src:RT-Thread内核的源文件
二、仿真环境
1、工程编译完成后,点击Debug按钮进入仿真环境(或者Ctrl+F5)
2、仿真界面如下所示:
3、按F5运行仿真,点击view-serial Windows-UART1#,就能打开串口1的窗口,可以看到模拟运行的结果,输出了RT-Thread的Logo
4、输入help,回车,就能看到当前系统所支持的全部命令(左侧为命令),此处只截出部分。
三、闪烁的Led仿真实验
1、在mian.c文件中编辑代码如下
#include <rtthread.h>
#include <rtdevice.h>
#define LED_PIN 3 //宏定义pin3为LED_PIN
int main(void)
{
return 0;
}
int led(void)
{
rt_uint8_t count;
rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT); //将管脚LED_PIN设置为输出模式
for(count = 0 ; count < 10 ;count++) //count++循环0-9
{
rt_pin_write(LED_PIN, PIN_HIGH); //对LEN_PIN写入高电平
rt_kprintf("led on, count : %d\r\n", count); //打印led on,count的数值
rt_thread_mdelay(500); //延时500ms
rt_pin_write(LED_PIN, PIN_LOW); //对LEN_PIN写入低电平
rt_kprintf("led off\r\n"); //打印led off
rt_thread_mdelay(500); //延时500ms
}
return 0;
}
MSH_CMD_EXPORT(led, RT-Thread first led sample); //这样就可在mah >下执行led的命令运行led()函数
其中,rt_pin_mode()在pin.c文件中定义如下:
rt_pin_write()在pin.c文件中定义如下:
2、运行
根据第二部分的笔记进入仿真环境,按F5运行,在msh命令行输入led
回车即可输出结果,打印count数值并交替显示led on和led off
开启RT-Thread学习之旅!