首页 > 其他分享 >RTThread的初始化宏(备忘录)

RTThread的初始化宏(备忘录)

时间:2023-05-01 15:34:07浏览次数:37  
标签:初始化 CMD RTThread 备忘录 INIT EXPORT MSH desc

RTThread的初始化流程

方便后续查找.

一.初始化接口

初始化顺序 接口 描述
1 INIT_BOARD_EXPORT(fn) 硬件的初始化,此时调度器还未启动
2 INIT_PREV_EXPORT(fn) 主要是用于纯软件的初始化、没有太多依赖的函数
3 INIT_DEVICE_EXPORT(fn) 外设驱动初始化相关,比如网卡设备
4 INIT_COMPONENT_EXPORT(fn) 组件初始化,比如文件系统或者LWIP
5 INIT_ENV_EXPORT(fn) 系统环境初始化,比如挂载文件系统
6 INIT_APP_EXPORT(fn) 应用初始化,比如GUI应用
官方默认的初始化有:

INIT_BOARD_EXPORT():

INIT_PREV_EXPORT():

INIT_DEVICE_EXPORT():

rtc_hw_rtc_init()

INIT_COMPONENT_EXPORT():

INIT_APP_EXPORT():

finsh_system_init

INIT_EXPORT():

好吧,它是上面宏的调用

借用官方的一张图
img

Finsh的一些宏指令:

序号 宏接口 宏定义
1 FINSH_FUNCTION_EXPORT(name, desc) FINSH_FUNCTION_EXPORT_CMD(name, name, desc)
2 FINSH_FUNCTION_EXPORT_ALIAS(name, alias, desc) FINSH_FUNCTION_EXPORT_CMD(name, alias, desc)
3 MSH_CMD_EXPORT(command, desc)
上面这些宏函数,只实现了MSH_CMD_EXPORT()
 /*是有实现的*/
 #define MSH_FUNCTION_EXPORT_CMD(name, cmd, desc) {...}

/*常用命令*/
 #define MSH_CMD_EXPORT(command, desc)                   MSH_FUNCTION_EXPORT_CMD(command, command, desc)
 #define MSH_CMD_EXPORT_ALIAS(command, alias, desc)      MSH_FUNCTION_EXPORT_CMD(command, alias, desc)

其它

还有一个EXPORT宏用来向外声明函数:
RTM_EXPORT(fn)
但是这个没启用

标签:初始化,CMD,RTThread,备忘录,INIT,EXPORT,MSH,desc
From: https://www.cnblogs.com/Rabbit-susu/p/17366572.html

相关文章

  • 忘掉Xavier初始化吧!最强初始化方法ZerO来了
    文|小戏谈及最典型的深度学习模型的训练,脑海里浮现的格式化的套路是什么?给定一个问题,给定一个数据集,弯弯绕绕确定好选择的神经网络的架构,然后上手调参,接下来的工作彷佛像是固定的重复工作,随机初始化参数,迭代训练,评估结果,直到一个模型新鲜出炉。其实认真反思一下这套流水线的作业......
  • 初始化一个项目,如何通过git上传到远程仓库
    下面是通过git将本地项目上传到远程仓库的步骤:在本地创建一个新的Git仓库,并进行初始化:$gitinit添加所有文件到Git索引中:$gitadd.如果你只想添加单个文件,可以将.替换为文件名。提交所有的改动到本地Git仓库:$gitcommit-m"initialcommit"这里的initialcommit是......
  • GIT 基础操作-初始化
    命令行说明全局设置gitconfig--globaluser.name""gitconfig--globaluser.email""创建一个新的存储库gitclonegit@{...}.gitcdtesttouchREADME.mdgitaddREADME.mdgitcommit-m"addREADME"gitpush-uoriginmaster现有文件夹或Git存储库cd......
  • STM32:RTthread_线程
    1微处理器系统    随着产品功能的增多,裸机系统不能够满足产品需求,引入RTOS实时操作系统的多线程管理,可以增加程序的稳定性逻辑性,便于管理;2线程  通常默认一个能独立实现功能的函数,称之为线程;多线程管理的意思就是这个程序可以实现多个功能管理;  2.1线程栈   ......
  • STM32 + RTThread + UGUI
    一、概述开发板:STM32F103C8T6显示器:ST7735SRT-Thread:5.0.0玩过GUI的小伙伴都知道,界面的显示是一个个像素点组合起来的,那么直接构建出来炫酷的GUI还是相对比较困难的,所以我们一般都会使用一些GUI库来实现,比如LVGL、QT、UGUI等,这样对于驱动开发的人员来说就相对比较简......
  • upupw mysql数据库密码初始化
    1、启动upupw2、打开cmd窗口,进入到数据库目录/UPUPW/MariaDB/bin。3、执行命令:mysql -uroot-p;4、用系统提供的密码登录,默认的是:DRsXT5ZJ6Oi55LPQ5、进入mysql管理界面后,执行命令:updateusersetauthentication_string=password("root")whereuser='root'; 提示:Query......
  • 【C++】引用、引用初始化、引用折叠规则
     引用引用就好像存储数据的一块内存区域(变量)的一个名字,定义引用就好像声明了一个变量名并把它绑定到已存在的变量上,变量名附带属性(包括但不限于类型、存储期),变量名附带的属性由声明变量名时使用的声明指定符决定。需要注意的是,用于声明左值引用的&和用于声明右值引用的&&不......
  • 静态初始化器知多少
    提问静态初始化器有什么特点回答只执行一次,在首次调用时执行2.可以用来初始化变量,并封装异常回答......
  • 记录一次未初始化漏洞_four
    对一道关于未初始化漏洞的题目的总结,来自前几天的DASCTF。这道题总体不算难,我觉得更多的考了代码审计能力(也有可能是本人初学,看伪c没经验,所以觉得很复杂,中间看了看wp对这道题才恍然大悟)因为作为一道栈题来说,伪c算挺长的了。题目链接:https://pan.baidu.com/s/1oLz7BPI5oyJlrO2a5......
  • Java的初始化块
    三种初始化数据域的方法:在构造器中设置值在声明中赋值初始化块(initializationblock)初始化块在一个类的声明中,可以包含多个代码块。只要构造类的对象,这些块就会被执行。classEmployee{privatestaticintnextId;privateintid;privateStringname;......