<rt id="m4md3"></rt>
  • <bdo id="m4md3"><meter id="m4md3"></meter></bdo>
  • <label id="m4md3"></label>
      <center id="m4md3"><optgroup id="m4md3"></optgroup></center>
      產品分類

      當前位置: 首頁 > 工業電氣產品 > 工業開關 > 風壓開關

      類型分類:
      科普知識
      數據分類:
      風壓開關

      Toradex WinCE 庫演進:新的庫文件方法說明

      發布日期:2022-04-26 點擊率:107

      • 關鍵詞:                                                                ARM                                                                WinCE                                                                library

      • 摘要:Windows十多年之前,為了演示我們的 計算機模塊 ,或者稱為 系統模塊(SoM),我們編寫了一些 WinCE 的代碼。例如 GPIO、I2C、模擬輸入等。當時我們只是為了純粹的演示目的,并沒有關系諸如維護、不同模塊之間的兼容性等問題。然而,這些演示程序卻被大量 Windows Embedded Compact 用戶所采用。我們收到越來越多的技術支持和功能要求,于是我們開始將其集成到演示代碼中去。最終,我們有了今天的針對基于 PXA 和 Tegra? 系統模塊的庫文件包。通過這些庫文件可以可靠和方便地使用我們的模塊。但是,迭代維護和為新功能提供 API 卻沒有那么容易。


      1). 概述

      Windows十多年之前,為了演示我們的 計算機模塊 ,或者稱為 系統模塊(SoM),我們編寫了一些WinCE 的代碼。例如 GPIO、I2C、模擬輸入等。當時我們只是為了純粹的演示目的,并沒有關系諸如維護、不同模塊之間的兼容性等問題。然而,這些演示程序卻被大量 Windows Embedded Compact 用戶所采用。我們收到越來越多的技術支持和功能要求,于是我們開始將其集成到演示代碼中去。最終,我們有了今天的針對基于 PXA 和 Tegra? 系統模塊的庫文件包。通過這些庫文件可以可靠和方便地使用我們的模塊。但是,迭代維護和為新功能提供 API 卻沒有那么容易。


      當我們為我們的模塊系列家族添加新的處理器(片上系統或者 SoC),我們決定停止擴展舊的 API,而是采用一套全新的 API,我們可以把過去獲得的經驗都傾注其中。我們稱這套新的庫文件包為“Toradex CE Libraries”。該庫文件包的目標和我們原來的一樣:使我們的用戶能夠方便地使用系統模塊的功能。


      但是,我們三個非常重要的要求:


      ./ 可擴展,并可兼容的 API

      ./ 允許通過注冊表配置庫文件

      ./ 易于維護

      我們將在新的庫文件包中滿足三個所有的要求。


      2). 可擴展,并可兼容的API

      為了保持我們的 API 滿足將來的需求,我們決定引入兩套調用 API。第一種是通常的做法,使用字符串或者整數將信息傳遞給庫。下面演示了如何將一個系統模塊的引腳設置為 GPIO 輸入,并調用 SetConfigString 函數激活下拉電阻:

      -----------------------------

      // Set pin to alternate function GPIO,Input with pull-down

      success = Gpio_SetConfigString(hGpio, io1,NULL, L"altfn=ioAltFnGpio,dir=in,pull=down", StoreVolatile);

      -----------------------------


      另外一個例子是調用 SetConfigInt 函數將 I2C 控制器的速率設置為 400KHz:

      -----------------------------

      // Set I2C speed to 400KHz

      success = I2c_SetConfigInt(i2c,L"BitRateHz", 400000, StoreVolatile);

      -----------------------------

      采用字符串的方法允許我們保持 API 的 100% 兼容,并且在將來可以添加現在系統模塊還沒有的更多功能。


      第二套調用的 API 主要出于性能或者采用標準函數的原因。下面是一個 GPIO 庫文件中修改一個 GPIO 的函數例程。調用 SetConfigString 或者 Set ConfigInt 可以實現同樣的目的,出于性能考慮,我們提供了不需要字符串解析的函數。

      -----------------------------

      // Set it to Output,  High

      Gpio_ConfigureAsGpio(hGpio, io1);

      Gpio_SetDir         (hGpio, io1, ioOutput);

      Gpio_SetLevel       (hGpio, io1, ioHigh);

      -----------------------------


      我們看看采用標準函數讀取 I2C 的例程。因為性能緣故,我們決定不采用一般字符串的方法(例如上的 Get/SetConfig),但是由于讀 I2C(以及類似的函數)已經固定,無法針對將來的 SoC 做改變。

      -----------------------------

      returnValue = I2c_Read(i2c, (DWORD*) data,8);

      -----------------------------


      3). 允許通過注冊表配置庫文件

      正如前面看到的,我們可以通過字符串和整數配置庫文件。例如也可以在注冊表中配置 SPI 庫使用特定 SPI 接口、片選信號、波特率等,在你的應用啟動的時候加載配置。如果你采用下面的方法加載庫:

      -----------------------------

      hSPI = Spi_Init(L"SPI2");

      -----------------------------

      庫文件會自動從注冊表下面的位置加載配置:

      -----------------------------

      [HKEY_LOCAL_MACHINESOFTWAREToradexSPI2]

      BitRateHz=500000

      DmaEnable=1

      etc.

      -----------------------------

      你也許會想,這有什么好處。其中一個很好的優勢是,可以針對不同設備只維護一個應用。例如,你可以在基于 NXP?(或者可以寫為高通)i.MX6 處理器以及 NXP Vybrid 系統模塊上使用相同的應用。模塊之間唯一的不同是引腳配置,現在這些可以保持在注冊表中。剩余的部分完全相同,因此允許你在不同的系統模塊上使用一個二進制應用,使得您的開發更加容易。


      4). 易于維護

      在本文的最后我想重點介紹“為維護而設計”方面。為了我們能夠簡單、安全地維護,我們根據每一種 SoC 將庫文件分為單獨的源代碼文件。這確保我們能夠在修復漏洞或者增加 SoC 相關功能的時候,保持其他 SoC 部分的代碼不變。這降低了破壞現有代碼的風險,因此也使得我們的軟件總體上更加穩健。


      5). 參考

      您可以在我們的開發者中心 中找到所支持功能的列表以及下載庫文件、API說明等。

      同樣歡迎您查看我們的library roadmap,我們公開了所以已知的問題和我們計劃解決的時間。


      下一篇: PLC、DCS、FCS三大控

      上一篇: 索爾維全系列Solef?PV

      推薦產品

      更多
      主站蜘蛛池模板: 亚洲综合久久久久久中文字幕| 国产婷婷综合丁香亚洲欧洲| 色欲天天婬色婬香视频综合网| 亚洲色偷偷综合亚洲AVYP| 久久精品综合一区二区三区| 伊人久久综合精品无码AV专区| 亚洲色偷偷偷鲁综合| 亚洲综合一区国产精品| 久久乐国产精品亚洲综合| 亚洲综合在线成人一区| 婷婷亚洲综合五月天小说在线 | 久久综合综合久久狠狠狠97色88| 国产精品综合色区在线观看| 五月婷婷激情综合| 亚洲综合伊人久久大杳蕉| 亚洲国产综合人成综合网站00| 天天在线天天综合网色| 亚洲综合日韩久久成人AV| 狠狠色噜狠狠狠狠色综合久| 人人狠狠综合久久亚洲88| 国产精品综合一区二区三区| 色久综合网精品一区二区| 激情五月综合综合久久69| 激情五月婷婷综合| 欧洲97色综合成人网| 亚洲综合国产精品| 色欲香天天天综合网站| 伊人亚洲综合青草青草久热| 国产精彩对白综合视频| 伊人久久亚洲综合影院| 在线精品国产成人综合| 色欲香天天天综合网站| 色综合久久中文色婷婷| 久久综合精品不卡一区二区| 久久99精品综合国产首页| 久久丝袜精品综合网站| 久久91综合国产91久久精品| 精品综合久久久久久888蜜芽| 国产成人综合亚洲AV第一页| 色爱区综合激情五月综合激情| 狠狠色综合久色aⅴ网站|