亚洲免费成人av电影_日韩av免费在线看_国产精品久久久久久久久久_日韩成人在线电影网_久久精品视频播放_日本久久久a级免费_欧美午夜性色大片在线观看_国产精品69久久_黑人精品xxx一区一二区_1769国内精品视频在线播放_日韩大陆毛片av_日本久久精品视频_日韩av不卡电影_欧美性生活大片免费观看网址_91性高湖久久久久久久久_久久99_亚洲乱码国产乱码精品精

首頁 新聞 > 創(chuàng)新 > 正文

了解和使用no-OS及平臺驅動程序

作者:ADI公司高級軟件工程師??? Mahesh Phalke

快速發(fā)展的技術需要軟件支持(固件驅動程序和代碼示例)來簡化設計導入過程。本文介紹如何利用no-OS(無操作系統)驅動程序和平臺驅動程序來構建ADI公司精密模數轉換器和數模轉換器的應用固件,這些器件在速度、功耗、尺寸和分辨率方面提供高水平的性能。

ADI公司提供基于no-OS驅動程序的嵌入式固件示例來支持精密變換器。no-OS驅動程序負責器件配置、轉換器數據采集、執(zhí)行校準等,而基于no-OS驅動程序的固件示例則便于將數據傳輸到主機進行顯示、存儲和進一步處理。

no-OS和平臺驅動程序簡介

顧名思義,no-OS驅動程序設計用于通用(或無特定)操作系統。該名稱還意味著這些驅動程序可以用在沒有任何OS支持的裸機(BareMetal)系統上。no-OS驅動程序旨在為給定精密轉換器的數字接口訪問提供高級API。no-OS驅動程序使用器件的這些API接口訪問、配置、讀取、寫入數據,而無需知道寄存器地址(存儲器映射)及其內容。

no-OS驅動程序利用平臺驅動程序層來支持跨多個硬件/軟件平臺復用相同的no-OS驅動程序,使固件高度可移植。平臺驅動程序層的使用將no-OS驅動程序隔絕開來,后者無需知道平臺特定接口(如SPI、I2C、GPIO等)的低級細節(jié),因此no-OS驅動程序不需要修改就能跨多個平臺復用。

圖1.精密轉換器固件協議棧

使用no-OS驅動程序

圖2顯示了no-OS驅動程序的典型代碼結構。

圖2.no-OS驅動程序代碼結構

圖3.器件配置枚舉、結構和API

精密轉換器的no-OS驅動程序代碼通常包含在兩個以C編程語言編寫的源文件中:adxxxx.cadxxxx.h,其中xxxx代表器件名稱(例如AD7606、AD7124等)。器件頭文件(adxxxx.h)包含器件特定結構、枚舉、寄存器地址和位掩碼的公共編程接口,將此文件包含到所需的源文件中便可使用這些公開訪問接口。器件源文件(adxxxx.c)包含接口的實現,用于初始化和移除器件、讀/寫器件寄存器、從器件讀取數據、獲取/設置器件特定參數等。

典型的no-OS驅動程序圍繞一組常見功能來構建:

?器件特定寄存器地址、位掩碼宏、器件配置枚舉、讀/寫器件特定參數(如過采樣、增益、基準電壓等)的結構的聲明。

?通過no-OS驅動程序的器件初始化/移除函數以及器件特定的初始化和驅動程序結構與描述符初始化物理器件/解除器件初始化。

?使用器件寄存器讀/寫函數訪問器件存儲器映射或寄存器詳細信息,例如adxxxx_read_register()adxxxx_write_register()

no-OS驅動程序代碼使用

使用器件特定地址、位掩碼、參數配置枚舉和結構:

如前所述,adxxxx.h頭文件包含所有器件特定枚舉和結構的聲明,這些枚舉和結構被傳遞到器件特定的函數或API以配置或訪問器件參數。具體情況如圖3所示。

圖3中顯示的adxxxx_config結構允許用戶選擇多路復用器通道并為其設置過采樣率。此結構的成員(afe_mux_channeloversampling)是存在于同一頭文件中的枚舉,其包含這兩個字段的所有可能值的數字常量,用戶可以選擇。

adxxxx.c文件中定義的adxxxx_set_adc_config()函數通過配置結構獲取用戶傳遞的配置/參數,并進一步調用adxxxx_spi_reg_write()函數,通過數字接口(在上例中是SPI)將數據寫入ADXXXX_REG_CONFIG器件寄存器。

使用no-OS驅動程序結構和初始化函數初始化器件:

圖4.器件初始化和驅動程序結構的聲明

除了器件配置枚舉和結構之外,no-OS驅動程序還提供以下兩個結構:

?器件初始化結構。

?設備驅動程序結構。

器件初始化結構允許用戶在用戶應用程序代碼中定義器件特定的參數和配置。初始化結構包含其他器件特定的參數結構和枚舉的成員。圖5顯示了器件初始化結構的定義。

器件驅動程序結構通過器件初始化函數adxxxx_init()加載器件初始化參數。器件驅動程序結構是在運行時(動態(tài))從堆空間中分配內存。器件驅動程序結構和器件初始化結構中聲明的參數幾乎完全相同。器件驅動程序結構是器件初始化結構的運行時版本。

以下步驟說明典型的器件初始化函數和初始化流程:

?第1步:在應用程序中創(chuàng)建器件初始化結構的定義(或實例)(例如struct adxxxx_init_params),以初始化用戶特定的器件參數和平臺相關的驅動程序參數。參數在編譯期間定義。

注意:初始化結構中定義的參數因器件而異。

?第2步:在應用程序代碼中創(chuàng)建器件驅動程序結構的指針實例(變量)。

用戶應用程序需要創(chuàng)建器件驅動程序結構的單個指針實例。將此實例傳遞給所有no-OS驅動程序API/函數以訪問器件特定參數。應用程序代碼中定義的此指針實例指向堆中動態(tài)分配的內存,這是通過no-OS驅動程序中定義的器件初始化函數(如adxxxx_init())完成的。

?第3步:調用器件初始化函數以初始化器件和其他平臺特定的外設。

no-OS驅動程序中定義的adxxxx_init()函數用adxxx_init_param結構傳遞的用戶特定參數初始化器件。器件驅動程序結構的指針實例和器件初始化結構的實例作為兩個參數傳遞給此初始化函數。用戶應用程序代碼可以多次調用adxxxx_init()函數,只要調用初始化函數之后再調用器件移除函數來平衡。

通過器件寄存器讀/寫函數訪問存儲器映射(寄存器內容)如圖6所示

用戶可以通過no-OS驅動程序器件特定的adxxx_read/write()函數訪問器件寄存器內容(例如產品ID、暫存區(qū)值、OSR等)。

大多數情況下,用戶不會直接使用寄存器訪問函數。器件特定的函數通過這些寄存器訪問函數(如adxxxx_spi_reg_read/write())來調用。如果可能,建議使用器件配置和狀態(tài)API來訪問器件存儲器映射,而不要使用直接寄存器訪問函數,因為這樣能確保器件驅動程序結構與器件中的配置保持同步。

平臺驅動程序

平臺驅動程序是包裝平臺特定API的硬件抽象層(HAL)之一。它們由no-OS器件驅動程序或用戶應用程序代碼調用,使后者可以獨立于底層硬件和軟件平臺。平臺驅動程序包裝了平臺特定的低級硬件功能,例如SPI/I2C初始化和讀/寫、GPIO初始化和讀/寫、UART初始化和接收/發(fā)送、用戶特定的延遲、中斷等。

圖5.用戶應用程序中的器件初始化結構定義

圖6.訪問寄存器內容

SPI平臺驅動程序模塊的典型文件結構如圖7所示。

使用平臺驅動程序

平臺驅動程序代碼通常包含在以C/C++編程語言編寫的三個源文件中。

1) spi.h這是一個與平臺無關的文件,包含SPI功能所需的器件結構和枚舉。此頭文件中定義的C編程接口沒有平臺依賴性。

初始化和器件結構中聲明的所有參數對任何平臺上的SPI接口都是通用的。

器件初始化結構中使用的void *extra參數允許用戶傳遞額外的參數,這些參數可以是所用平臺特定的。

SPI驅動程序結構和SPI初始化結構中聲明的參數幾乎完全相同。SPI驅動程序結構是SPI初始化結構的運行時版本。

2) spi.cpp/.c此文件包含spi.h文件中聲明的函數的實現,這些函數用于初始化特定平臺的SPI外設以及讀/寫數據。廣義的“平臺”是指硬件微控制器(目標器件)和軟件(如RTOS或Mbed-OS)的組合。此文件依賴于平臺,移植到其他平臺時需要修改。

圖9詳細說明了Mbed平臺的SPI接口,并顯示了如何使用這些接口和器件初始化/驅動程序結構來初始化SPI和讀/寫數據。

圖7.SPI平臺驅動程序代碼結構

圖8.SPI初始化和驅動程序結構

圖9.SPI API或函數注意:增加的spi_init()和spi_write_and_read()代碼是節(jié)略代碼,

為清楚起見而省略了細節(jié)。

圖10.SPI額外的初始化和驅動程序結構

3) spi_extra.h此文件包含其他器件結構或枚舉,其特定于給定平臺。它允許用戶應用程序代碼提供通用spi.h文件中未涉及的配置。例如,SPI引腳可能隨平臺而異,因此可以作為這些平臺特定的額外結構的一部分添加。

移植平臺驅動程序

平臺驅動程序可以從一個平臺(微控制器)移植到另一個平臺;若要移植,通常需要創(chuàng)建平臺特定的.cpp/.c_extra.h文件。平臺驅動程序駐留在微控制器單元供應商提供的器件特定硬件抽象層(HAL)之上的一層。因此,為將平臺驅動程序從一個平臺移植到另一個平臺,與調用供應商提供的HAL中存在的函數或API相關的平臺驅動程序代碼需要做一些細微改動。

圖12區(qū)分了基于Mbed的SPI平臺驅動程序和ADuCM410 SPI平臺驅動程序。

ADI no-OS存儲庫和平臺驅動程序的GitHub源代碼鏈接可在ADI公司Wiki和GitHub頁面上找到。

為no-OS驅動程序做貢獻

ADI no-OS驅動程序已開源并托管在GitHub上。驅動程序不僅支持精密轉換器,也支持許多其他ADI產品,如加速度計、收發(fā)器、光電器件等。任何熟悉源代碼的人都可以為這些驅動程序做貢獻,方式是提交變更和創(chuàng)建拉取請求來審核這些變更。

有許多示例項目可以在Linux和/或Windows環(huán)境中運行。許多示例項目是用硬件描述性語言(HDL)開發(fā)的,以便在Xilinx?、Intel?等公司開發(fā)的FPGA以及由不同供應商開發(fā)的目標處理器上運行。

如需無操作系統的系統的no-OS軟件驅動程序(用C編寫),請訪問ADI公司no-OS GitHub存儲庫。

ADI公司Wiki頁面提供了使用Mbed和ADuCMxxx平臺為精密轉換器開發(fā)的示例。

圖11.Mbed平臺特定的SPI初始化實現

圖12.平臺驅動程序差異

作者簡介

Mahesh Phalke是ADI公司位于印度班加羅爾的精密轉換器技術軟件部門的高級軟件工程師。2011年畢業(yè)于瀑內大學,獲電子工程學士學位。聯系方式:mahesh.phalke@analog.com。

關鍵詞: 驅動程序 微控制器 操作系統

最近更新

關于本站 管理團隊 版權申明 網站地圖 聯系合作 招聘信息

Copyright © 2005-2018 創(chuàng)投網 - www.474933.com All rights reserved
聯系我們:33 92 950@qq.com
豫ICP備2020035879號-12

 

国产极品人妖在线观看| 免费污视频在线观看| 色999日韩国产欧美一区二区| 337p亚洲精品色噜噜狠狠| 国模人体一区二区| 欧美中文在线观看国产| 国产亚洲精品熟女国产成人| heyzo一区| 无码国产精品久久一区免费| 超碰国产一区| 在线不卡视频| 国产成人综合视频| 亚洲国产一区二区三区高清| 色诱亚洲精品久久久久久| 欧美xxx久久| 久久av资源网| 3p乱日视频| 亚洲一区电影777| 美女视频一区二区| a天堂资源在线观看| 欧美成人黑人| 成人黄色免费电影| 日本jizzcom| 91视频论坛| 日韩欧美大片| 日本成人动漫在线观看| 四虎地址8848| 亚洲国产精品99久久| 日韩www在线| 很黄很色网站| 日韩久久中文字幕| 国产福利小视频在线观看| 久久国产精彩视频| 亚洲中文字幕无码一区二区三区| 福利在线小视频| 亚洲免费视频网| 中文字幕一区二区5566日韩| 国产va在线播放| 99久久精品国产亚洲精品| 久久精品.com| 中文字幕在线观看1| 热99精品里视频精品| 看国产成人h片视频| 最新亚洲精品国自产在线观看| 国产欧美va欧美不卡在线| 经典三级在线| 中文字幕剧情在线观看| 动漫av一区| 国产免费一区二区三区香蕉精| 亚洲激情国产精品| 欧美亚洲国产免费| 日本搞黄视频| 国产午夜一区| av免费在线观看网站| 久久精品国产sm调教网站演员| 一区二区在线播放视频| 国产一区二区三区四区五区美女| 黄网站在线观看高清免费| 亚洲精品国产首次亮相| 成人影院在线观看视频| 少妇人妻无码专区视频| 中文字幕日韩av电影| 精品国产不卡一区二区三区| 福利一区二区免费视频| 深夜av在线| 久久国产精品系列| 九色porny蝌蚪视频在线观看| 欧洲美女亚洲激情| 好看的日韩精品视频在线| 精品视频久久久久久久| 另类图片激情| 少妇精品久久久一区二区三区| 日本欧美一级片| 国产伦精一区二区三区| 2020天天干夜夜爽| 国产精品不卡视频| 亚洲成人av观看| 亚洲日本在线看| 91精品国产91久久久久游泳池| 欧美黄色片免费观看| 91丨porny丨国产入口| 天堂视频免费在线观看| 精品视频123区在线观看| av在线电影观看| 亚州av中文字幕在线免费观看| 91动漫在线看| 精品一区二区在线欧美日韩| 97精品资源在线观看| www.久久草.com| 日韩男女性生活视频| 亚洲色成人网站www永久四虎| 粗暴蹂躏中文一区二区三区| 青青草国产一区二区三区| 日本欧美久久久久免费播放网| av男人的天堂网| 最近中文字幕在线视频| 成片免费观看| 女人高潮一级片| 丰满少妇被猛烈进入高清播放| 国产三级漂亮女教师| 亚洲精品国产嫩草在线观看| 狠狠综合久久av一区二区小说| 国产一区二区三区不卡视频网站| 九色精品视频在线观看| 在线日本制服中文欧美| 亚洲天堂久久久久久久| 亚洲精品国产欧美在线观看| 久久这里只有精品6| 嫩草影院中文字幕| 国产一区二区在线观看免费视频| 国内成人自拍视频| 在线观看午夜av| 亚洲美女视频在线免费观看| 成人黄色网页| 国产精品无码无卡无需播放器| aaa国产精品视频| 国产一区二区黄| 亚洲视频免费观看| 精品大片一区二区| 一个人免费观看视频www在线播放| 国产老肥熟一区二区三区| 日韩精品一区二区三区免费观影| 久久久无码中文字幕久...| 深夜视频一区二区| 亚洲精品国产精品国| 日本成人xxx| 欧美日韩hd| 国产成人精品日本亚洲专区61| 久久久久久久福利| 日本a级片视频| 成人在线免费观看一区| 国产视频精品视频| 一级片在线观看免费| 噼里啪啦国语在线观看免费版高清版| 精品国产99久久久久久宅男i| 久久精品五月婷婷| 精品国产中文字幕第一页| 无码人妻精品一区二区三区不卡| 欧美一区二区人人喊爽| 欧美日韩水蜜桃| 日韩乱码在线观看| 亚洲天堂2014| 精品999成人| 日韩不卡在线观看日韩不卡视频| 亚洲天堂网站在线| 中文字幕一区二区久久人妻网站| 国产一区二区丝袜高跟鞋图片| 俄罗斯嫩小性bbwbbw| 亚洲午夜在线视频| 浮力国产第一页| 精品视频站长推荐| 91麻豆6部合集magnet| 亚洲av无码一区二区三区性色| 66av国产| 麻豆一区二区99久久久久| 影音先锋男人资源在线| 国产探花精品一区二区| 日韩一级二级| 香蕉视频网页版| 精品动漫一区二区| 成人短视频下载| 亚洲一区二区天堂| www.九色在线| 九九热只有这里有精品| 日本在线视频一区| 这里只有久久精品视频| 国产精品欧美极品| 日韩av不卡一区| 天天干天天操天天干天天操| 美女福利一区| 久久久久久久欧美精品| 亚洲精品网址在线观看| 亚洲网站视频| 亚洲免费在线看| 成年人小视频在线观看| 一区二区三区在线免费观看| 久久久久av| 精品孕妇一区二区三区| 在线观看视频一区二区| 亚洲综合成人在线视频| 国产手机在线观看| 日韩精品伦理第一区| 国产又爽又黄免费视频| www.色香蕉| 极品校花啪啪激情久久| 亚洲综合色av| 浮妇高潮喷白浆视频| 亚洲美女自拍偷拍| 国产美女自拍视频| 亚洲啪av永久无码精品放毛片| 激情图片小说一区| 波多野结衣在线观看一区二区| 制服丝袜在线第一页| 亚洲大尺度视频| 国产网站在线看| 777av视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美丰满少妇xxxxx高潮对白| 欧亚洲嫩模精品一区三区| 日韩视频在线免费观看| 国产精品久久久久aaaa樱花| 久久国产99| 亚洲精品一区二区三区四区| 日本激情免费| 99视频都是精品热在线播放| 国产日韩综合| 久久久久久久久久影院| 一区二区三区入口| 97精品国产露脸对白| 老司机精品视频在线| 黄色影院一级片| 久久综合入口| 中文字幕av一区二区三区谷原希美| 免费黄色网页在线观看| 在线国产伦理一区| 精品视频麻豆入口| 欧美日韩在线精品一区二区三区激情综合| 欧美亚洲一级二级| 黄色无遮挡网站| siro系绝美精品系列| 色综合久久综合| 成人免费毛片aaaaa**| 成人h动漫精品一区二区| 亚洲日本在线播放| a成人v在线| 日韩 欧美 亚洲| 摸bbb搡bbb搡bbbb| 亚洲精品国产setv| 国产高清在线a视频大全| 高端美女服务在线视频播放| 中文视频一区视频二区视频三区| 亚洲欧美日韩中文字幕一区二区三区| 性生活视频网址| 欧美日韩视频免费播放| 精品美女永久免费视频| 黄网站app在线观看大全免费视频| c++连点器| 欧美一区午夜精品| 中文字幕一区二区三区在线观看| 国产精品高清在线| 日本电影一区二区在线观看| 国产秒拍福利视频露脸| 久久久99爱| 国产美女在线精品| 日本成人精品视频| 狠狠色丁香久久婷婷综合丁香| 欧美性xxxxxx少妇| 久久精品视频9| 欧美日韩在线大尺度| 国产精品一区二区三区av| 97视频在线观看亚洲| 欧美中文一区二区| 三级视频网站在线观看| 阿v天堂2018| 国产女人18毛片水18精品| 亚洲国产日韩在线| 欧美午夜精品| 免费的av电影| 久久99精品国产自在现线| 麻豆精品一区二区三区视频| 久久久久久久久综合影视网| 亚洲欧美日韩人成在线播放| 波多野结衣在线免费观看| 亚洲精品国产无码| 黑粗硬大欧美视频| 国产成人精品一区二区无码呦| 欧美视频在线免费播放| japanesexxxx在线播放| 日韩欧美四区| 国产又大又黄又粗| 国产精品久久久久久亚洲调教| 综合色就爱涩涩涩综合婷婷| 欧洲美女精品免费观看视频| 成人短视频下载| 蜜臀a∨国产成人精品| 日韩欧美国产wwwww| 中文字幕2020第一页| 91免费看蜜桃| 99亚洲乱人伦aⅴ精品| 午夜精品一区二区三区在线视频| 天天综合网网欲色| а√中文在线资源库| 日本欧美三级| 一起草最新网址| 国产一二区在线| 国产精品自拍一区| 亚洲毛片av| 含羞草激情视频| 另类图片亚洲另类| 毛片网站免费哦| 国产精品香蕉国产| 国产日韩专区在线| 99热国内精品| 成人免费看aa片| 国产精品一区二区三区成人| 国产精品久久久久久久av电影| 97激碰免费视频| 亚洲主播在线播放| 1000精品久久久久久久久| 永久免费网站视频在线观看| 国产精品99久久久久久大便| 婷婷久久国产对白刺激五月99| 中文字幕一区二区三区四区视频| 女人被狂躁到高潮视频免费网站| 蜜桃免费网站一区二区三区| 亚洲女同中文字幕| 久久国产精彩视频| 色综合五月天导航| 久久久神马电影| 在线精品视频免费观看| 亚洲精品字幕| 四虎精品成人免费网站| 在线观看入口黄最新永久免费国产| 久久亚洲免费视频| 欧产日产国产v| 国产视频第一页在线观看| 成人在线观看一区二区| 欧美日韩久久一区二区| 91看片淫黄大片一级| 亚洲视频欧美视频| 日日摸日日碰夜夜爽无码| 精品日韩视频在线观看| 欧美大片专区| 亚洲男人的天堂网站| 欧美成年网站| 久久超级碰碰| 日韩在线免费视频观看| 精品一区二区三区四区在线|