MIPS走向更多
另外,不要忽視那些可能導(dǎo)致嚴(yán)重預(yù)算問題的膠合邏輯,如看門狗定時器、低電壓檢測、電壓整流器、主時鐘/外設(shè)時鐘/實(shí)時時鐘等。這些功能的集成,使PIC32 系列成為真正適用于“控制”應(yīng)用的芯片,有別于“計(jì)算機(jī)”芯片。
本文引用地址:http://www.ex-cimer.com/article/118542.htm入門
跟以前一樣,Microchip 的芯片評估很容易,而且便宜。PIC32 以太網(wǎng)入門套件(見照片1)定價$72,提供一切你需要的部件。雖然名字為“以太網(wǎng)”入門套件,該套件配備了高端的'795 型號MCU,同時支持USB 功能。
照片1:考慮到ARM的先發(fā)優(yōu)勢,MIPS需要奮起直追。最新集成USB、以太網(wǎng)和CAN的PIC32,是MIPS在MCU領(lǐng)域的一個巨大進(jìn)步
該套件還包括配有一個“輕量級”GCC 編譯器的Microchip MPLAB IDE。文檔中關(guān)于“輕量級”編譯器的說明有點(diǎn)矛盾。“輕量級”版本編譯器暗示不支持先進(jìn)的代碼優(yōu)化,但是我拿到的版本顯然不是這樣,在下一節(jié)你將看到這一點(diǎn)?;蛟S實(shí)際上該工具包是所謂的“評估”版本,支持所有功能,但只有60 天有效期。
PIC32 采用的架構(gòu)來源于“計(jì)算”,因此它非常適合管理面向PC 的以太網(wǎng)和USB 接口。讓我們看一些演示程序,你就會明白我的意思。
多年來Microchip 一直在為其小型的PIC 芯片提供部分網(wǎng)絡(luò)軟件棧,PIC32 做得更多,它提供了全功能、免費(fèi)的BSD TCP/IP 網(wǎng)絡(luò)堆棧。包含所有的網(wǎng)絡(luò)服務(wù)、套接字等,以及這些常用的協(xié)議:DHCP、UDP、ICMP、ARR 等。'795 型芯片中有512KB 的片上flash,有充足的空間存儲一些漂亮的演示程序,讓我們?yōu)g覽一下入門電路板(見照片2)。
照片2:當(dāng)把一個“計(jì)算”架構(gòu)裁剪為“微控制器”使用時,誠然會有很多挑戰(zhàn);但同時也能繼承很多好處,比如這里看到的免費(fèi)BSD TCP/IP堆棧。
USB 支持不錯,。OTG功能允許一個設(shè)備在USB 主、從設(shè)備之間動態(tài)切換。一個典型的應(yīng)用案例是打印機(jī),當(dāng)連接到PC 時它是一個從設(shè)備,而當(dāng)連接到相機(jī)時它成為主設(shè)備。現(xiàn)在所有的USB 芯片似乎都有OTG 了,不過我自己從沒有遇到過需要以這種方式切換的情況。
不管OTG 是否真正有用,它使得PIC32 能在更多的傳統(tǒng)領(lǐng)域中得到應(yīng)用,無論是作為主設(shè)備或從設(shè)備。USB“嵌入式主設(shè)備”在使用中有一些限制,不像“標(biāo)準(zhǔn)主設(shè)備”如電腦,舉例來說PIC32 不提供VBUS 電源(100-500 mA),但是你可以在個人電腦的USB接口上找到這種電源——當(dāng)然這完全可以理解。另外,速度限制也需要注意,,作為從設(shè)備時能夠“全速”(12 Mbps),而作為主設(shè)備時只能提供“低速”(1.5 Mbps)。
這個套件包含了一些實(shí)用的演示。其中一個演示讓該板子成為一個標(biāo)準(zhǔn)人機(jī)接口設(shè)備(HID)——比如鼠標(biāo)。因?yàn)镠ID 驅(qū)動已經(jīng)是標(biāo)準(zhǔn),你可以把它直接插入PC 使用。另外,你可以把這個套件配置成USB 主設(shè)備,從而利用PIC32 不斷完善的FAT 文件管理軟件庫,有一些演示展示了如何訪問廣泛使用的USB 存儲器(見照片3)。
照片3:另一個免費(fèi)軟件是USB主、從設(shè)備驅(qū)動,這里演示的是利用集成的FAT文件系統(tǒng),以USB主設(shè)備訪問一個USB存儲器
不過需要指出的是這個套件中沒有包含CAN 演示。因?yàn)槲也欢矝]有實(shí)驗(yàn)條件進(jìn)行有意義的CAN 測試,如果你需要該功能,你需要自己來評估和結(jié)論。
優(yōu)化的迷宮
結(jié)構(gòu)體系進(jìn)化的重要標(biāo)志之一,曾經(jīng)是編譯器的優(yōu)化。您可能還記得有些人把“RISC”縮寫調(diào)侃為“Relegate the Impossible Stuff to the Compiler”,即“把不可能完成的任務(wù)丟給編譯器”。然而,在調(diào)試時,一個太過自我聰明的編譯器其問題也是顯而易見的。比如PIC32 的“C”編譯手冊有提到說,當(dāng)調(diào)試經(jīng)過優(yōu)化的代碼時“可能偶爾會碰到令人驚訝的結(jié)果。”
例如,有些變量和代碼會消失,如果編譯器認(rèn)為你其實(shí)并不需要它們。舉例說你聲明了一個變量,然后給它賦值一個常數(shù),接著在某個計(jì)算時調(diào)用了這個變量。不要為找不到那個變量和賦值語句而抓狂,編譯器只是比你更聰明一點(diǎn),它在計(jì)算中直接調(diào)用了常數(shù)。
評論