硬汉嵌入式论坛

 找回密码
 立即注册
查看: 418|回复: 5
收起左侧

[技术讨论] ARM汇编程编译到指定地址,如何实现?

[复制链接]

2

主题

13

回帖

19

积分

新手上路

积分
19
发表于 2024-3-8 16:06:36 | 显示全部楼层 |阅读模式
看网上的参考资料,有的是.org 0x08xxxxxx,有的是ORG 0x08xxxxxxxx,两种反复试过,编译通不过,.org 0x08000000h , 报错: error: A1137E: Unexpected characters at end of line,
ORG 0x08000000h, 报错: error: A1163E: Unknown opcode ORG , expecting opcode or Macro, 怎么搞都不通过,很急;请大家支招;

有没有人能解决,ORG伪指令,实操过的人,请大家支招; 论坛里这么多高手,有没有人搞好;


就是想把ARM汇编程序编译到指定的程序地址;有其它办法也可以; 请大家支招;

我现在用的是MDK-ARM PLUS  VERSION :5.36.0.0


回复

使用道具 举报

75

主题

683

回帖

908

积分

金牌会员

积分
908
发表于 2024-3-8 22:54:25 | 显示全部楼层
什么CPU
回复

使用道具 举报

2

主题

13

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 2024-3-18 20:30:28 | 显示全部楼层

ARM芯片,STM32F407; STM32F103
回复

使用道具 举报

3

主题

119

回帖

128

积分

初级会员

积分
128
发表于 2024-3-19 09:40:51 | 显示全部楼层
之前回复过你,估计你没看懂,就是分散加载,告诉链接器要把这段程序单独连接到某位置。方法有很多,链接目标c程序或者目标汇编程序,在c文件操作或者在汇编文件操作都是可以实现的,猜测你更习惯改汇编所以之前说的是在汇编文件的操作方法
keil就用分散加载,论坛里教程很多,大部分是把c代码链接到指定区域。汇编操作也类似,用AREA定义代码段,然后改链接脚本,把你定义的代码段指定一下地址

其实有更简单的,在论坛里搜分散加载就能搜到,我写个例子:
[C] 纯文本查看 复制代码
void test(void) __attribute__((section(".ARM.__at_0x8002000")));
__asm void test( void )
{
}
回复

使用道具 举报

2

主题

13

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 2024-3-26 22:21:06 | 显示全部楼层
skyshine 发表于 2024-3-19 09:40
之前回复过你,估计你没看懂,就是分散加载,告诉链接器要把这段程序单独连接到某位置。方法有很多,链接目 ...

多谢回复!  C语言编译到指定地址,一直在用,汇编语言编译到指定地址,也可以用这种方法,没有试过,
我明天试一下; 非常感谢!
回复

使用道具 举报

0

主题

124

回帖

124

积分

初级会员

积分
124
发表于 2024-3-27 14:08:27 | 显示全部楼层
V5 是用 __attribute__((at(<address>)))
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 11:34 , Processed in 0.179578 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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