我做纯软件开发已经有些年头了,最近项目需要,接触到嵌入式软件的开发。因为经验基本为零,也没有任何指导,通过网上的搜索,发现正点原子的STM32F4探索者评价不错,非常适合初学者入手,通过这半个月的接触,感觉的确非常不错,文档齐全,由浅入深,性价比很高。
不过还是有许多疑问,希望得到各位前辈坛友的答疑解惑。
第一个疑惑是关于互斥与同步。
以库函数版本的示例4,串口通讯工程为例,变量USART_RX_STA为全局变量,有两个地方会去对其进行修改,一个是中断处理函数USART1_IRQHandler,一个是主程序main函数,我的理解是,USART1_IRQHandler和main好比在两个线程,但是针对USART_RX_STA的修改为何不需要互斥操作呢。或者我对中断的理解不对,是否在进入一个中断处理函数时,main会被挂起,中断处理函数执行完毕后,main才会解挂,继续执行?
另外,单片机编程是否有多线程的概念呢,我网上搜了下,搜不到同步互斥的概念。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
只是说这种情况和题主说的情况差不多。那什么情况下允许在main函数和中断函数里面操作相同的全局变量?如何避免这种使用相同变量导致的问题?
---------------------------------
是的,我就是不确定赋值操作“USART_RX_STA=1”是否具有原子性,感觉是的。
原子操作有定义吗。
一周热门 更多>