linux下的应用程序代码可以分段指定存储位置么?

[复制链接]
查看11 | 回复9 | 2021-1-27 06:19:38 | 显示全部楼层 |阅读模式
如题,linux下的应用程序代码是否可以指定不同代码段在flash中的存储地址?
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:19:38 | 显示全部楼层
不明白你想问的是什么?代码都是需要加载到RAM中才执行的,和flash有什么关系?如果需要将代码存放在不同的位置,自己写一个加载程序就可以,从不同的位置将二进制代码读到RAM中组装再运行。
回复

使用道具 举报

千问 | 2021-1-27 06:19:38 | 显示全部楼层
我是想将一个应用程序的代码分成不同的段,分别存在flash指定的地址处,这样我升级程序时只改变特定的地址就可以了,这可以实现么?
回复

使用道具 举报

千问 | 2021-1-27 06:19:38 | 显示全部楼层
不明白你什么意思,一个exe你还想升级部分?
回复

使用道具 举报

千问 | 2021-1-27 06:19:38 | 显示全部楼层
是的,我是想只升级一个exe的一部分
回复

使用道具 举报

千问 | 2021-1-27 06:19:38 | 显示全部楼层
逻辑代码的话用动态库就能实现了。
资源的话随便你放哪,没有限制。
另外:你的执行文件得多大才会用到部分修改?直接覆盖有啥问题吗?
回复

使用道具 举报

千问 | 2021-1-27 06:19:38 | 显示全部楼层
分段你指的是text,bss,data段吗?是的话当然可以指定存储位置,只需要在加载时放入正确的运行地址
回复

使用道具 举报

千问 | 2021-1-27 06:19:38 | 显示全部楼层
@#6怎么指定?
回复

使用道具 举报

千问 | 2021-1-27 06:19:38 | 显示全部楼层
引用7楼jie407的回复:@#6怎么指定?编译工具支持的,自己去看看编译器手册,我知道的gcc,
objcopy
回复

使用道具 举报

千问 | 2021-1-27 06:19:38 | 显示全部楼层
引用8楼LouisScola的回复:Quote: 引用7楼jie407的回复:
@#6怎么指定?
编译工具支持的,自己去看看编译器手册,我知道的gcc,
objcopy
这个方式我用过,gcc可以在lds里面有AT指定。但是这是写无操作系统的裸板程序的方式,开发操作系统的应用程序好像不能用这种方式吧?
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行