ARM编译器(三) 其他

一、c中使用asm执行汇编

使用 _asm关键字。


格式:


对于clobbered_register_list, 有两个:


二、c中调用汇编代码函数

使用.globl 和.type来执行该汇编代码函数


在c中,使用extern进行申明。


编译,指定c代码和汇编代码


三、汇编中调用c中函数

在汇编代码中,使用extern 定义要调用的函数。


    然后在需要的地方,使用跳转指令跳转即可。


c中有该函数的实现


分别将c代码和汇编代码,编译成.o文件,然后使用armlink链接成一个可执行程序。

要注意,汇编要调用c,需要初始化栈,并且调用还要遵循汇编调用c的规范。

四、指定数据在指定的段

程序中,对于数据指定attribute属性,可以指定该数据在链接的时候,链接到指定的段。

如下,使用 __attribute__加上section选线,将变量my_peripher放置在.ARM.__at_0x10000000的段中。


在链接脚本中,增加.ARM.__at_0x10000000段。如下,将该段放置在ER_PERIPHERAL段中,起始地址是0x10000000。


编译,指定--map --symbols选项,显示memory map和symbol信息。


就可以看到,对于该变量,是放置在.ARM.__at_0x10000000段中的。

此条目发表在ARM分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。