rt_device的结构 rt_device,是内核对象派生出来的,因此,有些操作,就是在操作内核对象。上几篇笔记研究内核对象的管理,现在发现,看device.c文件,很容易能看懂。 rt_device的使用 RT-Thread 的PIN、CAN、Serial、I2C、SPI、PM等,都抽象成一种设备模型。这些设备模型,派生于rt_device即可。 pin设备模型:结构如下:...
如果把链表插入到【尾部】后面,就要先把链表指针移到尾部,再执行:rt_list_insert_after. 查看内核对象 其实,thread,device等对象,都是内核对象【派生】出来的。 RT-Thread 提供list_thread、list_device等,查看内核的对象。 查看线程初始化【次序】,看看最后打印的线程,就是【最先】首个创建的线程。 一般从链表【...
如果把链表插入到【尾部】后面,就要先把链表指针移到尾部,再执行:rt_list_insert_after. 查看内核对象 其实,thread,device等对象,都是内核对象【派生】出来的。 RT-Thread 提供list_thread、list_device等,查看内核的对象。 查看线程初始化【次序】,看看最后打印的线程,就是【最先】首个创建的线程。 一般从链表【...
2. 进入rt-thread\bsp\stm32f4xx-HAL目录,在env命令行中输入menuconfig,进入配置界面,使用menuconfig工具(学习如何使用:https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=5699&extra=page%3D2)配置工程。 1) 配置shell使用串口1:RT-Thread Kernel ---> Kernel Device Object ---> 修改the device...
RT-Thread 提供list_thread、list_device等,查看内核的对象。 查看线程初始化【次序】,看看最后打印的线程,就是【最先】首个创建的线程。 一般从链表【头部】开始遍历各个链表节点。如下:最后一个节点是:main线程. 其实,main线程,是第一个创建的。 登录后复制msh / >list_thread ...
1.2 创建RT-Thread项目 和上一篇文章类似,首先打开RT-Thread Env工具, 并跳转到rt-thread源码的bsp/stm32/stm32f407-atk-explorer子目录。 然后,使用如下scons命令,创建RT-Thtread项目: scons --dist --target=mdk --project-name=rtt_sdio --project-path=D:\Hardware\ST\ExplorerV3_STM32F407\Elecfans_03...
RT-Thread 内核学习笔记 - 理解defunct僵尸线程 前言 最近在看内核源码,暂时避开费脑力的任务调度、内存管理等较复杂的实现方法,发现rt_device设备框架实现很简单。 rt_device,设备管理的框架(模型),提供标准的设备操作接口API,一些外设,可以抽象成设备,进行统一的管理操作,如LCD、Touch、Sensor等。
编译烧录代码,使用list_device查看设备,可以看到注册的设备已经包含了hwtimer这个设备。 运行自带的shell命令hwtimer_sample,该命令会运行5s的定时,查看readme文档 四、总结 1、基础篇包含UART、PIN、SPI/QSPI、HWTIMER、PWM、RTC、ADC、DAC、WDT这些外设,本文以先楫适配的HWTIMER驱动进行说明,能感受到先楫对于rtthread驱...
其中device.c与pin.c属于RT-Thread的范畴,drv_gpio.c与具体的硬件有关,这个文件里操控的就是与硬件有关的东西,如: 程序中用到的rt_pin_mode及rt_pin_write等都是PIN设备管理接口。PIN设备管理有如下几个接口: 设置引脚模式: RT-Thread 提供的引脚编号需要和芯片的引脚号区分开来,它们并不是同一个概念,引脚...
version-showRT-Thread version information list_thread-list thread …… 运行hello 命令,运行结果如下所示: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 msh/>hello hello RT_Thread!msh/> 导出有参数的命令时,函数的入参为 int argc 和 char**argv。argc 表示参数的个数,argv 表示命令行参数字符串...