1. gzyueqian
      18529173453

      嵌入式開發(fā):如何為PIC?或AVR?MCU編寫裸機(jī)代碼

      更新時(shí)間: 2021-11-18 11:28:51來(lái)源: 粵嵌教育瀏覽量:10414

        微芯片結(jié)合了令人印象深刻的PIC和AVR微控制器(MCU)系列,擁有市場(chǎng)領(lǐng)先的8位MCU系列。作為一名嵌入式開發(fā)人員,理想情況下,為給定項(xiàng)目選擇MCU是基于哪個(gè)設(shè)備(外圍設(shè)備)最適合實(shí)現(xiàn)應(yīng)用程序的功能。


        通常,這取決于MCU上不同外設(shè)的組合。例如,你可能有嚴(yán)格的模擬測(cè)量應(yīng)用要求,要求仔細(xì)檢查MCU的模數(shù)轉(zhuǎn)換器(ADC)。在一種應(yīng)用中,PIC MCU的10位模擬數(shù)字轉(zhuǎn)換器(ADCC)外圍設(shè)備(視頻)可能具有優(yōu)勢(shì),因?yàn)橹С指鞣N類型的獨(dú)立于核心的后采樣計(jì)算。對(duì)于另一個(gè)應(yīng)用,AVR MCU的12位差分ADC可能由于其分辨率或與AVR MCU的事件系統(tǒng)一起操作而具有優(yōu)勢(shì)。這兩種ADC都提供相對(duì)專門的功能,根據(jù)應(yīng)用要求提供某些優(yōu)勢(shì)。


        熟悉生態(tài)系統(tǒng)的支持對(duì)MCU選擇有重大影響。為了將重點(diǎn)放在為其設(shè)計(jì)選擇最佳的MCU和外圍設(shè)備上,在過(guò)去的幾年中,已經(jīng)做出了巨大的努力來(lái)調(diào)整PIC和AVR MCU產(chǎn)品系列的工具支持。Microchip仍致力于支持Atmel Studio 7和Atmel START生態(tài)系統(tǒng)中的新AVR設(shè)備。此外,AVR MCU已添加到MPLAB X集成開發(fā)環(huán)境(IDE)和MPLAB代碼配置器(MCC),統(tǒng)一了這些MCU系列之間的開發(fā)經(jīng)驗(yàn)。通用工具生態(tài)系統(tǒng)的支持旨在讓你快速使用新的MCU系列,顯著降低探索障礙。然而,對(duì)于嵌入式開發(fā)人員來(lái)說(shuō),使用MCU進(jìn)行舒適的開發(fā)比工具生態(tài)系統(tǒng)更深入,一直到寄存器級(jí)或裸機(jī)編碼。


        理解項(xiàng)目中的所有代碼


        MPLAB代碼配置器(MCC)或Atmel START等代碼生成工具是在設(shè)計(jì)中節(jié)省大量時(shí)間的絕佳方法。但是,如果你不理解這些工具生成的代碼,你可能永遠(yuǎn)不會(huì)對(duì)它們感到完全滿意。具有諷刺意味的是,你可能只在不再需要該工具時(shí)才信任它。作為一名嵌入式開發(fā)人員,你還知道,如果不自己至少修改一些寄存器級(jí)代碼,就不可能進(jìn)入生產(chǎn)環(huán)境。



        裸機(jī)編碼:使用設(shè)備數(shù)據(jù)表和頭文件作為主要編程參考


        MCU由幾個(gè)構(gòu)建塊或模塊組成:CPU、SRAM、閃存、EEPROM和外圍設(shè)備(如ADC)。其中每一項(xiàng)都在設(shè)備數(shù)據(jù)表中定義,并可通過(guò)寄存器進(jìn)行配置。“裸機(jī)編碼”中的“金屬”指的是設(shè)備寄存器,因此它指的是寫入配置MCU模塊所需的寄存器級(jí)代碼的實(shí)踐。該寄存器級(jí)代碼的形式受設(shè)備頭文件的影響,而設(shè)備頭文件又受MCU外圍模塊(數(shù)據(jù)表)的結(jié)構(gòu)的影響。所以,高效地編寫裸機(jī)代碼需要數(shù)據(jù)表模塊結(jié)構(gòu)以及頭文件定義的工作知識(shí)。除代碼示例外,在該級(jí)別開發(fā)的主要編程參考通常是MCU數(shù)據(jù)表和設(shè)備頭文件。


        裸機(jī)編碼是一種嵌入式開發(fā)技能,往往需要在同一MCU系列上的多個(gè)項(xiàng)目中掌握。對(duì)于特定的MCU,工程師熟悉MCU系列的數(shù)據(jù)表模塊和頭文件的組織方式的隱式模式。對(duì)這些模式的了解有助于該MCU系列的快速開發(fā),但也會(huì)造成選擇不同MCU的阻力,即使它可能更適合新項(xiàng)目。隨著時(shí)間的推移,能夠快速使用與頭文件定義相關(guān)的命名約定,使工程師能夠利用現(xiàn)代IDE的代碼完成功能,如MPLAB X IDE(或Atmel Studio)。


        MCC生成的項(xiàng)目的編碼樣式和項(xiàng)目結(jié)構(gòu)可能與你自己實(shí)現(xiàn)的不同。然而,在寄存器級(jí)別,MCC生成的代碼與手動(dòng)編寫的代碼非常相似。因此,使用MCC生成的代碼作為示例上下文,通過(guò)我們可以從PIC1000和AVR1000b應(yīng)用說(shuō)明中了解的內(nèi)容,探索PIC和AVR MCU寄存器級(jí)代碼之間的差異。在此過(guò)程中,我們還將指出一些你可能不知道的有趣的MPLAB X IDE編輯器特性。

      免費(fèi)預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 在线播放大乳大屁股系列 | 亚洲喷奶水中文字幕视频 | 亚洲国产中字幕在线尤视频 | 亚洲喷奶水中文字幕视频 | 久久国产精品-国产精品99 | 日韩中文字幕一区 |