Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
mo动态模块_Module
PIC地址无关编译
RT-Thread 的组件热加载构想
发布于 2024-10-24 21:29:58 浏览:286
订阅该版
[tocm] # 背景 用了很久的RT-Thread,感觉设备驱动这一功能有些缺乏灵活性。 例如我在进行OTA时,很难在只更新某个外设的功能时,只对那个功能的驱动进行升级。每次进行OTA前,需要保存很多运行时参数,然后跳入BOOT进行升级。 为了解决不重启进行OTA,我也去查阅过ELF加载相关的资料。感觉对单片机来说,加载多个驱动需要很大的RAM,对选型的要求有些过于高了。 所以我就想找到一个既能让代码段在单片机中单独运行,又不过于占用资源的热更新方法。 # BIN文件运行基本原理 C代码编译后,可以粗略的分为两个部分。一个是代码段,另一个是数据段。 我们可以将一部分的驱动代码编译成一个.o文件,然后不将其链接入主固件中,最后将其链接到一个指定的地址,并下载到单片机上。主程序就可以直接调用编译信息中的指定地址来调用函数或访问其中的全局变量。 # 与RT-Thread的联动 在RT-Thread的设备驱动框架中,有固定的驱动接口规范。那么理想状态下,我只需要在固件的头部按顺序放置一些函数地址以及组件信息,那么这个地方的组件就将会是一个可以不必重启系统进行热更新的组件。 # FAQ 1. 组件的全局变量初始化方法,以及需要的SRAM的地址是否固定 * 我之前在裸机上加载的方法是手动赋初始值,最近在尝试直接把.data和.bss的数据拷贝到RAM中的方法。 * 需要的RAM的地址是在链接脚本中设定好的,我的做法是每种驱动直接划分一份固定大小的RAM。 2. 在组件中如何调用外部的函数 * 一般是加载后,在RAM的固定位置放一个字典,内核在加载组件的时候向字典写入自己的导入函数地址。然后组件用函数地址与预先知道的函数原型去调用外部函数。 3. 头部包含的内容 * 一般都是16位魔术+版本信息+组件类型+函数表这种简易的固件头。 4. 对C++是否适用 * 目前做实验的工程C++基本上不能用,类的初始化始终有问题。
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
LCCA
这家伙很懒,什么也没写!
文章
1
回答
2
被采纳
0
关注TA
发私信
相关文章
1
貌似stm32f10x的应用模块在1.2.x版本不能正常编译
2
应用模块打开之后unload之后还在内存中
3
关于module.c的_load_shared_object的疑问
4
应用模块的rt_module_unload函数的bug
5
rtt 如何实现动态加载app
6
使用zmodem传输文件,应用模块文件传输完成,访问失败
7
RTT下应用模块编译具体方法
8
RTT应用模块编译出错
9
RTT应用模块编译问题
10
求问动态模块是什么意思呢
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
cubemx
PWM
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
xusiwei1236
8
个答案
2
次被采纳
踩姑娘的小蘑菇
1
个答案
2
次被采纳
用户名由3_15位
9
个答案
1
次被采纳
bernard
4
个答案
1
次被采纳
RTT_逍遥
3
个答案
1
次被采纳
本月文章贡献
聚散无由
2
篇文章
15
次点赞
catcatbing
2
篇文章
5
次点赞
Wade
2
篇文章
4
次点赞
Ghost_Girls
1
篇文章
7
次点赞
xiaorui
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部