从上面的对比来看,F303的SRAM还是可以使用bitband的。使用SRAM的bitband可以实现变量的原子操作(atomic read-modify-write and read)。
如果在程序有多处的地方对同一个变量进行读写操作,那么使用原子操作的好处是对某个变量进行读写时不会被中断或者其他的任务打断进而影响到该变量的值发生不可估计的操作,这在我们实际使用中很有用。比如我们经常在中断中对某个变量进行置1或者清零0然后再在其他的地方根据这个变量进行某些操作,如果我们对这个变量读取时正好发生了中断,那么中断中很有可能对这个变量进行修改,这样的话当退出中断,我们再次读取的这个值就是错的了,所以在ucos2中的对于一些全局变量操作时都是先关掉中断然后在操作最后打开中断,这样才能避免我们刚才说的那个问题。