導航:首頁 > 源碼編譯 > stc編譯優化

stc編譯優化

發布時間:2023-01-03 06:19:12

① 51單片機ram不夠用,怎麼優化程序

1.肯定的,嵌套越多,要壓棧保存的信息就越多,佔用的RAM就越多了,對51來說,最多就是CPU內256位元組的RAM。

2.是的。

3.沒用過這晶元……我用的最多的是AVR

4因為你定義了一個pagebuf[512],512位元組啊!51單片機的data撐死才256位元組(還沒算壓棧保存數據需要的RAM),所以編譯器自動將這個數組放在了XDATA中。

② 單片機 除法 STC單片機中,做除法:unsigned char R1,R2; float m=0; 程序中,R1和R2的值是可以改變的

問題1:就C語言設計的優化來說,一般運算都不要寫的復合,你最好分多級運算這樣可以優化編譯代碼。
問題2:注意你的存儲單元有沒沖突,C設計單元式自己分配的,有時定義單元會在執行時雙重利用,或許你忘記釋放,數據發生沖突。
STC是八位的,float……就這段程序是看不出錯誤的

③ STC12的1T模式與12T模式哪個穩定

1T和12T
1T和12T只有在STC12系列以後的單片機里才出現的。前面我們已經說到了,傳統的單片機其實就是12T單片機,也就是晶振頻率會被12分頻後才是指令運行的頻率。到時STC12系列以後的STC單片機出現1T模式,也就是有些指令的執行時只需要兩個晶振周期就能執行完。理論上來說,這樣的運行速度會比傳統單片機快6倍,為什麼加「理論」,因為不是所有的指令都快6倍,只是一部分,還有些是快4倍,快3倍的。具體的需要看STC官方數據手冊,如下圖。

仔細的小夥伴會看到在第5列的第一行里有個小括弧(採用STC-Y2 CPU內核指令集),STC12用的就是這個內核,而到了STC15系列晶元用的是STC-Y5內核,STC8系列用的是STC-Y6內核,Y後面的數字越大,指令優化的越厲害,表現出來的就是運行的更快,STC-Y5內核的指令集里,大部分的匯編指令到時一個晶振周期就執行完成的了,也就是比傳統單片機快12倍。 現在我在做單片機開發的時候,絕大部分都是採用的C語言開發,你還在用匯編,那我只能是膜拜你了。C語言編程的程序方便移植,好理解,容易入門,不需要去記住那些復雜的寄存器,但是確定也明顯,就是效率不高,運行速度我們沒辦法准確的計算出來。編譯器在把C語言代碼轉化為匯編語言的過程我們是沒法控制的,這樣編譯出來的機器代碼我們就沒辦法去計算時間的指令運行時間。 >>>>
軟體模擬和實際開發板
模擬軟體,外國老表開發的,STC國產(好吧,內核還是人家的)。不知道什麼原因,我們不知道,也不敢問,在模擬軟體里就是沒有STC的單片機晶元可以選擇,沒有STC的單片機,我們只能選擇傳統51單片機,這樣一來,模擬的時候,程序運行的速度是傳統的12T模式,也就是晶振頻率12分頻後才是執行的實際頻率。 單片機開發板運行時,因為提問小夥伴用的單片機是STC12系列的晶元,就算他運行在12T模式下,指令系統還是有優化,速度肯定比傳統的指令集要快。更何況呢,他連1T和12T都分不清,運行在1T模式下也是有可能的,所以,今天的問題就來了。實際開發板運行速度肯定會比軟體模擬快。 寫在最後 在很久之前,我就寫過一篇文字,就說了不建議初學單片機的菜鳥從軟體模擬開始。現在還有多少高校的單片機課程還在是以模擬運行的呢,希望是沒有了,但我想,僅僅是我想想。 其實,小代覺得,學單片機的最終是要自己設計屬於自己的東西,比如自己的畢設,更或是親手做一個小禮物俘獲女神的芳心。但是自己寫的代碼永遠都運行在軟體里,沒有實際電路,你又怎麼可能會自己設計電路呢。你不自己看見過電阻,又怎麼可能會知道一個長得很像電阻的電子元件它其實是二極體。 最最後,回到今天的問題上,當我們把軟體模擬運行完美的代碼移植到實際開發板上運行時,代碼是需要做單片機的適配的,比如,採用代碼方式實現的延時函數,比如IO埠的配置,比如某些中斷的入口,比如某些寄存器的定義等等。在移植之前,還是得拿目標晶元的數據手冊來看看。

④ 匯編語言中的STC是什麼意思

匯編語言中STC是進位標志置1的意思。

STC指令是8086指令系統中的一條標志寄存器操作指令,用於對進位標志CF進行設置或清除。

進位標志CF用在多位元組運算或多字運算中,用來傳遞 低位往高位的進位,當進行加(減)法運算時,若最高位向前有進(借)位,則CF=1,否則CF=0。

當兩個數相加時,若最高位向上形成進位,則CF=1;兩個數相減時,若最高位向上形成借位,則CF=1;兩個無符號數相乘時,若乘積的高一半為0,則CF=0;兩個帶符號數相乘時,若乘積的高一半是低一半的符號擴展,則CF=0。

除此以外,用CLC指令可以使進位標志CF清零,CMC指令可用來對進位標志CF取反。

(4)stc編譯優化擴展閱讀

相關技術:

匯編器

典型的現代匯編器(assembler)建造目標代碼,由解譯組語指令集的易記碼(mnemonics)到操作碼(OpCode),並解析符號名稱(symbolic names)成為存儲器地址以及其它的實體。

使用符號參考是匯編器的一個重要特徵,它可以節省修改程序後人工轉址的乏味耗時計算。基本就是把機器碼變成一些字母而已,編譯的時候再把輸入的指令字母替換成為晦澀難懂機器碼。

編譯環境

用匯編語言等非機器語言書寫好的符號程序稱為源程序,匯編語言編譯器的作用是將源程序翻譯成目標程序。目標程序是機器語言程序,當它被安置在內存的預定位置上後,就能被計算機的CPU處理和執行。

匯編的調試環境總的來說比較少,也很少有非常好的編譯器。編譯器的選擇依賴於目標處理器的類型和具體的系統平台。一般來說,功能良好的編譯器用起來應當非常方便,比如,應當可以自動整理格式、語法高亮顯示,集編譯、鏈接和調試為一體,方便實用。

對於廣泛使用的個人計算機來說,可以自由選擇的匯編語言編譯器有MASM、NASM、TASM、GAS、FASM、RADASM等,但大都不具備調試功能。如果是為了學習匯編語言,輕松匯編因為擁有一個完善的集成環境,是一款非常適合初學者的匯編編譯器。

⑤ STC單片機12C5608的CPU內核keil編譯問題

霍霍!偏偏就是用8051
8052編譯。。。。。。STC的單片機就是兼容51核,不用懷疑。12C5608AD按STC的傳統來看是8KROM,如果你不使用擴展的RAM區的話(按STC的傳統,12C5608AD應該有512B或以上的RAM,我懶得去看它的文檔),直接使用AT89S52來建工程就可以了。

閱讀全文

與stc編譯優化相關的資料

熱點內容
ug編程面試答題 瀏覽:227
qq聊天記錄加密怎麼弄 瀏覽:113
文件夾對話框選項 瀏覽:627
又見金底副圖選股公式源碼 瀏覽:207
燒錄編程器那個好用 瀏覽:548
三晉先鋒app如何簽約 瀏覽:441
網路如何讀取伺服器信息 瀏覽:440
mac壓縮解壓視頻 瀏覽:906
這就是程序員魅力 瀏覽:296
京東java演算法筆試題 瀏覽:178
柱子加密箍筋不準有接頭 瀏覽:199
我的世界伺服器菜單插件如何使用 瀏覽:12
劉毅10000詞pdf 瀏覽:890
剛畢業的程序員會什麼 瀏覽:974
單片機控制64路開關量 瀏覽:982
win10截圖編程 瀏覽:420
怎樣把名字變成文件夾 瀏覽:203
文件怎麼搞成文件夾 瀏覽:730
多線程編程php 瀏覽:606
安卓機越用越卡有什麼辦法 瀏覽:17