欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6063|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

義隆單片機編譯小結(jié)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:3721 發(fā)表于 2015-1-5 16:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
c語言編譯單片機程序。比如編譯MCS-51或者AVR有時會說開發(fā)效率比匯編高,而開發(fā)PIC和ELAN卻發(fā)現(xiàn),c語言許多經(jīng)典的格式都無法使用。MCS-51在RAM空間開辟堆棧時會考慮堆棧時會考慮,因為深度而像C語言里面的函數(shù)嵌套,計算階乘時不可以想c語言那樣使用函數(shù)嵌套。ELAN的c編譯器在使用過程發(fā)現(xiàn),不宜使用局部變量,最好有和書寫匯編是同樣的數(shù)據(jù)空間分配思想。對定義的變量進行地址定位,uchar data1 @20 :bank 0;bit buzzer @0x20 @0:bank 0;。
今天寫程序時編譯總會進入死循環(huán),uchar i;for(i=0;i<5;i++);這樣的語句會進入死循環(huán)。在反匯編窗口觀察反匯編代碼發(fā)現(xiàn)i被定位在數(shù)據(jù)空間0x39,儀隴單片機78P153S的用戶數(shù)據(jù)空間從0x20-0x2f超出空間,應(yīng)該是編譯器的問題。修改局部變量為全局變量并定位,uchar i @0x20:bank 0;就不會出現(xiàn)上面的問題。
MCS-51有128字節(jié)的數(shù)據(jù)存儲空間r0-r7寄存器有七組,可以定義很大的數(shù)組,ELAN的數(shù)據(jù)存儲空間,定義一個15的數(shù)組編譯就會出現(xiàn)數(shù)據(jù)存儲空間不足的編譯警告。stc單片機4k的,16k很常見,所以從來用c語言不太考慮程序空間的開銷。曾經(jīng)用11F02做LED大屏幕顯示,32幅32*48圖像的字模存儲超出了2k空間,后來考慮11f03,后來就壓縮成16*24的了。儀隴的153只有1k,156也只有1k,468,447有2k,經(jīng)常編程序就超出空間,不得不苦苦思索程序壓縮。
STC的單片機都是串口編程,燒寫次數(shù)多達100000次,所以開發(fā)調(diào)試就是不停的下載調(diào)試。
早上燒儀隴單片機,燒程序調(diào)試,一個小時內(nèi)我扔了7個單片機到垃圾桶,就不扔了,OTP編程牛的一踏,每每開發(fā)一個產(chǎn)品會有多少單片機犧牲。
下午就用仿真器調(diào)試了,發(fā)現(xiàn)了好多問題,當(dāng)正確按說明進入系統(tǒng),蜂鳴器鳴叫一聲,黃燈閃爍一次,進入編碼,輸入密碼,一項的實現(xiàn)時,對自己說,小翔翔,快覺悟了,加油。所有的都是一個人苦心去悟出來的。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:127421 發(fā)表于 2016-6-20 16:13 | 只看該作者
嘿嘿,你用C語言搞的?
回復(fù)

使用道具 舉報

板凳
ID:252566 發(fā)表于 2017-11-23 10:12 | 只看該作者
請問樓主,你是用的義隆哪個型號的MCU,一般OTP的話少有用C語言的。
我之前是用匯編做的。如果你要什么幫助的話,可以找我。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表