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