|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe |
再問所長:MCU通用處理程序的幾個問題! |
| 作者:guorock 欄目:單片機 |
1、“51系列內部的堆棧是向FF生長的,內部RAM內存分配是從FF向00開始的! 我是這樣理解的:51的堆棧范圍只能為30H~7FH,00H~2FH為通用寄存器,80H~FFH為特殊功能寄存器,我們不能使用這兩部分空間。剩下的30H~7FH可以用作堆;蚴怯脩魯(shù)據(jù)存儲。比如我們指定棧頂為30H,即MOV SP,#30H ,則堆棧從30H開始向上生長,而用戶數(shù)據(jù)變量是從7FH開始向下分配,這樣就要保證堆棧和用戶數(shù)據(jù)不能沖突。 2、“該內存管理,只分配內存不釋放內存,相當于在模塊初始化時才確定的全局變量。” 這里全局變量的內存分配可以說是由我們來分配的。我想問的是:如果在.C文件開頭定義全局變量,對它的內存分配應該是由編譯器完成的。對這兩種全局變量的內存分配,在地址上會不會有沖突呢?呵呵。 3、“int操作(對兩個CHAR操作)中被中斷時可能發(fā)生操作熟被改變的情況” 以前編程序時,并沒有這方面的考慮。這種考慮是只限于51呢,還是別的處理器也有這方面的考慮,那是不是所有的int操作都應進行關閉中斷的保護措施。謝謝! 4、您給的文檔中少給了Msg_PopMsg()函數(shù),它應該是這樣的: //------------------- //彈出消息字 //------------------- unsigned CHAR Msg_PopMsg() { return sInMsg.aReadMsgBuffer[0]; } 對吧? 5、“后面幾個階段的培訓內容: 圖形設計軟件的理論 嵌入系統(tǒng)圖形窗口 設計輔助工具的重要性 大程序結構的軟件設計模型 ” 什么時候推出?期待ING。 多謝! * - 本貼最后修改時間:2007-3-5 16:45:42 修改者:guorock |
| 2樓: | >>參與討論 |
| 作者: guorock 于 2007/3/5 8:25:00 發(fā)布:
頂。 |
|
| 3樓: | >>參與討論 |
| 作者: IC1008 于 2007/3/5 9:09:00 發(fā)布:
問題三,只限于8位機吧,我想 INT 是16位的 同理 LONG類型也會出現(xiàn)類似問題 |
|
| 4樓: | >>參與討論 |
| 作者: guorock 于 2007/3/6 14:32:00 發(fā)布:
我頂。 |
|
| 5樓: | >>參與討論 |
| 作者: guorock 于 2007/3/8 8:18:00 發(fā)布:
UP! |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |