<strike id="kiyse"></strike>
  • <tr id="kiyse"></tr>
  • <strike id="kiyse"></strike><samp id="kiyse"><tbody id="kiyse"></tbody></samp>
    <strike id="kiyse"><s id="kiyse"></s></strike>
    <tr id="kiyse"></tr>
    <noframes id="kiyse"><code id="kiyse"></code></noframes>
    <th id="kiyse"></th>
    <samp id="kiyse"></samp>
  • <th id="kiyse"><s id="kiyse"></s></th>
  • 英創(chuàng)Linux主板上運行Python, C#應(yīng)用程序

     2020-9-24     作者:Emtronix         

      英創(chuàng)公司的工控主板支持Linux和Windows CE兩種軟件平臺。隨著Linux系統(tǒng)的不斷發(fā)展完善,它已成為嵌入式系統(tǒng)開發(fā)的主流平臺。傳統(tǒng)的嵌入式Linux平臺的應(yīng)用程序均采用C/C++語言來開發(fā),包括Qt本質(zhì)上都是C/C++的。C/C++屬于較為底層的語言,相對說來入門門檻較高,因此能熟練掌握C/C++編程技術(shù)的工程師也就變成了“稀缺資源”。而在實際應(yīng)用中,一旦產(chǎn)品目標(biāo)確定,都需要盡快完成開發(fā),以最短的時間把產(chǎn)品投入市場。這時C/C++編程的固有難度,就往往成為整個產(chǎn)品開發(fā)的瓶頸,延緩客戶經(jīng)營目標(biāo)的實現(xiàn)。


      針對客戶在產(chǎn)品開發(fā)中的C/C++編程問題,結(jié)合當(dāng)前多種編程語言的發(fā)展情況,英創(chuàng)將在其主要的Linux平臺主板型號ESM8000、ESM7000和ESM6800H上,配置Python和C#兩種語言的運行環(huán)境,即支持客戶采用標(biāo)準(zhǔn)Python或C#來開發(fā)應(yīng)用程序。相對C/C++,Python和C#是更為高級、安全的編程語言,因為更接近人的自然語言,因此學(xué)習(xí)難度大大降低,或者說入門門檻很低。Python幾乎成Linux系統(tǒng)的主流語言,在計算機應(yīng)用的方方面面都有廣泛的使用,在高校也大量教授,這讓企業(yè)很容易獲得Python工程師。而C#則在過去多年的工業(yè)PC應(yīng)用中,受到廣大從事工業(yè)控制的工程師的認可,包括大量使用英創(chuàng)WinCE主板的老客戶,他們可通過C#自然過渡到Linux平臺的應(yīng)用程序開發(fā)來。


    Python的情況


      在ESM8000、ESM7000和ESM6800系列主板上的Python運行環(huán)境,是以yocto項目的Python 3為基礎(chǔ),并針對主板的各個接口,包括網(wǎng)絡(luò)、串口、GPIO、SPI、I2C等,配置了相關(guān)接口的class庫,并通過了基本測試。


      客戶可在Linux開發(fā)主機上安裝微軟的開源工具Visual Studio Code,并在VS Code中安裝Python插件,就構(gòu)成了基本的Python應(yīng)用程序開發(fā)環(huán)境。為了提高程序編寫過程的效率,針對各個接口,還需要安裝以下class庫:

      串口:pyserial

      GPIO、SPI、I2C:python-periphery


      在Linux開發(fā)主機上開發(fā)均可用pip命令進行安裝:

      #>pip install pyserial

      #>pip install python-periphery


      安裝這些插件的目的是為了編寫Python代碼有在線幫助以及函數(shù)聯(lián)想功能,提高編程效率,但與實際應(yīng)用無關(guān)。在英創(chuàng)的主板上已配置安裝的對應(yīng)Python庫,將支持實際的程序運行。


      以上就構(gòu)成了基本的Python應(yīng)用程序開發(fā)環(huán)境。開發(fā)流程大致為:


      1、為即將開發(fā)的應(yīng)用程序創(chuàng)建一個目錄(對應(yīng)一個App project),并用VS Code打開這個目錄,例如:

      #>mkdir step1_file

      #>cd step1_file

      #>code .   

      2、在VS Code的下添加相應(yīng)的文件(如:step1_file.py),并在代碼窗口編寫代碼。


      代碼編寫完成后,即可直接在英創(chuàng)的板卡上運行。如:

      #root@ESM8000>python3 step1_file.py

      利用Python進行嵌入式開發(fā),其優(yōu)點是主機開發(fā)環(huán)境易于搭建,僅需要一個編輯代碼的環(huán)境即可,無需搭建交叉編譯的環(huán)境,客戶易于上手,方便盡快完成應(yīng)用程序的開發(fā)。采用Python編程的另一個重要優(yōu)點是,總是可以找到成熟穩(wěn)定的功能庫,來滿足實際應(yīng)用需求,這必然大大加快應(yīng)用程序的開發(fā)。


    C#的情況


      這兩年微軟以開源模式,推出了跨平臺的.NET Core環(huán)境,可以支持在Linux平臺上的console類型的C#應(yīng)用程序的運行。目前已發(fā)布.NET 5 rc1(release candidate 1),預(yù)計2020年底前會有.NET 5正式版發(fā)布。在ESM8000、ESM7000和ESM6800系列主板上已配置了.NET 5核心系統(tǒng),以及針對各個應(yīng)用接口,包括網(wǎng)絡(luò)、串口、GPIO、SPI、I2C等,的class庫,并通過了基本測試。


      客戶可在Windows或Linux開發(fā)主機上安裝微軟的開源工具Visual Studio Code,并在VS Code中安裝C#插件,就構(gòu)成了基本的C#應(yīng)用程序開發(fā)環(huán)境。C#應(yīng)用程序基本開發(fā)流程大致為


      1、為即將開發(fā)的應(yīng)用程序創(chuàng)建一個目錄(對應(yīng)一個App project),并用VS Code打開這個目錄。

      2、在VS Code的Terminal窗口執(zhí)行”dotnet new console”,創(chuàng)建一個C# Project。

      3、在VS Code的Terminal窗口執(zhí)行”dotnet add package …”,來添加所需要的各種接口、計算類庫,dotnet會自動從微軟NuGet網(wǎng)站中下載這些庫,并添加到本工程項目中。

      4、在VS Code的代碼窗口編寫應(yīng)用程序代碼。這是應(yīng)用程序開發(fā)的主體。

      5、在VS Code的Terminal窗口執(zhí)行”dotnet publish –r linux-arm …”,編譯并構(gòu)成針對具體目標(biāo)運行環(huán)境的代碼。ESM7000和ESM6800的運行架構(gòu)是linux-arm,而ESM8000則為linux-arm64。


      通過網(wǎng)絡(luò)掛載,是Linux系統(tǒng)最通用的調(diào)試方法。在Linux主機的NFS服務(wù)器通常都是缺省配置的,只要在目標(biāo)板(ESM8000、ESM7000或EM6800H)上運行mount命令,即可完成掛載。對Windows開發(fā)主機,可運行開源的WinNFSd,來啟動一個NFS服務(wù)器,就可在英創(chuàng)主板上掛載Windows主機,并運行上面的應(yīng)用程序了。


      相比在WinCE平臺上應(yīng)用開發(fā),轉(zhuǎn)移到Linux平臺后,客戶獲得的主要利益,是能充分利用Linux平臺對新技術(shù)、新功能的大量成果,典型的有:

      ● 性能穩(wěn)定的高速WiFi通訊,且成本低廉;

      ● 高速PCIe接口的應(yīng)用,包括NVMe大容量高速存儲等;

      ● 基于USB的低成本接口擴展,如Audio播放、多路網(wǎng)口等;


    顯示


      目前在ESM8000、ESM7000和ESM6800H上配置的Python和C#運行環(huán)境,還不能支持圖形顯示。對需要顯示的應(yīng)用,可利用主板上豐富的串口資源,采用串口屏方案來彌補。串口屏成本低廉,形式多樣,很多都帶有觸摸屏功能,因此可很容易滿足大部分工業(yè)控制的應(yīng)用需求。對需要更好用戶體驗的人機交互界面(HMI)的應(yīng)用,估計還是需要采用Qt/C/C++來開發(fā)應(yīng)用程序。


    我們能做什么?


      在客戶采用Python,C#開發(fā)應(yīng)用程序的過程中,我們?yōu)榭蛻籼峁┑姆?wù)主要在以下幾個方面:

      1、協(xié)助客戶配置其開發(fā)主機,對C#編程來說,可選擇Windows10或Linux Ubuntu;對Python編程來說,則推薦Linux Ubuntu。代碼編輯工具推薦Visual Studio Code。這是一款開源的IDE環(huán)境,可支持Python和.NET C#的程序開發(fā)。

      2、根據(jù)客戶在開發(fā)過程中的一般性需求,幫助尋找合適的功能class庫,并進行可用性測試,加快客戶的開發(fā)進度。

      3、對具有明確市場前景的特殊需求,通常涉及接口的實時應(yīng)用,可采用C/C++來開發(fā)后端(back end)類庫的方式來實現(xiàn),使客戶應(yīng)用程序可保持一致的Python或C#形式,便于程序的維護升級。

      4、為了加快客戶編程入門,分別以Python和C#提供了2套功能相同的Demo程序,每套Demo由9個簡單程序組成,介紹各個接口的應(yīng)用,以及多線程、數(shù)據(jù)庫的應(yīng)用,后續(xù)會有更多的文章介紹這些Demo實例。

    四虎永久在线精品影院| 久久精品国产一区二区三区肥胖| 2022国产精品视频| 婷婷国产成人精品视频| 国产午夜精品一二区理论影院| 日本精品3d动漫一区二区| 98色精品视频在线| 国语自产精品视频在线看| 亚洲精品国产国语| 在线视频日韩精品| 国产精品小视频免费无限app| 日本加勒比久久精品| 国产精品自产拍在线网站| 亚洲A∨精品一区二区三区下载| 国产精品高清视亚洲精品| 亚洲狠狠ady亚洲精品大秀| 免费精品无码AV片在线观看| 精品免费视在线观看| 精品精品国产高清a毛片牛牛| 国产一区二区三区在线观看精品| aaa级精品久久久国产片| 亚洲精品成人a在线观看| 精品人妻一区二区三区四区| 国产成人精品视频午夜| 国产成人无码精品久久二区三区| 精品久久综合一区二区| 国产精品第100页| 国产亚洲精品无码拍拍拍色欲| 国产午夜精品久久久久九九电影| 国产精品视频九九九| 久久久久人妻精品一区三寸蜜桃| 国产精品自在线拍国产电影| 国产精品无码素人福利不卡| 91精品国产高清91久久久久久| 国产成人精品综合久久久久| 精品久久一区二区| 免费精品人在线二线三线区别| 亚洲国产精品精华液| 国产精品盗摄一区二区在线| 成人午夜精品视频在线观看| 精品国产三级a乌鸦在线观看|