久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4303|回復: 18
收起左側

STC8H單片機的RAM好像不能全部使用,難道技術手冊錯了?大家又遇到過嗎

[復制鏈接]
ID:188720 發表于 2022-9-16 17:00 | 顯示全部樓層 |閱讀模式
用STC8H3K32S2這個單片機芯片,技術手冊里寫著RAM是128字節,
但是編譯時發現超過110字節就會報錯,

難道技術手冊錯了?

1663318747895.jpg
1663318816001.jpg
回復

使用道具 舉報

ID:624769 發表于 2022-9-16 21:30 來自手機 | 顯示全部樓層
你看看你打框的上面一行 超出了0x26個字節,所以,成功編譯的只有111字節。所以,原代碼,你總共要用data,大約166字節。
回復

使用道具 舉報

ID:123289 發表于 2022-9-17 08:06 | 顯示全部樓層
128個RAM中,系統需要用一部分,但你無法知道系統是如何規劃RAM的。
比如:系統用了30個,你就只能用98個了。
如果你用匯編寫程序,則沒有這個問題,RAM由你規劃使用。
回復

使用道具 舉報

ID:188720 發表于 2022-9-17 08:33 | 顯示全部樓層
188610329 發表于 2022-9-16 21:30
你看看你打框的上面一行 超出了0x26個字節,所以,成功編譯的只有111字節。所以,原代碼,你總共要用data, ...

可是我減少了一個字節的全局變量,編譯就通過了啊
1663374767701.jpg
回復

使用道具 舉報

ID:188720 發表于 2022-9-17 08:35 | 顯示全部樓層
yzwzfyz 發表于 2022-9-17 08:06
128個RAM中,系統需要用一部分,但你無法知道系統是如何規劃RAM的。
比如:系統用了30個,你就只能用98個 ...

我算了下,定義的全局變量占50多字節,系統占用的有將近70字節這么多嗎?!
回復

使用道具 舉報

ID:188720 發表于 2022-9-17 08:41 | 顯示全部樓層
yzwzfyz 發表于 2022-9-17 08:06
128個RAM中,系統需要用一部分,但你無法知道系統是如何規劃RAM的。
比如:系統用了30個,你就只能用98個 ...

我算了下,全局變量占用50字節左右,剩下的70字節都是系統占用了嗎?!
回復

使用道具 舉報

ID:526108 發表于 2022-9-17 09:19 | 顯示全部樓層
不要把全局變量放在data中,data內存都當作堆棧內存,主要用于局部變量和壓棧變量的使用,其他內存都放在idata或xdata中
回復

使用道具 舉報

ID:433219 發表于 2022-9-17 09:54 | 顯示全部樓層
基礎性常識問題啊,堆棧指針之類的,要動態占用部分 data區,要留下足夠的空間
回復

使用道具 舉報

ID:612392 發表于 2022-9-17 09:58 | 顯示全部樓層
編譯的時候,程序選large,這樣就會優先放xdata啦
回復

使用道具 舉報

ID:188720 發表于 2022-9-17 09:59 | 顯示全部樓層
qq624353765 發表于 2022-9-17 09:19
不要把全局變量放在data中,data內存都當作堆棧內存,主要用于局部變量和壓棧變量的使用,其他內存都放在id ...

好的,我已經把全局變量放在idata里了,編譯通過了。
再請教一下 :我看有人說RAM的高128字節是特殊功能寄存器,但是idata就是RAM的高128字節吧?不沖突嗎?
回復

使用道具 舉報

ID:188720 發表于 2022-9-17 10:07 | 顯示全部樓層
cjjdemon 發表于 2022-9-17 09:58
編譯的時候,程序選large,這樣就會優先放xdata啦

這樣好像會變慢?為什么不推薦用 idata 呢?
回復

使用道具 舉報

ID:188720 發表于 2022-9-17 10:09 | 顯示全部樓層
wkman 發表于 2022-9-17 09:54
基礎性常識問題啊,堆棧指針之類的,要動態占用部分 data區,要留下足夠的空間

好吧,基本功不行
回復

使用道具 舉報

ID:807591 發表于 2022-9-17 11:19 | 顯示全部樓層
紅燒魚頭 發表于 2022-9-17 10:07
這樣好像會變慢?為什么不推薦用 idata 呢?

確實速度差一點,優先用完idata 沒問題
回復

使用道具 舉報

ID:1034262 發表于 2022-9-17 20:59 | 顯示全部樓層
樓主可以通過*.m51文件查看具體的變量安排。
STC8H3K系列的內存遵守標準51的架構要求,直接尋址(也可簡介尋址)的SRAM是低128字節,高128字節只能間接尋址(idata),擴展的xdata有3072個字節。
回復

使用道具 舉報

ID:612392 發表于 2022-9-17 22:37 | 顯示全部樓層
紅燒魚頭 發表于 2022-9-17 10:07
這樣好像會變慢?為什么不推薦用 idata 呢?

放idata也行,idata也比較小呀,xdata就很大了哦,實際上不會慢多少的。
回復

使用道具 舉報

ID:188720 發表于 2022-9-19 08:02 | 顯示全部樓層
cjjdemon 發表于 2022-9-17 22:37
放idata也行,idata也比較小呀,xdata就很大了哦,實際上不會慢多少的。

使用xdata的話,還需要把AUXR的EXTRAM設為0,這個只要在初始化的時候設置一次就好了吧?不用每次調用xdata都專門調用一次EXTRAM=0吧?
回復

使用道具 舉報

ID:123289 發表于 2022-9-19 08:51 | 顯示全部樓層
1、編譯器一般會從30H開始規劃RAM的使用,這樣你只能用30H-7FH。
2、系統會根據程序中,子程序調用的深度,預留堆棧的數量,又用掉一些。
3、函數在返回數據時,也會用堆棧傳遞結果,再用掉一些。
4、你的#INCLUDE  “??”,函數中,也會規劃掉一些RAM。
……,以上你不易計算清楚,系統用70個以上很正常。

另外,你在10#樓的疑問,回復你一下:
對于256字節的RAM芯片,高端的128個RAM(80-FFH)與特殊寄存器的地址(80-FFH)的確是重復的!!!
CPU為了防止沖突,對此區間的訪問作出區分規定:
高端的128個RAM(80-FFH)必須用【間接訪問指令】讀取,
而對特殊寄存器則采用【直接訪問指令】讀取。
如果你精通匯編,這一點就清楚了!
而對于低端的RAM(0-7FH)則隨便你用哪種方式訪問。
當你用C寫程序時,編譯器會替你注意的,但需要你知它:變量放在哪!
編譯器會將你的C程序,編譯成匯編,并注意到【訪問指令】用直接還是間接。

STC在特殊寄存器上做了大量的文章,擴充了許多標準51沒有東東,乃至用滿了80-FFH特殊寄存器地址,還不夠!
于是STC人又在XRAM區域,取出部分地址,用作【擴展特殊寄存器】,對此,標準的編譯方式無法作出區分的,寫程序時,需要你按STC的CPU說明來寫。
這也是,有些程序在不同芯片之間不能通用的原因之一。也是為什么要用#INCLUDE將芯片型號,告訴編譯器的原因之一。
以上希望能幫到你。如果你想在單片機上成為高手,必須精通匯編,即使用你不用它,而用C寫程序。
回復

使用道具 舉報

ID:879348 發表于 2022-9-19 15:08 | 顯示全部樓層
需要堆棧用于調用程序,局部變量,中斷處理
回復

使用道具 舉報

ID:188720 發表于 2022-9-20 07:59 | 顯示全部樓層
yzwzfyz 發表于 2022-9-19 08:51
1、編譯器一般會從30H開始規劃RAM的使用,這樣你只能用30H-7FH。
2、系統會根據程序中,子程序調用的深度 ...

謝謝大佬!這幾天我也查了一些資料,大概都明白了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品区| 久久岛国| 欧美一卡二卡在线观看 | 欧美一区二区视频 | 自拍偷拍第一页 | 91日韩| 久久成人一区 | 日韩视频一区在线观看 | 免费在线一区二区三区 | 日韩中文一区二区三区 | 国产男女猛烈无遮掩视频免费网站 | 中文字幕在线第一页 | 久操伊人| 在线观看av中文字幕 | 午夜精品在线 | 麻豆国产精品777777在线 | 国产精品日韩一区二区 | 97在线超碰 | 国产福利91精品一区二区三区 | 中文字幕成人av | 日本一区二区高清不卡 | 一区二区在线不卡 | 成人精品一区 | 国产激情精品一区二区三区 | 黄色网址在线免费观看 | 黄a在线播放 | 国产欧美一区二区久久性色99 | 亚洲综合网站 | 在线观看免费高清av | 91亚洲国产成人久久精品网站 | 成人伊人| 老牛影视av一区二区在线观看 | 色综合天天天天做夜夜夜夜做 | 伊人伊人| 久久麻豆精品 | 欧美13videosex性极品 | 午夜国产一级 | 国产区免费视频 | 国产精品久久久久无码av | 激情综合五月天 | 国产玖玖 |