IAR篇---常用#Pragma

本文参考:https://blog.csdn.net/sunheshan/article/details/45531953

1.#pragma message("")

    IAR编译到此处,在Build窗口打印出文本信息

2.#pragma error ""

    IAR编译到此处,在Build窗口打印出文本信息并报错

3.#pragma inline [=force|nerver]

    用这个指令是建议编译将这条指令后面的函数内联到调用它的函数的函数体中

    当#pragma inline = forced ,则强制让编译器对函数内联,如果内联不成功,会发出警告消息

4. #pragma location = {address|register|NAME}

    4.1 #pragma location = address 等价于@address,其用处是将变量指到绝对的地址中,变量必须定义为__no_init

        例如:

        #pragma LOCATION(flashBuf, 0x1B000); //将flashBuf 放到0x1B000中

        #pragma NOINIT(flashBuf);

        static char flashBuf[4096];

    4.2 #pragma location = register 等价于@register,定义的变量需要声明为__no_init

    4.3 #pragma location = NAME 等价于@section,其中NAME是section的模型。作用是把变量放在某个section中

5. __no_init

    IAR编译下,正常未初始化的变量都会被初始化为0,使用该关键字,编译器会跳过初始化,不对变量进行初始化。该关键字可用于要保存某些RAM区域的值,软件复位后该区域不进行改变

6. __root

    限定函数或变量就算没被调用也不会被初始化



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值