博客專欄

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

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

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

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



一、位運算概述


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



二、演示功能概述


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



三、硬件準備


3.1 Air780E核心板

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

wKgZPGdKqNaAUn-mAALoicuQvpA378.png

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

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


3.2 SIM 卡

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


3.3 PC 電腦

請準備一臺配備 USB 接口且能夠正常上網的電腦。

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


3.4 數據通信線

帶TYPE-C口的USB數據線.



四、軟件環(huán)境


4.1 Luatools 工具

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

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

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

一鍵獲取最新固件:
自動連接服務器,輕松下載最新的模組固件。

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

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

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

Luatools下載之后,新建一個命名為 "Luatools" 的文件夾,將下載的Luatools_v3.exe拷貝或移動到新建的Luatools文件夾內,點擊 Luatools_v3.exe 即可運行。


4.2 準備需要燒錄的代碼

首先要說明一點:腳本代碼, 要和固件的 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示例代碼到一個合適的項目目錄,示例代碼網站:
https://gitee.com/openLuat/LuatOS-Air780E

下載流程參考下圖:

wKgZPGdKqTKARkvFAAchASBMvVs175.png


五、API 說明

位操作支持庫


5.1 bit.bnot( value )

取反,等價于 C 語言中的~

參數

wKgZO2dKqUKABdDkAACO3cuzTRY537.png

返回值

wKgZPGdKqVCABQ6BAACMJFf29-g420.png

例子

wKgZPGdKqVqANUyrAACxxWRT9k4947.png

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

與運算,等價于 C 語言中的 val1 & val2 & … & valn

參數

wKgZO2dKqZiAQ4WHAACUAvjhvn8744.png

返回值

wKgZPGdKqaOATKQrAACdGLUUf00760.png

例子

wKgZPGdKqa2AUGlVAABj7dITrRM477.png

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

或運算,等價于 C 里面的 val1 | val2 | … | valn

注:對于Air780E建議不要超過多少個參數

參數

wKgZPGdKqbiAcAdZAAEiS7Jq_q0226.png

返回值

wKgZPGdKqmCAYgSOAACZxCxbpd4038.png

例子

wKgZPGdKqmqAZlqvAABonBAkuGs738.png

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

異或運算,等價于 C 語言中的 val1 ^ val2 ^ … ^ valn

參數

wKgZPGdKqnSAQraMAAES9a68ifw833.png

返回值

wKgZO2dKqn6AHDNLAAB0KQzooYg711.png

例子

wKgZO2dKqomANlLDAABvr9-d-a4436.png

5.5 bit.lshift( value, shift )

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

參數

wKgZPGdKqpKAEMarAADmiOqQvvA739.png

返回值

wKgZO2dKqp2AekOVAABWZ1Dk6Co133.png

例子

wKgZO2dKqqaAMsTlAACI1ChGGPc481.png

5.6 bit.rshift( value, shift )

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

參數

wKgZO2dKqrOAZRpyAADYhgM04No710.png

返回值

wKgZPGdKqr-ABl6vAACNnlH7Hzw410.png

例子

wKgZO2dKqsmAYfyRAACKCjabJ8o769.png

5.7 bit.arshift( value, shift )

算數右移

參數

wKgZO2dKqtSAMVhZAADRmr7OcmQ321.png

返回值

wKgZO2dKqt6AWro5AACOyme76Sw105.png

例子

wKgZPGdKqumANlSdAACq6xCkrEg383.png

5.8 bit.bit( position )

左移運算,等價于 C 語言中的 1 << position

參數

wKgZPGdKqvOAOxiOAACeTdYh2vg530.png

返回值

wKgZO2dKqv2AX7cDAACg0VnFI1k400.png

例子

wKgZO2dKqwaAZ59gAACaPK1tSwM575.png

5.9 bit.isset(value, position)

測試位數是否被置 1

參數

wKgZO2dKqxCAFdEEAACDI3Kgzkw655.png

返回值

wKgZO2dKqxuAW1DLAACFnSK9Lmo506.png

例子

wKgZPGdKqyeAPRToAAKMw9j06jE546.png

5.10 bit.isclear(value, position)

測試位數是否被置 0

參數

wKgZO2dKqzKAfVtRAADjMNq2lwA631.png

返回值

wKgZPGdKqz2ALRM7AACFEp-NEhM454.png

例子

wKgZO2dKq0mAHm6KAAEoH2bHP0g389.png

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

置 1

參數

wKgZO2dKq1OAOs7OAADAPrG0lBw444.png

返回值

wKgZO2dKq12Ae1bPAACSaC_0LCA274.png

例子

wKgZO2dKq2iABbBIAADLHfSK8Ww456.png

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

置 0

參數

wKgZPGdKq3OAcFD_AADALpCSlus620.png

返回值

wKgZO2dKq32AGuCWAABPaywU9v8980.png

例子

wKgZO2dKq4eACtMOAADEsBWjOUc967.png


六、功能驗證


6.1 示例代碼

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

示例代碼如下:

wKgZO2dKq5qAV3r2AAgyIIoYJhE938.pngwKgZO2dKq6iAPTZ4AAIWOgKsv3U688.png


6.2 燒錄步驟


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

使用帶有數據通信功能的數據線,不要使用僅有充電功能的數據線.


6.2.2 識別 4G 模組的 BOOT 引腳

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


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

1、當我們模塊沒開機時,按著 BOOT 鍵然后長按 POW 開機;

2、當我們模塊開機時,按著 BOOT 鍵然后點按重啟鍵即可。

wKgZO2dKq76AKb-bABkiCYmzo1g631.png


6.2.3 識別電腦的正確端口

判斷是否進入 BOOT 模式:模塊上電,此時在電腦的設備管理器中,查看串口設備, 會出現一個端口表示進入了 BOOT 下載模式,如下圖所示:

wKgZO2dKq8uAW41lAANQMBjHT1I947.png

6.2.4 用 Luatools 工具燒錄

新建項目

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

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

wKgZO2dKq9aAekdqAAF1qkiA6Hs416.png

Luatools 版本沒問題的話, 就點擊 Luatools 右上角的“項目管理測試”按鈕,如下圖所示:

wKgZO2dKq-CAPsJuAAEmjDLDDC8953.png

這時會彈出項目管理和燒錄管理的對話框,可以新建一個項目,如下圖:

wKgZPGdKq-yANUPbAATOJgYAJrk402.png

開始燒錄

選擇Air780E板子對應的底層 core 和剛改的 main.lua 腳本文件,下載到板子中:

wKgZO2dKq_iAch6XAATb-J8sjaA907.png

點擊下載后,我們需要進入BOOT模式才能正常下載。

如果沒進入BOOT模式會出現下圖情況::

wKgZPGdKrAOAZmvaAAC27TniFCA484.png

進入 BOOT 模式下載,如圖:

wKgZO2dKrA6AQMcQAAHvDevPgSg370.pngwKgZO2dKrBiAbYsLAAJH1dCNeMM574.png

6.3 對應 log 信息

wKgZPGdKrCaAXAWnAAiTR1JdbAE528.png

分享完畢


*博客內容為網友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。




相關推薦

技術專區(qū)

關閉