1.1種處理器可以利用其外設(shè)(也能夠認(rèn)為是功能模塊)去實(shí)現(xiàn)某種功能。具有相同功能的外設(shè)1般不止1個(gè),如兩個(gè)串口外設(shè)或6個(gè)ePWM外設(shè)等。但具有相同功能的外設(shè),其寄存器組分配情勢常常是很相似的,我們可以用位域結(jié)構(gòu)體共用體結(jié)構(gòu)體的方式去定義1個(gè)功能寄存器組類型,然后用這個(gè)自定義類型去定義1個(gè)外設(shè)。
2.定義每個(gè)寄存器的位域結(jié)構(gòu)體類型,然后用這個(gè)位域結(jié)構(gòu)體類型結(jié)合整型定義1個(gè)共用體類型。用這類方式定義1個(gè)功能模塊的所有寄存器組。最后采取共用體結(jié)構(gòu)體方式定義1個(gè)寄存器組類型。
3.位域的定義必須從右往左的順序,也就是說從最低位開始定義。1個(gè)位域必須存儲(chǔ)在1個(gè)字節(jié)中,不能跨兩個(gè)字節(jié),如果1個(gè)字節(jié)所剩空間不夠放另外一個(gè)域,應(yīng)當(dāng)從下1個(gè)單元起寄存該域。位域的長度不應(yīng)大于1個(gè)字節(jié)的長度。位域可以無位域名,用作填充或調(diào)劑位置,無名的位域不能使用。
4.
定義為union情勢的成員既可以實(shí)現(xiàn)對(duì)寄存器的整體操作,也能夠?qū)崿F(xiàn)對(duì)寄存器的位操作。而定義為Uint16的成員只能直接操作寄存器。