环球电气之家-午夜精彩视频-中国专业电气电子产品行业服务网站!

產品分類

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

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

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

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

  • 關鍵詞:                                                                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

推薦產品

更多
主站蜘蛛池模板: SPC工作站-连杆综合检具-表盘气动量仪-内孔缺陷检测仪-杭州朗多检测仪器有限公司 | vr安全体验馆|交通安全|工地安全|禁毒|消防|安全教育体验馆|安全体验教室-贝森德(深圳)科技 | 结晶点测定仪-润滑脂滴点测定仪-大连煜烁 | 电机保护器-电动机综合保护器-上海硕吉电器有限公司 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 闪蒸干燥机-喷雾干燥机-带式干燥机-桨叶干燥机-[常州佳一干燥设备] | 电伴热系统施工_仪表电伴热保温箱厂家_沃安电伴热管缆工业技术(济南)有限公司 | 早报网 | 山东集装箱活动房|济南集装箱活动房-济南利森集装箱有限公司 | 直流电能表-充电桩电能表-导轨式电能表-智能电能表-浙江科为电气有限公司 | 广州企亚 - 数码直喷、白墨印花、源头厂家、透气无手感方案服务商! | 全自动面膜机_面膜折叠机价格_面膜灌装机定制_高速折棉机厂家-深圳市益豪科技有限公司 | 预制舱-电力集装箱预制舱-模块化预制舱生产厂家-腾达电器设备 | 水性绝缘漆_凡立水_绝缘漆树脂_环保绝缘漆-深圳维特利环保材料有限公司 | jrs高清nba(无插件)直播-jrs直播低调看直播-jrs直播nba-jrs直播 上海地磅秤|电子地上衡|防爆地磅_上海地磅秤厂家–越衡称重 | 3D全息投影_地面互动投影_360度立体投影_水幕灯光秀 | 广东银虎 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 右手官网|右手工业设计|外观设计公司|工业设计公司|产品创新设计|医疗产品结构设计|EMC产品结构设计 | 深圳美安可自动化设备有限公司,喷码机,定制喷码机,二维码喷码机,深圳喷码机,纸箱喷码机,东莞喷码机 UV喷码机,日期喷码机,鸡蛋喷码机,管芯喷码机,管内壁喷码机,喷码机厂家 | 吸污车_吸粪车_抽粪车_电动三轮吸粪车_真空吸污车_高压清洗吸污车-远大汽车制造有限公司 | 微学堂-电动能源汽车评测_电动车性能分享网 | 肉嫩度仪-凝胶测试仪-国产质构仪-气味分析仪-上海保圣实业发展有限公司|总部 | 彩信群发_群发彩信软件_视频短信营销平台-达信通 | 南京技嘉环保科技有限公司-杀菌除臭剂|污水|垃圾|厕所|橡胶厂|化工厂|铸造厂除臭剂 | 铝合金风口-玻璃钢轴流风机-玻璃钢屋顶风机-德州东润空调设备有限公司 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 权威废金属|废塑料|废纸|废铜|废钢价格|再生资源回收行情报价中心-中废网 | 光栅尺_Magnescale探规_磁栅尺_笔式位移传感器_苏州德美达 | 机床主轴维修|刀塔维修|C轴维修-常州翔高精密机械有限公司 | 商标转让-购买商标专业|放心的商标交易网-蜀易标商标网 | 生物制药洁净车间-GMP车间净化工程-食品净化厂房-杭州波涛净化设备工程有限公司 | 开锐教育-学历提升-职称评定-职业资格培训-积分入户 | 软文推广发布平台_新闻稿件自助发布_媒体邀约-澜媒宝 | 细沙回收机-尾矿干排脱水筛设备-泥石分离机-建筑垃圾分拣机厂家-青州冠诚重工机械有限公司 | 贴板式电磁阀-不锈钢-气动上展式放料阀-上海弗雷西阀门有限公司 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 | 长沙印刷厂-包装印刷-画册印刷厂家-湖南省日大彩色印务有限公司 青州搬家公司电话_青州搬家公司哪家好「鸿喜」青州搬家 | 在线钠离子分析仪-硅酸根离子浓度测定仪-油液水分测定仪价格-北京时代新维测控设备有限公司 | 商标转让-商标注册-商标查询-软著专利服务平台 - 赣江万网 | 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 杰福伦_磁致伸缩位移传感器_线性位移传感器-意大利GEFRAN杰福伦-河南赉威液压科技有限公司 | 领先的大模型技术与应用公司-中关村科金 |