硬汉嵌入式论坛

 找回密码
 立即注册
楼主: WZH
收起左侧

[STM32H7] 论坛首发,STM32实现动态加载模组(似于Windows的dll),使用MDK编译动态库类

  [复制链接]

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2024-2-26 10:56:27 | 显示全部楼层
WZH 发表于 2024-2-22 23:54
我帖子里的工程好像有点问题,最好还是用gitee上的工程,另外我能想到的比较简单的方法就是约定一个固定 ...

感谢楼主的分享,问题解决了,在你的示例代码基础上,把vector定义的函数表,加一个module init函数,传入module子工程,简单替换一下就可以了
回复

使用道具 举报

13

主题

166

回帖

220

积分

高级会员

积分
220
 楼主| 发表于 2024-2-27 10:45:25 | 显示全部楼层
relax 发表于 2024-2-26 10:56
感谢楼主的分享,问题解决了,在你的示例代码基础上,把vector定义的函数表,加一个module init函数 ...

恭喜
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2024-2-28 21:25:38 | 显示全部楼层
6666
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-4-9 16:29:22 | 显示全部楼层
本帖最后由 z843757475 于 2024-4-9 16:46 编辑

能否使用全局的参数?比如主程序的一些结构体成员
回复

使用道具 举报

13

主题

166

回帖

220

积分

高级会员

积分
220
 楼主| 发表于 2024-4-13 11:39:48 | 显示全部楼层
z843757475 发表于 2024-4-9 16:29
能否使用全局的参数?比如主程序的一些结构体成员

可以,可以将全局变量用指针传递进去
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-6-16 15:19:08 | 显示全部楼层
大佬,我想复刻您的方法,但是我使用的是arm-none-eabi-gcc编译链,您是否能稍微出一个arm-none-eabi-gcc编译链导出位置无关代码的方式?万分感谢!
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-7-5 11:00:24 | 显示全部楼层
sxw101320 发表于 2021-12-5 18:06
牛,之前做国网产品的时候,国网提供的操作系统就是动态加载app,知道是rtt的lwp模块,但是一直没有弄清楚 ...

知道原理后,想法就可以特别多了啊,博主实现的是用MUC处理ELF文件得到可执行程序,你也可以使用上位机实现,甚至服务器实现也可以,最终都是得到可以运行的机器码,之前没有动态加载的功能是无法解决重定向的问题,博主这边文章实现重定向功能,只需要理解修改就可以了。
回复

使用道具 举报

72

主题

251

回帖

467

积分

高级会员

积分
467
发表于 2024-9-4 08:59:27 来自手机 | 显示全部楼层
没看明白,这个对单片机来说有什么要求,需要很大的flash或者ram开销吗
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115490
QQ
发表于 2024-9-5 08:12:54 | 显示全部楼层
logo 发表于 2024-9-4 08:59
没看明白,这个对单片机来说有什么要求,需要很大的flash或者ram开销吗

不需要很大需求。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-9-6 09:45:17 | 显示全部楼层
有基于hex文件的DLL吗,就是DLL直接是hex或者bin文件
回复

使用道具 举报

13

主题

166

回帖

220

积分

高级会员

积分
220
 楼主| 发表于 2024-9-25 16:37:04 | 显示全部楼层
jitingai 发表于 2024-9-6 09:45
有基于hex文件的DLL吗,就是DLL直接是hex或者bin文件

我这个不支持,只能是axf文件
回复

使用道具 举报

4

主题

1441

回帖

1453

积分

至尊会员

积分
1453
发表于 2024-9-26 09:15:04 | 显示全部楼层
回复

使用道具 举报

13

主题

166

回帖

220

积分

高级会员

积分
220
 楼主| 发表于 2024-9-27 09:47:05 | 显示全部楼层
Perdixky 发表于 2024-6-16 15:19
大佬,我想复刻您的方法,但是我使用的是arm-none-eabi-gcc编译链,您是否能稍微出一个arm-none-eabi-gcc编 ...

这个工具链没太用过,你可以看一看相应编译器的链接器手册,只要能生成具备动态段的elf就可以了
回复

使用道具 举报

72

主题

251

回帖

467

积分

高级会员

积分
467
发表于 2024-9-27 12:04:16 | 显示全部楼层
sentiment 发表于 2024-7-5 11:00
知道原理后,想法就可以特别多了啊,博主实现的是用MUC处理ELF文件得到可执行程序,你也可以使用上位机实 ...

无论是MCU还是上位机或者服务器实现处理ELF文件得到可执行APP程序,都需要考虑APP程序固化问题吧,一旦MCU断电再上电还需要重新动态加载APP程序吧
回复

使用道具 举报

72

主题

251

回帖

467

积分

高级会员

积分
467
发表于 2024-9-27 12:05:52 | 显示全部楼层
eric2013 发表于 2024-9-5 08:12
不需要很大需求。

APP程序动态加载到RAM种运行,RAM还是需要大点好,不然APP大了,RAM不就盛不下了。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2025-2-27 17:55:17 | 显示全部楼层
屏幕截图 2025-02-27 175334.png

我把文件移植到自己的工程里一直总是报错这个是怎么回事呢,和头文件添加的方式有关吗?
回复

使用道具 举报

13

主题

166

回帖

220

积分

高级会员

积分
220
 楼主| 发表于 2025-3-21 16:20:06 | 显示全部楼层
Goodme 发表于 2025-2-27 17:55
我把文件移植到自己的工程里一直总是报错这个是怎么回事呢,和头文件添加的方式有关吗?

那个删掉就行,我是rtx调用的,也可以不用这个调用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-29 03:41 , Processed in 0.346354 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表