Linux下AT90S8515微控制器GCC程式設計點燈實驗紀實 (轉)
下AT90S8515微控制器GCC點燈實驗紀實:namespace prefix = o ns = "urn:schemas--com::office" />
唐鐵鑫
看著那發光二極體一閃一閃的,我的高興得又蹦又跳。成功啦!對於一個新手來說,這第一次太難忘了。
……
在CSDN的論壇聽說過AVR,程式設計之類的東東,在網上搜尋相關資料時發現了Linux focus上有一篇Guido Socher寫的《AVR微控制器GCC程式設計》,覺得有可操作性,於是把相關的資料、下到了。
可是,跑遍了廣州的電子商店都找不到AT90S4433,只有AT90S8515,怎麼辦呢?從網上看到《AVR高速嵌入式微控制器原理與應用(修訂版)》的介紹,到書店找來看了看,發現兩個片子下載程式設計的原理是一樣的,只是引腳有些不同,不如就……
製作:
到電子城買來以下東東:AT90S8515微控制器(比OTP的51片貴了n倍,n>5)一個,40腳普通鎖緊插座一個,30pf的陶式電容兩個(我找不到27pf的,不過就我所瞭解的,起振用10到30pf都行),4M晶振一個,聚酯板一塊,25並口一個,單排針、雙排針各一排(其實也可以不用),電阻、發光二極體我是從壞了的顯示器上卸下來的。電阻我沒有470歐的,用100歐加380歐串聯代替,我把三節1.5V電池用導線串聯焊在一起做的電源。
一切都齊了,動手吧。按照Guido Socher在avrledtest-0.1.tar裡的原理圖,根據《AVR高速嵌入式微控制器原理與應用(修訂版)》上AT90S8515的接腳,重畫了原理圖。很簡單,我描述一下吧:6腳PB5(MOSI)串聯480歐電阻接並口2針,7腳PB6(MISO)串聯220歐接電阻並口11針,8腳PB7(SCK)串聯480歐電阻接並口2針,9腳PB8(RESET)串聯480歐電阻接並口16針之外再連10千歐電阻接電源正極(VCC),15腳PD5串聯1千歐電阻和一個發光二極體(注意方向)後接電源正極(VCC),18腳XTAL2、19腳XTAL1接晶振和起振電容(標準接法),振盪電路GND、微控制器20腳(GND)、並口18針(GND)接到電源負極,微控制器40腳(VCC)接電源正極。
做板子,你肯定要有焊錫、烙鐵、導線和萬用表等東西。做好後,檢查線路有沒接錯,用萬用表測測電路通不通,電阻、電容有沒壞,然後就搞定了。
軟體:
軟體我開始想用我已經有的 7.0,結果沒有ppdev的,於是裝Redhat 9.0(即7.3,Linux核心2.4.18)。這Redhat 9.0,在我的 810上裝了5、6遍我才明白,你不給810的分配4M以上的,Xfree86-4的Sever它就啟動不了,倒黴!
沒有gxtar的話,你要會用、bzip2和tar解壓;都是安裝,你要會;另外,以身份操作。安裝方法我不詳細講了,參照Guido Socher的《AVR微控制器GCC程式設計》。提醒注意:1、裝完binutils-2.11.2後一定要新增/usr/local/atml/lib這行到/etc/ld.so.conf裡面,並執行/sbin/ldconfig命令重建聯結器快取,如果忘了,你要從這步開始往後重灌一遍;2、裝avr-libc-20020106前,有
export CC=avr-gcc
export AS=avr-as
export AR=avr-ar
export RANLIB=avr-ranlib
export PATH=/usr/local/atmel/bin:${PATH}
幾步,用export命令看看你的環境設定的path是什麼樣的,那就是這裡的 ${PATH}所指的,千萬不要直接輸入export PATH=/usr/local/atmel/bin:${PATH}後敲回車,那不對,或者到你的root目錄下,把隱藏檔案顯示出來,你的.bash_profile檔案,加入:/usr/local/atmel/bin路徑,重啟,這就一勞永逸了;3、千萬記住,Linux下是區分大小寫的,我在Win下解壓的uisp-20011025,到了Linux下就不能make,原來DAPA.C變成了dapa.c,真是氣死我了!折騰了半天。
安裝好後,解壓avrledtest-0.1.tar,因為我用的是AT90S8515,所以,把解壓後的avrledtest-0.1資料夾裡的avrledtest.hex和avrledtest_pre.hex刪了,那是AT90S4433的。用Gedit或其他文字編輯器開啟makefile檔案,把MCU=at90s4433改成MCU=at90s8515,把
# here is a pre-compiled version in case you have trouble with
# your development environment
load_pre: avrledtest_pre.hex
uisp -dlpt=/dev/port0 --erase -dprog=dapa
uisp -dlpt=/dev/parport0 -- if=avrledtest_pre.hex -dprog=dapa -dno-poll -v=3 --hash=32
#-------------------
這一段刪掉,因為我要重新編譯一個MCU=at90s8515的avrledtest.hex,如果development environment有麻煩,那就完成不了啦!
測試:
搞定makefile後,把硬體上的並口接到列印口,接通電源;然後,開啟linux的console,進到/sbin目錄下,lsmod看看有沒
parport_pc
ppdev
parport
如果沒有,要用
insmod parport_pc
insmod ppdev
insmod parport
可能這樣parport還不能載入,再insmod一次。用lsmod看看,確定都載入了,進到avrledtest-0.1目錄裡,輸入
make
順利的話avrledtest.hex就產生了,然後
make load
我make load了三四次,因為我的板子有毛病,檢查了好一會才搞好。我make load成功的畫面是console裡出現
uisp –dlpt=/dev/parpart0 –erase –dprog=dapa
Atmel AVR AT90S8515 is found.
Erasing Device
……
Uploading:flash
#####
(total 146 bytes tranerred in 0.68s (216 bytes/s))
Polling:count=145,min/avg/max=3.00/3.14/12.08ms
OK,下載到了,拿開並口,斷電,重新接通,片子就reset了,發光二極體一閃一閃的。點燈實驗成功了,以後就可以自己做其他的實驗了,AT90S8515的flash可以刷1000次。Cool!原來做微控制器實驗也可以這麼便宜!模擬機、程式設計器都省了。(不過,十幾片AT90S8515多出來的錢,都可以買程式設計器了。開發產品還是要用模擬機、程式設計器)。
如果你做不出來,可以和我聯絡,toscaner@sina.com.cn">netscaner@sina.com.cn。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-962072/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux核心程式設計實戰經驗談(轉)Linux程式設計
- MCU點燈實驗小結
- Delphi實用程式設計經驗二 (轉)程式設計
- 51微控制器實現流水燈
- Java實驗二:類程式設計實驗Java程式設計
- Linux GCC 64位程式設計技巧LinuxGC程式設計
- Delphi實用程式設計經驗二則 (轉)程式設計
- Linux守護程式的程式設計實現(轉)Linux程式設計
- OpenGl-實驗-設計程式實現點光源的移動觀察效果
- 微控制器C語言程式設計實踐pdfC語言程式設計
- 好程式設計師大資料紀實:HBase知識點集中總結程式設計師大資料
- VB程式介面設計經驗點滴 (轉)
- 實驗二 結對程式設計程式設計
- 【實驗】 ARM彙編程式設計程式設計
- Linux下的OpenGL程式設計(轉)Linux程式設計
- 實驗 2 Scala 程式設計初級實踐程式設計
- 原創 【CentOS Linux 7】實驗4【gcc編譯器】CentOSLinuxGC編譯
- 程式設計師的燈下黑:“逗到底”的程式設計師程式設計師
- 《linux系統及其程式設計》實驗課記錄(六)Linux程式設計
- (轉)Linux下 C++呼叫C 實現socket網路通訊程式設計LinuxC++程式設計
- C#程式設計實驗考試C#程式設計
- Linux下C語言程式設計(轉)LinuxC語言程式設計
- Oracle程式設計經驗及維護點滴(轉)Oracle程式設計
- C 程式設計最佳實踐(轉)程式設計
- 實驗3 轉移指令跳轉原理及其簡單應用程式設計程式設計
- 基於微控制器的光控路燈設計含程式和模擬圖
- 【Java程式設計】Java上機實驗(三)Java程式設計
- C++程式設計基礎實驗1C++程式設計
- 實驗7 檔案應用程式設計程式設計
- Linux下的shell程式設計入門(轉)Linux程式設計
- Linux Shell 程式設計實戰技巧Linux程式設計
- 51微控制器亮燈程式(入門)
- 實驗1 現代C++程式設計初體驗C++程式設計
- linux下php實現C/C++擴充套件程式設計LinuxPHPC++套件程式設計
- VB程式設計經驗點滴程式設計
- 實驗1 原型設計原型
- 實驗一原型設計原型
- C++程式設計最佳實踐(轉)C++程式設計