单片机/MCU论坛
直播中

张宇

8年用户 1755经验值
私信 关注
[问答]

求助,关于const char *p参数的函数和中断赋值的问题

假设一个带有 const char *p参数的函数 在此函数中 p指向一个全局变量(p= a) 然后我在中断里给此全局变量赋值(a=1)
如果程序执行到此函数中 并已经p= a 然后程序恰好进入了中断 执行a=1​
会出现什么现象?会赋值失败吗?会程序崩溃吗?

回帖(1)

卢颖萍

2023-11-9 10:03:45
单片机在读取数据的时候肯能已经把a的值读出来放在一个通用寄存器里。如果这时候发生中断,这个寄存器应该会被压栈,执行完中断之后弹出的是修改之前的值。
程序不会崩溃,但是出现这种不是你想要的结果。
所以这种资源的访问必须做到互斥 。或者函数里进行操作的时候关中断。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分