新聞中心
PIC32是一款非常流行的微控制器,其靈活性和功能性使得它在各種應用中都有所應用。然而,使用PIC32的過程并不一定是易于上手的,尤其是對于初學者和那些沒有太多相關經驗的人來說。在本文中,我們將介紹如何在Linux上使用PIC32。

創(chuàng)新互聯(lián)自2013年起,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都網(wǎng)站設計、成都做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元靖州做網(wǎng)站,已為上家服務,為靖州各地企業(yè)和個人服務,聯(lián)系電話:028-86922220
為什么使用Linux
在開始之前,讓我們先討論一下為什么要在Linux上使用PIC32。對于許多人來說,毫無疑問的是,他們已經確立了使用Windows的習慣,但是Linux中有許多好處也值得我們思考。作為一個開源平臺,Linux平臺能夠使得我們更容易地查找代碼和學習。Linux臺上的一些工具更為穩(wěn)定而且可靠,這對于長時間的工作過程來說是非常重要的。Linux還有著很好的命令行工具和自動化環(huán)境,這些工具和環(huán)境可以幫助你將你的工作流程更加輕松簡便。
準備工作
在開始本教程之前,您需要準備以下工具和設備:
– 一款PIC32微控制器板
– 一款Linux平臺
– MPLAB X IDE
– XC32編譯器
安裝MPLAB X IDE和XC32編譯器
我們需要安裝MPLAB X IDE和XC32編譯器。而這一步驟是在Windows系統(tǒng)下給出的,因為在Linux上安裝類似的應用程序也是很容易的。您需要找到MPLAB X IDE的官方網(wǎng)站,在該網(wǎng)站上可以找到適合您的操作系統(tǒng)的適當版本MPLAB X IDE的下載鏈接。下載并運行該程序,按照安裝向導的提示完成安裝即可。
安裝完成后,您需要安裝XC32編譯器。同樣訪問編譯器的官方網(wǎng)站,通過頁面提示下載和安裝即可。
設置MPLAB X IDE連接工具并連接PIC32
連接PIC32到電腦中。然后在MPLAB X IDE的頂部菜單欄中找到“工具”選項,選擇“選項”然后選擇“調試器”。然后選擇您正在使用的調試器。如果您使用的是PICKit 3調試器,那么在“調試器”選項卡中選擇該調試器。在“設置芯片”選項卡中,輸入您使用的PIC32微控制器的型號。
對于主板的配置,選擇“板”選項卡并選擇您使用的PIC32微控制器板。如果該選項卡上缺失您所使用的主板,則需要自定義一個新的板。填寫“Name”、“Vendor”和“Part Number”參數(shù),然后保存。接著打開“接口”選項卡,并選擇您所使用的通信接口,例如USB或串口。
編譯并調試您的PIC32應用程序
使用MPLAB X IDE創(chuàng)建一個新工程。在工程創(chuàng)建過程中選擇您所使用的編譯器和您的PIC32微控制器型號。接著,您可以使用MPLAB X IDE的開發(fā)工具進行編程和調試。在開發(fā)過程中,您可以使用IDE中的調試工具,如斷點、單步執(zhí)行、監(jiān)控變量和調試輸出。
在本文中,我們討論了如何在Linux上使用PIC32。為了使用該板,您需要安裝MPLAB X IDE和XC32編譯器并將其連接。在完成所有配置之后,您就可以使用MPLAB X IDE進行PIC32的編程和調試。雖然這個過程可能有一點復雜,但這種方式可以提供更為穩(wěn)定的工作環(huán)境,并且?guī)砀嗟臋C會來使用開源工具和資源,提高您的開發(fā)水平和擴展您的技能。
成都網(wǎng)站建設公司-創(chuàng)新互聯(lián),建站經驗豐富以策略為先導10多年以來專注數(shù)字化網(wǎng)站建設,提供企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,響應式網(wǎng)站制作,設計師量身打造品牌風格,熱線:028-86922220學習完單片機還需要學什么
真的要學精了的話那就銀此去買一片AT89S51,一片8255(5塊錢的棗枯拆機片就可以了反正學習用的),1片74**138,1個12M晶振,若干按鍵,幾個8字LED,幾個LED,若干電阻,1.5K就差不多,不像多買就買這一個阻值的?!瓍⒖家恍┈F(xiàn)成的電路,自己做個系統(tǒng),這鋒巖迅些差不多課本上的試驗全能做了。
單片機只是基礎,學完單片機后,首先需要鞏固一下單片機,要做到熟能生巧,靈活應用,備桐僅僅學完可能沒等你畢業(yè)就忘記了。另外,常用的8位單片機有51系列,AVR系列,PIC系列,這三類單片機現(xiàn)在用的最多,所以,你也衫彎可以繼續(xù)學習另外兩種單片機?;蛘呋驖L悶你可以敲響嵌入式的大門了,學Linux。學ARM、DSP,這樣你就想嵌入式工程師行列進軍了。這是一個十分龐大的學習計劃,需要花費更多時間和精力去專研。
我覺得你可以學習語言方面 你可以從C入手會比較快上手但對于單片機原理理猜辯解會稍微薄弱點隱兆拆灶棗,現(xiàn)在大程序基本用c語言寫,這方面的書也比較多。如果你想深入了解單片機的話 建議從匯編學起,基礎會扎實點現(xiàn)在能用匯編寫大程序的人越來越少了學單片機跟英語關系不大,但是要從事單片機職業(yè) 更好英語證書要拿到 現(xiàn)在很多公司都要求要四六級,因為很多說明書都是英文的
模 數(shù);基礎是外圍. 實際項目經驗差得很.不信你試埋擾帆彎雹試,都行了學ARM9,真正方向,多線程零等待同時完成多個程序,未來真正要用的,你會發(fā)現(xiàn)單片機是過渡用李迅,熟練后學ARM9,但要做好心理準備,學成不易,包括操作系統(tǒng)等.
你學的是51嗎?學完之后可以換一塊更高級的板子,stm32學習一下。之后可以多做一些小設計之類的。
Pc/xt能向cpu發(fā)出中斷請求信號的是
計算機通常有很多輸入輸出設備,當這些設備需要服務時就向處理器提出要求,處理器在收到要求后就為這些設備提供服務。
當設備向處理器提出服務要求時,處理器會在執(zhí)行完當前一條指令后相應設備要求,轉向并執(zhí)行相應的服務程序(中斷服務程序ISR),在執(zhí)行完畢后,處理器回返回到執(zhí)行ISR之前的程序繼續(xù)執(zhí)行,這種處理方式即為中斷方法,設備提出的請求稱為中斷請求(IRQ)。
在微處理器中,由可編程控制器(Programmable Interrupt Controller,PIC)負責管理系統(tǒng)中的中斷請求。它通過連接到設備的中斷請求引腳來接受設備發(fā)車的中斷請求,當設備需要服務時,就激活中斷請求引腳信號,PIC檢測到信號后即向CPU發(fā)出中斷信號。此時有三種情況:
1)PIC僅僅接收到1個中斷請求信號,而此時CPU沒有執(zhí)行中斷請求,那么PIC就直接向CPU發(fā)出中斷信號。
2)PIC同時收到多個中斷請求信號,而此時CPU沒有執(zhí)行中斷請求,那么PIC比較中斷請求信號中的優(yōu)先級,選擇優(yōu)先級更高的向CPU發(fā)出中斷信號。
3)PIC收到多個中斷請求信號,此時CPU正在執(zhí)行中斷服務程序,那么PIC選早逗出的更高優(yōu)先級的中斷請求信號然后再與正在執(zhí)行的中斷服務進行比較,基于比較結果來決定是否向CPU立刻發(fā)送中斷信號。
但PIC向CPU的INT引腳發(fā)送中斷信號時,CPU會立刻停下來并詢問PIC要執(zhí)行哪個中斷服務請求。PIC則通過向數(shù)據(jù)總線發(fā)送與中斷請求對應的中斷號告知CPU執(zhí)行哪個中斷服務程序。CPU通過在數(shù)據(jù)總線讀取的中斷號,查詢中斷向量表,取得相應的中斷服務程序的地址并開始執(zhí)行中斷服務程序,執(zhí)行完畢后,處理器就接著執(zhí)行被中斷的程序。
上面所述是描述的I/O設備的中斷處理過程,屬于硬件中斷的范疇,但是中斷并非只有硬件,也可用于軟件,通過使用int指令并使用其操作數(shù)指明中斷號,就可以讓CPU執(zhí)行相應的ISR。
兩片8259A芯片共可處理15級中斷,從芯片的INT引腳連接到主芯片的IR2引腳上,即從芯片發(fā)出的中斷信號做為主芯片IRQ2輸入信號。主芯片的端口地址是0x20,從芯片的端口基地址是0xA0,IRQ9引腳的作用與PC/XT的IRQ2相同(PC/AT和PC/XT對應8086系列的不同數(shù)據(jù)總線,PC/XT是早期的型號,數(shù)據(jù)總線為8位,而PC/AT的數(shù)據(jù)總線為16位),即PC/AT機利用硬件電路把使用IRQ2的設備的IRQ2引腳重新定性到了PIC的IRQ9引腳上,并利用BIOS中的軟件把IRQ9的中斷int 71重新定向到IRQ2的中斷 int 0x0A,這樣使得使用IRQ2的PC/XT的8位設配卡在PC/AT機下仍能正常使用,做到了向下兼容。
在總線控制器的控制下,芯片有兩種狀態(tài):編程狀態(tài)和操作狀態(tài)。編程狀態(tài)是CPU通過IN和OUT指令對芯片進行初始化編程的狀態(tài),完成了初始化編程后,芯片就進入操作狀態(tài)。此時芯片可隨時響應外部設備提出的中斷請求(IRQ0-IRQ15)。通過中斷判優(yōu)選擇,芯片選擇更高優(yōu)先級的中斷請求作為服務對象,通過CPU的INT引腳向CPU發(fā)出中斷請求,CPU響應后,芯片從數(shù)據(jù)總線D7-D0將編程設定的對應中斷請求的中斷號送出,CPU接收到中斷號,查找中斷向量表,從而響應中斷。
8086中斷子系統(tǒng)
8086的微型機系統(tǒng)中采用的是8259A可編程中斷控制器芯片,每個胡敗芯片可以管理8個中斷源,通過多級相連,可以管理多個中斷向量。PC/AT系列使用了兩片上述芯片,如下圖所示:
中斷向量表
中斷向量表有時也稱為中斷描述符表,它的作用就是通過中斷號來確定對應中斷的ISR的物理地址。8086微機支持256個中斷,在實模式下,每個中斷向量由4個字節(jié)組成,這四個字節(jié)指明了中斷服務程序的段值和段內偏移,因此整個中斷向量表的大小為256*4字節(jié)=1024字節(jié)。當8086微機啟動時,ROM BIOS中的程序會在物理內存的0x0000:0x0000處初始化并設置中斷向量表,各中斷的默認ISR在BIOS中給出。中斷向量表中的向量是按照中斷號順序排列,因此給定中斷號N,對應的物理地址則為:0x0000:N*4(字節(jié))。
BIOS的初始化操作設置了8259A芯片支持的16個硬件中陸做賣斷向量和BIOS提供的中斷號為0x10-0x1f的中斷調用功能向量等。對于實際沒有使用的向量則填入臨時的啞中斷服務程序的地址,在系統(tǒng)引導加載操作系統(tǒng)時會根據(jù)實際需要修改某些中斷向量的值。
對于Linux操作系統(tǒng),在加載內核時需要用到BIOS提供的顯示和磁盤讀操作中斷功能,在內核正常工作之前則會在setup.s程序中重新初始化8259A芯片并且在head.s程序中重新設置一張中斷向量表(即中斷描述符),完全拋棄了在BIOS中提供的中斷服務功能。
在intel CPU運行在32位保護模式下時,需要使用中斷描述符表IDT來管理中斷或者異常。IDT是中斷向量表的替代物,作用類似于中斷向量,只不過除了含有中斷服務程序ISR的地址外,還包括了有關特權級和描述符類別等信息。
Linux內核的中斷處理
對linux內核來說,中斷信號分為兩類:硬件中斷和軟件中斷(異常),中斷用0-255之間的數(shù)字標示,其中int0-int31(0x00-0x1f)每個中斷的功能由intel公司固定設定或者保留,屬于軟件中斷(異常),這些中斷是在CPU執(zhí)行指令時探測到異常情況而引起的。通常還可分為故障和陷阱兩類,中斷int32-int255(0x20-0xff)可以由用戶自己設定。
中斷int32-int47對應8259A中斷控制芯片發(fā)出的硬件中斷請求信號IRQ0-IRQ15。
程序編程發(fā)出的系統(tǒng)調用中斷設置為int128(0x80),系統(tǒng)調用中斷是用戶程序使用操作系統(tǒng)資源的唯一界面接口。
系統(tǒng)在初始化時,內核首先在head.s中使用一個“啞中斷向量(中斷描述符)”對中斷描述符表中的所有的256個描述符進行默認設置。這個啞中斷向量執(zhí)行一個默認的“無中斷”處理程序。此時發(fā)生中斷而執(zhí)行此程序時會顯示信息:“未知中斷(Unknown interrupt)”。這樣使用啞中斷向量的目的是為了防止出現(xiàn)一般保護性錯誤。
而對于系統(tǒng)中需要使用的中斷則會在初始化過程中的init/main.c程序中重新設置這些中斷描述符(即中斷向量),讓他們指向對應的實際處理程序。通常對int0-int31的初始化設置在traps.c程序中進行重新設置;系統(tǒng)調用中斷int128的重新設置在kernel/sched.c中進行。
Linux內核設置IDT時使用了中斷門和陷阱門兩種描述符。區(qū)別是對標志寄存器EFLAGS中的“中斷允許標志”IF的影響,中斷門執(zhí)行的中斷會復位IF標志,可以避免其他中斷干擾當前中斷的處理,隨后的中斷結束指令iret會從堆棧上恢復IF標志的原值,而陷阱門執(zhí)行的中斷不會影響IF標志。
pic32 linux的介紹就聊到這里吧,感謝你花時間閱讀本站內容,更多關于pic32 linux,學習如何在Linux上使用PIC32,學習完單片機還需要學什么,Pc/xt能向cpu發(fā)出中斷請求信號的是的信息別忘了在本站進行查找喔。
成都網(wǎng)站建設選創(chuàng)新互聯(lián)(?:028-86922220),專業(yè)從事成都網(wǎng)站制作設計,高端小程序APP定制開發(fā),成都網(wǎng)絡營銷推廣等一站式服務。
網(wǎng)頁名稱:學習如何在Linux上使用PIC32(pic32linux)
URL地址:http://m.fisionsoft.com.cn/article/djoogsh.html


咨詢
建站咨詢
