动态模块介绍
基本概念介绍
在传统的操作系统中,用户空间和内核空间是分开的,应用程序运行在用户空间,
内核模块运行在内核空间,模块可以被动态装载和卸载。
在嵌入式RTOS中也可以实现类似的功能,dlmodule是RT -Thread中的一个动态
模块组件,可以实现对动态模块的装载和卸载。
在RT -Thread中,动态模块更多可以理解为一个ELF格式加载器,把单独编译的
一个ELF文件中的代码段和数据段,加载到内存中,进行符号解析,并重定位到内
核导出的API地址上,编译好的动态模块,一般会放在文件系统中,然后在控制台
执行。
RT -Thread 的动态模块组件目前支持两种格式: .mo 做为后缀名的可执行动态模
块。它可以被加载和运行。 .so 做为后缀名的动态库。它可以被加载,并驻留在内
存中,并提供一些函数集由其他程序(内核里的代码或动态模块)来使用。
当前RT -Thread支持动态模块的CPU架构,包括ARM,x86,RISC-V等,目前仅支
持GCC编译器,暂不支持ARMCC编译器
文档被以下合辑收录
评论