简介 RT-Thread诞生于2006年,是一款以开源、中立、社区化发展起来的物联网操作系统。 RT-Thread主要采用 C 语言编写,浅显易懂,且具有方便移植的特性(可快速移植到多种主流 MCU 及模组芯片上)。RT-Thread把面向对象的设计方法应用到实时系统设计中,使得代码风格优雅、架构清晰、系统模块化并且可裁剪性非常好。 RT-...
在main函数中编写如下代码进行点灯。 1/*2*Copyright(c)2006-2022,RT-ThreadDevelopmentTeam3*4*SPDX-License-Identifier:Apache-2.05*6*ChangeLogs:7*DateAuthorNotes8*2022-12-29RT-Threadfirstversion9*/10#include11#include12#include13/*定义LED引脚*/14#ifndefLED_B_PIN15#defineLED_B_PINGET_PIN(H,10...
现在定制的 SoC,运行了基本的 C 程序,跑起来了 Rust,距离 RT-Thread 的支持也只差最后一步了。未来还可以考虑挂上硬件加速器,例如 TRIVIUM 和 PRESENT,矩阵运算加速等。 虽然这些 Side Project 跟自己的科研 (CARLA Autonomous Driving & Adversarial Attack) 关系不大,但是现在自己对深度学习模型的训练、部署,以...
STM32上I2C3_SCL在PA8,I2C_SDA在PC9,DRDY数据准备引脚在PG3,复位RSTN引脚在PG6,接着在CubeMX进行相应的配置。 之后我们可以看到我们在CubeMX中配置的东西实际上都在board文件之中,其中board.c文件里面为我们的时钟树配置,stm32f4xx_hal_msp.c里的就是我们上面设置的那些引脚配置 这里就是刚刚I2C3配置的函数,...
而设置栈地址也就是sp的地址,仅仅是为了在操作系统线程还未启动调度时,最开始的栈空间。根据c语言的函数调用规则,c语言进行函数调用时,都需要压栈和出栈,这段栈空间是用户自行分配的。 所以需要注意点是rt-thread启动调度前也是有一个栈空间的,调度启动后该栈空间不被使用,每个线程栈空间才生效。
挂载文件系统的源代码位于qemu-vexpress-a9\applications\mnt.c中。在实际代码中会将块设备sd0中的文件系统挂载到根目录/上。 #include <rtthread.h> #ifdef RT_USING_DFS #include <dfs_fs.h> int mnt_init(void) { rt_thread_delay(RT_TICK_PER_SECOND); ...
在任务调度器的实现上,μC/OS-II和RT-Thread都采用了位图调度(bitmap scheduling),任务优先级的值越小则代表具有越高的优先级,主要区别在于实现形式,是采用多级队列的形式,还是纯位图的形式。在位图调度下,每当需要进行调度时,从最低位向最高位查找出第一个置 1 的位的所在位置,即为当前最高优先级,然后从对...
1. C语言解释器模式, 为行文方便称之为c-style; 2. 传统命令行模式,此模式又称为msh(module shell)。C语言表达式解释模式下, finsh能够解析执行大部分C语言的表达式,并使用类似C语言的函数调用方式访问系统中的函数及全局变量,此外它也能够通过命令行方式创建变量。在msh模式下,finsh运行方式类似于dos/bash等传统...
kehuadong rt-thread模糊到清晰系列: ipc.c #include <rtthread.h>#include<rthw.h>#ifdef RT_USING_HOOKexternvoid(*rt_object_trytake_hook)(structrt_object *object);externvoid(*rt_object_take_hook)(structrt_object *object);externvoid(*rt_object_put_hook)(structrt_object *object);#endif/**...
代码清单:移植RTT-5 修改(1):在user目录下新建一个board.h头文件,用来包含固件库和BSP相关的头文件和存放board.c里面的函数声明,具体见 代码清单:移植RTT-6。代码清单:移植RTT-6 board.h文件内容 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #ifndef __BOARD_H__ ...