litao_blueray 发表于 2024-3-8 16:06:36

ARM汇编程编译到指定地址,如何实现?

看网上的参考资料,有的是.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 PLUSVERSION :5.36.0.0


庄永 发表于 2024-3-8 22:54:25

什么CPU

litao_blueray 发表于 2024-3-18 20:30:28

庄永 发表于 2024-3-8 22:54
什么CPU

ARM芯片,STM32F407; STM32F103

skyshine 发表于 2024-3-19 09:40:51

之前回复过你,估计你没看懂,就是分散加载,告诉链接器要把这段程序单独连接到某位置。方法有很多,链接目标c程序或者目标汇编程序,在c文件操作或者在汇编文件操作都是可以实现的,猜测你更习惯改汇编所以之前说的是在汇编文件的操作方法
keil就用分散加载,论坛里教程很多,大部分是把c代码链接到指定区域。汇编操作也类似,用AREA定义代码段,然后改链接脚本,把你定义的代码段指定一下地址
其实有更简单的,在论坛里搜分散加载就能搜到,我写个例子:
void test(void) __attribute__((section(".ARM.__at_0x8002000")));
__asm void test( void )
{
}

litao_blueray 发表于 2024-3-26 22:21:06

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

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

Edmund1964 发表于 2024-3-27 14:08:27

V5 是用 __attribute__((at(<address>)))
页: [1]
查看完整版本: ARM汇编程编译到指定地址,如何实现?