zoukankan      html  css  js  c++  java
  • RealView编译器常用特有功能(转)

    源:RealView编译器常用特有功能

    一. 关键字和运算符

    1. __align(n):指示编译器在n 字节边界上对齐变量

           对于局部变量,n 值可为 1、2、4 或 8。

           对于全局变量,n 可以具有最大为 2 的 0x80000000 次幂的任何值。

        __align 关键字紧靠变量名称前面放置。

    注意事项:

           只能进行过对齐。也就是说,可以将两个字节的对象按 4 个字节对齐,而不能将 4 个字节的对象按两个字节对齐。

    用法举例:

        __align(8) char buffer[128];   /* buffer从8字节对齐边界开始*/
     
        void foo(void)
        {
            ...
            __align(16) int i;         /* 这个对齐值是不允许用在局部变量中的*/
            ...
        }
     
        __align(16) int i;             /* 作为一个全局变量,这个对齐值是被允许的*/

    2. __asm此关键字用于将信息从编译器传递到 ARM 汇编器armasm。

    用法:

        a. 嵌入式汇编器

           可以使用 __asm 关键字声明或定义嵌入式汇编函数。例如:

            __asm void my_strcpy(const char *src, char *dst);

        b. 内联汇编器

           可以使用 __asm 关键字将内联汇编合并到函数中。例如:

        int qadd(int i, int j)
        {
            int res;
            __asm
            {
                QADD   res, i, j
            }
            return res;
        }

        c. 汇编器标签

           可以使用 __asm 关键字为 C 符号指定汇编器标签。例如:

            int count __asm__("count_v1"); // export count_v1, not count

        d. 已命名的寄存器变量

           可以使用 __asm 关键字声明已命名的寄存器变量。例如:

            register int foo __asm("r0");

    3.

    4.

    5.

    ....

  • 相关阅读:
    WPF 使用用户控件UserControl来切换界面(一)
    Halcon 定位与区域分割学习笔记
    Halcon 识别车牌学习笔记
    STM32CubeIDE printf 多个串口
    netcore 跨源资源共享CORS
    自定义Converter
    自定义ListBox
    ExtensionHelper扩展帮助类
    多选ComboBox
    log4net + appsettings.json
  • 原文地址:https://www.cnblogs.com/LittleTiger/p/4812681.html
Copyright © 2011-2022 走看看