㈠ 8051 擴展內存
8051 單片機的內存最大的只有 256 B 而擴展內存卻可以很大。
我們可以通過關鍵字 __xdata 將數據放到擴展內存上面。
要讓內存正常的使用我們需要自動堆棧,編譯器加上 —stack-auto 即可。
我們初步使用的時候,誤以為內存可以很大,所以就去研究 sdcc 編譯器的源碼,發現 8051 單片機的內存被限制在 128 ~ 256,這么限制必然有它的道理,也就是 8051 CPU 只能用到 256 B 的內存。
當我們意識到問題的所在時,就去研究 擴展內存的使用,在查找資料後,發現了正確的使用方法,但是編譯編譯上還是有問題,亂加編譯參數後,有一個剛好成功編譯。
事後我們知道了是怎麼回事,這也使得我們對 8051 的使用進一步加深。
㈡ linux下怎麼編譯單片機c代碼,怎麼下載到51單片機上呢
1.編譯軟體用sdcc
2.sdcc不支持keil51c 的一些語法。要做以下修改:
sbitled1=P1^0; 改為 #define led1 P1_0
中斷函數interrupt改為__interrupt
單個位 P1^0 改為P1_0
若vim安裝插件YCM的話,要在.ycm_extra_conf.py加入以下兩個路徑
/usr/share/sdcc/include
/usr/share/sdcc/include/mcs51
沒創建一個工程都要拷貝一份.ycm_extra_conf.py到該工程的目錄下。
3.編譯用命令
` sdcc 目標文件
4.燒錄軟體用stcflash.py,該軟體只能支持stc89c52rc,不支持stc89c52。我自己親自試過。
sudo python ./stcflash.py 目標文件
㈢ 51單片機中 C語言 P2^3與P2.3的區別
P2^3表示的就是P2.3,但在KeilC中P2.3的表述是不合法的。其實這只是編譯器的語法而已。
㈣ SDCC編譯器警告問題,怎麼解決
編譯器的警告要認真對待,應該盡量編寫沒有警告的代碼,除非你確切的知道編譯器為什麼產生警告,以及後果
㈤ gcc編譯器可以用於單片機的開發嗎
可以的,需要交叉編譯。我們公司就在做這個。原來使用sdcc做的編譯器,現在改為gcc了。
㈥ dev C++和codeblocks有什麼區別
兩者在是否可以跨平台和是否可以支持codefolder兩方面存在區別。
一、是否可以跨平台
dev C++:Dev C++不能跨平台,只能在Windows下用。
codeblocks:CodeBlocks是跨平台的,在Windows、Linux、Mac OS等多個平台下都可以使用。
二、是否可以支持codefolder
dev C++:不能支持codefolder。
codeblocks:可以支持codefolder。
(6)sdcc編譯器對比擴展閱讀
Code::Blocks是開放源碼軟體。Code::Blocks由純粹的C++語言開發完成,它使用了著名的圖形界面庫wxWidgets(2.6.2 unicode)版。對於追求完美的C++程序員,再也不必忍受Eclipse的緩慢。
主要特點
1、從06年3月21日版本:1.0 revision 2220開始,Code::Blocks在它的每日構建中正式提供GNU/Linux版本,這樣 Code::Blocks在1.0發布時就成為了跨越平台的C/C++IDE,支持Windows和GNU/Linux。
由於其開放源碼的特點,Windows用戶可以不依賴於VS. NET,編寫跨平台C++應用。
2、Code::Blocks提供了許多工程模板。
這包括:控制台應用、DirectX應用、動態連接庫、FLTK應用、GLFW應用、Irrlicht工程、OGRE應用、OpenGL應用、QT應用、SDCC應用、SDL應用、SmartWin應用、靜態庫、Win32 GUI應用、wxWidgets應用、wxSmith工程。
另外還支持用戶自定義工程模板。在wxWidgets應用中選擇UNICODE支持中文。
3、Code::Blocks支持語法彩色醒目顯示,支持代碼完成,支持工程管理、項目構建、調試。
Code::Blocks支持插件,包括代碼格式化工具AStyle;代碼分析器;類向導;代碼補全;代碼統計;編譯器選擇;復制字元串到剪貼板;調試器;文件擴展處理器;Dev-C++DevPak更新/安裝器。
DragScroll,源碼導出器,幫助插件,鍵盤快捷鍵配置,插件向導;To-Do列表;wxSmith;wxSmith MIME插件;wsSmith工程向導插件;Windows7外觀。
㈦ 51單片機用什麼軟體編程
開源軟體mcu8051ide 功能不是一般的強,用c語言編程,界面不輸給商業軟體,而且提供多種模擬器件如:led 數碼管,矩陣數碼管(8×8)按鍵,矩陣按鍵,甚至溫度感測器。開源的沒有任何限制,完全免費,自動生成多種燒錄文件(我們一般就用.HEX的)感覺keil c弱爆了。
安裝方法,下載sdcc(mcu8051ide是基於sdcc的)和mcu 8051 ide都安裝好就可以啦,頭文件在sdcc的安裝文件夾內(include)有些關鍵字要加兩個連在一起的下劃線比如 __interrup, __code.
頭文件與keil的不通用,比如定義P0口
在keil下是: sfr P0=0x80; 在sdcc下是: __sfr __at P0 0x80; 這個P0^1的不行,但sdcc裡面有很多頭文件8051.h 80c51.h 80c52.h等等 基本滿足要求,給stc單片機編程不用改,加一點特殊的就可以。這樣優秀的開源軟體不用真的是白不用啊。
㈧ 在51單片機中怎樣使用C語言預留一片存儲區,使得變數自動分配內存時避開這片區域
看你用的什麼編譯器。
我自學51單片機用的編譯器是SDCC,裡面有一個修飾叫做__at
用sdcc的話可以寫
__at(0x20) char reversed[16];
然後這一塊內存就分配給此全局變數了
㈨ 想學ARM,不知該如何下手,請高手指點一下!
多看一下求職招聘網站 招聘嵌入式工程師的一些招聘信息
按照企業人才需求來學習。
軟體或者硬體選一個方向主攻,然後也了解下另一個方向的一些基本知識,計算機專業建議從軟體學起,大學時的C語言、微機原理、單片機課程要重點學好,沒學好的話自己找時間去重拾。C語言基礎、單片機基礎搞好了後,再學習linux基本知識、嵌入式linux操作系統、ARM處理器等。。看書是一方面,實踐非常非常重要,C語言編程能力、單片機開發能力都只能是在實踐中慢慢提升的,只是看書毫無意義。沒有硬體基礎,不建議剛開始就學習硬體。
arm學習,你看看cpu的資料,然後有個軟體好像是ADS1.2,你去下載個看看
基於ARM處理器的MVB 2類設備研究
基於ARM的ADSL2+測試儀的設計與實現
基於ARM的嵌入式系統中從串配置FPGA的實現
基於ARM Linux的圖像採集與藍牙傳輸
基於ARM7的新型嵌入式心電監護儀的研製
ARM嵌入式平台的VGA介面設計
ARM7啟動過程
基於ARM核的AT75C220及其在指紋識別系統中
ARM7系統中實現CF卡存儲的文件系統設計
基於ARM9的多功能硬碟MP3播放器的設計
個典型的嵌入式系統設計和實現
基於ARM核的Intel XScale嵌入式系統
使用免費的SDCC C編譯器開發DS89C420/430/4
ARM的三種中斷調試方法的探討
SSD1906顯示控制器與AT91RM9200的介面技術
ARM核微處理器晶元PUC3030A及其應用
ARM構架在32位微控制器領域的應用
QFN封裝的PCB焊盤和網板設計
手持式系統無線區域網解決方案的選擇
GPS接收器入門
基於ARM的MPEG4視頻解碼器
Windows CE 編程的十點忠告
ARM簡介及編程
ARM7&ARM9雙核平台的技術分析
浮點數判零--MCS-51單片機實用子程序
ARM基礎知識連載之一
選擇ARM CPU的操作系統
Linux驅動入門
ARM的希望:兩種嵌入式操作系統的比較
ARM處理器及物理IP超過750MHz