博客專欄

        EEPW首頁 > 博客 > Air780E模組LuatOS開發(fā):位運(yùn)算(bit)示例

        Air780E模組LuatOS開發(fā):位運(yùn)算(bit)示例

        發(fā)布人:13673998452 時(shí)間:2025-02-06 來源:工程師 發(fā)布文章

        本文我要說的是低功耗4G模組Air780E的LuatOS開發(fā),關(guān)于位運(yùn)算(bit)示例,我將詳細(xì)解析分享給大家。



        一、位運(yùn)算概述


        位運(yùn)算是一種在計(jì)算機(jī)系統(tǒng)中對(duì)二進(jìn)制數(shù)位進(jìn)行操作的運(yùn)算。由于計(jì)算機(jī)內(nèi)部數(shù)據(jù)的存儲(chǔ)和處理都是以二進(jìn)制形式進(jìn)行的,位運(yùn)算能夠直接對(duì)整數(shù)的二進(jìn)制位進(jìn)行高效操作。位運(yùn)算包括與(&)、或(|)、異或(^)、非(~)、左移(<<)和右移(>>)等基本操作。



        二、演示功能概述


        本文通過了解位操作的API函數(shù),并用代碼演示功能來熟悉Air780E-LuatOS-軟件 demo-基礎(chǔ)服務(wù)-位運(yùn)算(bit)。



        三、硬件準(zhǔn)備


        3.1 Air780E核心板

        使用Air780E核心板,如下圖所示:

        wKgZPGdKqNaAUn-mAALoicuQvpA378.png

        此核心板的詳細(xì)使用說明參考:
        https://docs.openluat.com/air780e/product/

        Air780E產(chǎn)品手冊(cè) 中的 《開發(fā)板Core_Air780E使用說明》,寫這篇文章時(shí)最新版本的使用說明為:《開發(fā)板Core_Air780E使用說明》;若在使用過程中遇到任何問題,可以直接參考這份使用說明文檔。


        3.2 SIM 卡

        中國大陸環(huán)境下,可以上網(wǎng)的sim 卡。一般來說,使用移動(dòng)/電信/聯(lián)通的物聯(lián)網(wǎng)卡或者手機(jī)卡都行。


        3.3 PC 電腦

        請(qǐng)準(zhǔn)備一臺(tái)配備 USB 接口且能夠正常上網(wǎng)的電腦。

        電腦操作系統(tǒng)為:
        WIN10以及以上版本的WINDOWS系統(tǒng)。


        3.4 數(shù)據(jù)通信線

        帶TYPE-C口的USB數(shù)據(jù)線.



        四、軟件環(huán)境


        4.1 Luatools 工具

        要想燒錄LuatOS到4G模組中,需要用到的調(diào)試工具:Luatools

        詳細(xì)使用說明參考:
        Luatools 工具使用說明:
        https://docs.openluat.com/Luatools/

        Luatools 工具集具備以下幾大核心功能:

        一鍵獲取最新固件:
        自動(dòng)連接服務(wù)器,輕松下載最新的模組固件。

        固件與腳本燒錄:
        便捷地將固件及腳本文件燒錄至目標(biāo)模組中。

        串口日志管理:
        實(shí)時(shí)查看模組通過串口輸出的日志信息,并支持保存功能。

        串口調(diào)試助手:
        提供簡潔的串口調(diào)試界面,滿足基本的串口通信測試需求。

        Luatools下載之后,新建一個(gè)命名為 "Luatools" 的文件夾,將下載的Luatools_v3.exe拷貝或移動(dòng)到新建的Luatools文件夾內(nèi),點(diǎn)擊 Luatools_v3.exe 即可運(yùn)行。


        4.2 準(zhǔn)備需要燒錄的代碼

        首先要說明一點(diǎn):腳本代碼, 要和固件的 soc 文件一起燒錄。


        4.2.1 燒錄的底層固件文件

        底層 core 下載地址:

        LuatOS 固件版本下載地址:

        https://docs.openluat.com/air780e/luatos/firmware/

        wKgZPGdKqReAVKAhAAIKCKV24uI773.png

        Air780E的底層固件在 Luatools 解壓后目錄的:
        LuatOS-SoC_V1112_EC618_FULL.soc

        wKgZO2dKqSWAaB9CAAGaQuo_6uo741.png


        4.2.2 燒錄的腳本代碼

        首先要下載Air780的LuatOS示例代碼到一個(gè)合適的項(xiàng)目目錄,示例代碼網(wǎng)站:
        https://gitee.com/openLuat/LuatOS-Air780E

        下載流程參考下圖:

        wKgZPGdKqTKARkvFAAchASBMvVs175.png


        五、API 說明

        位操作支持庫


        5.1 bit.bnot( value )

        取反,等價(jià)于 C 語言中的~

        參數(shù)

        wKgZO2dKqUKABdDkAACO3cuzTRY537.png

        返回值

        wKgZPGdKqVCABQ6BAACMJFf29-g420.png

        例子

        wKgZPGdKqVqANUyrAACxxWRT9k4947.png

        5.2 bit.band( val1, val2, … valn )

        與運(yùn)算,等價(jià)于 C 語言中的 val1 & val2 & … & valn

        參數(shù)

        wKgZO2dKqZiAQ4WHAACUAvjhvn8744.png

        返回值

        wKgZPGdKqaOATKQrAACdGLUUf00760.png

        例子

        wKgZPGdKqa2AUGlVAABj7dITrRM477.png

        5.3 bit.bor( val1, val2, … valn )

        或運(yùn)算,等價(jià)于 C 里面的 val1 | val2 | … | valn

        注:對(duì)于Air780E建議不要超過多少個(gè)參數(shù)

        參數(shù)

        wKgZPGdKqbiAcAdZAAEiS7Jq_q0226.png

        返回值

        wKgZPGdKqmCAYgSOAACZxCxbpd4038.png

        例子

        wKgZPGdKqmqAZlqvAABonBAkuGs738.png

        5.4 bit.bxor( val1, val2, … valn )

        異或運(yùn)算,等價(jià)于 C 語言中的 val1 ^ val2 ^ … ^ valn

        參數(shù)

        wKgZPGdKqnSAQraMAAES9a68ifw833.png

        返回值

        wKgZO2dKqn6AHDNLAAB0KQzooYg711.png

        例子

        wKgZO2dKqomANlLDAABvr9-d-a4436.png

        5.5 bit.lshift( value, shift )

        邏輯左移,等價(jià)于 C 語言中的 value << shift

        參數(shù)

        wKgZPGdKqpKAEMarAADmiOqQvvA739.png

        返回值

        wKgZO2dKqp2AekOVAABWZ1Dk6Co133.png

        例子

        wKgZO2dKqqaAMsTlAACI1ChGGPc481.png

        5.6 bit.rshift( value, shift )

        邏輯右移,等價(jià)于 C 語言中的 value >> shift

        參數(shù)

        wKgZO2dKqrOAZRpyAADYhgM04No710.png

        返回值

        wKgZPGdKqr-ABl6vAACNnlH7Hzw410.png

        例子

        wKgZO2dKqsmAYfyRAACKCjabJ8o769.png

        5.7 bit.arshift( value, shift )

        算數(shù)右移

        參數(shù)

        wKgZO2dKqtSAMVhZAADRmr7OcmQ321.png

        返回值

        wKgZO2dKqt6AWro5AACOyme76Sw105.png

        例子

        wKgZPGdKqumANlSdAACq6xCkrEg383.png

        5.8 bit.bit( position )

        左移運(yùn)算,等價(jià)于 C 語言中的 1 << position

        參數(shù)

        wKgZPGdKqvOAOxiOAACeTdYh2vg530.png

        返回值

        wKgZO2dKqv2AX7cDAACg0VnFI1k400.png

        例子

        wKgZO2dKqwaAZ59gAACaPK1tSwM575.png

        5.9 bit.isset(value, position)

        測試位數(shù)是否被置 1

        參數(shù)

        wKgZO2dKqxCAFdEEAACDI3Kgzkw655.png

        返回值

        wKgZO2dKqxuAW1DLAACFnSK9Lmo506.png

        例子

        wKgZPGdKqyeAPRToAAKMw9j06jE546.png

        5.10 bit.isclear(value, position)

        測試位數(shù)是否被置 0

        參數(shù)

        wKgZO2dKqzKAfVtRAADjMNq2lwA631.png

        返回值

        wKgZPGdKqz2ALRM7AACFEp-NEhM454.png

        例子

        wKgZO2dKq0mAHm6KAAEoH2bHP0g389.png

        5.11 bit.set(value, pos1, pos2, …posn)

        置 1

        參數(shù)

        wKgZO2dKq1OAOs7OAADAPrG0lBw444.png

        返回值

        wKgZO2dKq12Ae1bPAACSaC_0LCA274.png

        例子

        wKgZO2dKq2iABbBIAADLHfSK8Ww456.png

        5.12 number=bit.clear(value, pos1, pos2, …posn)

        置 0

        參數(shù)

        wKgZPGdKq3OAcFD_AADALpCSlus620.png

        返回值

        wKgZO2dKq32AGuCWAABPaywU9v8980.png

        例子

        wKgZO2dKq4eACtMOAADEsBWjOUc967.png


        六、功能驗(yàn)證


        6.1 示例代碼

        下面根據(jù) demo 演示位操作的功能,可以參考以下示例代碼.

        示例代碼如下:

        wKgZO2dKq5qAV3r2AAgyIIoYJhE938.pngwKgZO2dKq6iAPTZ4AAIWOgKsv3U688.png


        6.2 燒錄步驟


        6.2.1 正確連接電腦和 4G 模組電路板

        使用帶有數(shù)據(jù)通信功能的數(shù)據(jù)線,不要使用僅有充電功能的數(shù)據(jù)線.


        6.2.2 識(shí)別 4G 模組的 BOOT 引腳

        在下載之前,要用模組的 BOOT 引腳觸發(fā)下載, 也就是說,要把 4G 模組的 BOOT 引腳拉到 1.8v,或者直接把 BOOT 引腳和 VDD_EXT 引腳相連.我們要在按下 BOOT 按鍵時(shí)讓模塊開機(jī),就可以進(jìn)入下載模式了.


        具體到Air780E開發(fā)板:

        1、當(dāng)我們模塊沒開機(jī)時(shí),按著 BOOT 鍵然后長按 POW 開機(jī);

        2、當(dāng)我們模塊開機(jī)時(shí),按著 BOOT 鍵然后點(diǎn)按重啟鍵即可。

        wKgZO2dKq76AKb-bABkiCYmzo1g631.png


        6.2.3 識(shí)別電腦的正確端口

        判斷是否進(jìn)入 BOOT 模式:模塊上電,此時(shí)在電腦的設(shè)備管理器中,查看串口設(shè)備, 會(huì)出現(xiàn)一個(gè)端口表示進(jìn)入了 BOOT 下載模式,如下圖所示:

        wKgZO2dKq8uAW41lAANQMBjHT1I947.png

        6.2.4 用 Luatools 工具燒錄

        新建項(xiàng)目

        首先,確保你的 Luatools 的版本,大于等于 3.0.6 版本的。

        在 Luatools 的左上角上有版本顯示的,如圖所示:

        wKgZO2dKq9aAekdqAAF1qkiA6Hs416.png

        Luatools 版本沒問題的話, 就點(diǎn)擊 Luatools 右上角的“項(xiàng)目管理測試”按鈕,如下圖所示:

        wKgZO2dKq-CAPsJuAAEmjDLDDC8953.png

        這時(shí)會(huì)彈出項(xiàng)目管理和燒錄管理的對(duì)話框,可以新建一個(gè)項(xiàng)目,如下圖:

        wKgZPGdKq-yANUPbAATOJgYAJrk402.png

        開始燒錄

        選擇Air780E板子對(duì)應(yīng)的底層 core 和剛改的 main.lua 腳本文件,下載到板子中:

        wKgZO2dKq_iAch6XAATb-J8sjaA907.png

        點(diǎn)擊下載后,我們需要進(jìn)入BOOT模式才能正常下載。

        如果沒進(jìn)入BOOT模式會(huì)出現(xiàn)下圖情況::

        wKgZPGdKrAOAZmvaAAC27TniFCA484.png

        進(jìn)入 BOOT 模式下載,如圖:

        wKgZO2dKrA6AQMcQAAHvDevPgSg370.pngwKgZO2dKrBiAbYsLAAJH1dCNeMM574.png

        6.3 對(duì)應(yīng) log 信息

        wKgZPGdKrCaAXAWnAAiTR1JdbAE528.png

        分享完畢


        *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。




        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 万年县| 平塘县| 孟连| 申扎县| 建平县| 垣曲县| 白银市| 浦东新区| 花莲市| 保定市| 和顺县| 溧阳市| 徐闻县| 资溪县| 平昌县| 兰州市| 象州县| 修武县| 曲阜市| 乐清市| 福建省| 社会| 平武县| 永吉县| 铜梁县| 莱芜市| 迭部县| 芦溪县| 新津县| 萍乡市| 永胜县| 齐齐哈尔市| 和林格尔县| 兴宁市| 尉犁县| 图片| 疏附县| 桓仁| 元朗区| 德格县| 兴宁市|