求解__no_init

2019-03-24 11:06发布

__no_init  [数据类型]  变量名  @  地址
这个地址是必须有的吗?如果是,该怎么确定这个地址呢。__no_init的作用是不对变量进行初始化,那变量有值吗?
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
zzbaizhi
1楼-- · 2019-03-25 10:56
sint27 发表于 2014-8-7 14:19
我说的可以赋值是要在主函数里面赋值,你这个赋值看起来是在函数体外赋值的,你再改下试试,我亲测是没有 ...

大侠,我想再问一下。如果把A=0放进main中,程序复位后还会执行A=0这一句吗?如果会,使用__no_init的目的就是保证A不被初始化,使A保持跑飞时的值,可如果执行A=0这一句,那不又重新赋值了吗?如果不会,就是说程序会自动跳过这些经__no_init声明的这些变量的赋值语句吗?
sint27
2楼-- · 2019-03-25 16:09
zzbaizhi 发表于 2014-8-7 16:23
大侠,我想再问一下。如果把A=0放进main中,程序复位后还会执行A=0这一句吗?如果会,使用__no_init的目 ...

例如AVR的单片机有复位寄存器,可以记录复位原因,这时候我们只需要写类似的代码,就能避免A被赋值了
void main(){
    if(MCUCSR_Bit0==1){ // MCUCSR_Bit0是上电复位标志位
       A=0;          // 如果是上电复位,则变量赋初值
        MCUCSR_Bit0=0; // 清空上电复位寄存器
    }
zzbaizhi
3楼-- · 2019-03-25 19:44
 精彩回答 2  元偷偷看……
sint27
4楼-- · 2019-03-26 00:53
zzbaizhi 发表于 2014-8-7 17:35
设置前两个红点是为了想看下程序复位时的现象,结果程序根本没停下来,一直运行,想问问,问题出在哪

没用过该芯片,所以不了解情况
lyzhangxiang
5楼-- · 2019-03-26 03:35
lyzhangxiang
6楼-- · 2019-03-26 03:57
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章