gpt4 book ai didi

嵌入式系统上的 C++ 动态代码注入(inject)

转载 作者:太空宇宙 更新时间:2023-11-04 02:52:11 32 4
gpt4 key购买 nike

我正在寻找以下问题的解决方案:

  • 开发了一个在嵌入式设备上运行的 C++ 软件模块(不可能使用基于文件的函数“dlopen”来加载共享库),当模块运行时,它应该可以通过动态程序代码扩展
  • 动态代码在 PC 系统上编写(接口(interface)函数的实现)和交叉编译 (gcc),然后通过总线系统发送到前面描述的在嵌入式设备上运行的软件模块
  • 嵌入式设备上的软件模块应将接收到的动态程序代码保存在内存中,并应能够调用其中的函数

我该如何解决这个问题?

我的第一种方法如下:

  • PC端将动态代码交叉编译链接为共享库(ELF文件)
  • (传输后)ELF 文件在内存中的嵌入式设备上可用
  • ELF 文件的重定位 -> 此处我目前完全不知道该怎么做!是否有免费的图书馆可以执行此类任务?

不知我的ELF文件方式是否可行?如果是这样,我应该如何执行图书馆搬迁?

是否有更好/不同的方法来解决我的问题?

最佳答案

VxWorks can do exactly that .不同于共享库本身,对象模块可以是部分链接的可重定位对象(GNU ld 中的 -r 选项),然后在运行时加载到完成链接的目标,解析指向目标上现有代码的链接。

关于嵌入式系统上的 C++ 动态代码注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21020866/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com