關於微控制器XDATA 和DATA區

2021-09-08 05:14:12 字數 525 閱讀 9912

最近在做專案的時候在編譯keil文件時遇到問題,其實自己也是小白菜,在做專案中慢慢進步,遇到問題解決了就記下來,以免後邊犯同樣的錯誤

關於*** error l105: public refers to ignored segment錯誤

這個錯誤說明你的微控制器內部的data區已經滿了,放不下更多的變數。我們微控制器內部的data區的大小是有限的我的專案用的是c8051f340這個微控制器,查一下這個微控制器的規格書

可以看到我們儲存一般的變數都是片內data 00–7fh位址,對於以上錯誤,如果存在變數不多的情況下,我們可以考慮把後來的變數存放在xdata區,那這樣做會有個缺點,就是訪問外部資料區會比訪問內部資料區**複雜,自然我們是看不到的,但是作為寫**的人得知道。

為了優化**,可以這樣做,對於不常用的變數,比如說就一兩次使用過,那可以放在xdata區,對於常用的或者一直呼叫的放在data 區即可,具體情況看使用者的情況。

關於微控制器中斷

中斷 cpu停止當前任務,去處理中斷內容,處理完後自動恢復以前任務。微控制器有5個中斷源,2個中斷優先順序,中斷受兩級控制 1 cpu開總中斷 2 中斷源開中斷。中斷源 引起中斷事件的型別。5個中斷源 1 外部中斷請求0,由int0 p3.2 輸入 2 外部中斷請求1,由int1 p3.3 輸入 3...

關於微控制器串列埠原理

c語言中 ea 1 允許總中斷 es 1 允許串列埠中斷 彙編中可用 setb ea 允許總中斷 setb es 允許串列埠中斷 當微控制器接收到一幀資料後,ri會置1,向cpu申請中斷,若之前有中斷允許,則產生了中斷,進入中斷服務程式。當然,微控制器傳送完一幀資料,ti也會置1,同樣會產生中斷!一...

關於微控制器的學習經驗

從51開始,到現在也有一年半的時間了,剛開始學51時,花了整整半年時間才覺得對它的功能有了基本掌握,後來在不斷地做了些東西後,才感覺比較熟練了。但當時,對如何快速上手一款從未接觸過的微控制器這個問題,仍然一片茫然。這種感覺一直持續到熟練32後,終於對微控制器的學習有一種一通百通的感覺。感覺到學習一款...