在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

解析Air780E模組LuatOS開發的隨機數(random) 示例篇

青山老竹農 ? 來源:jf_82863998 ? 作者:jf_82863998 ? 2024-11-29 20:23 ? 次閱讀

本文主要解析的是低功耗4G模組Air780E的LuatOS開發隨機數(random)實例,我以整理成文分享給大家。

一、隨機數概述

隨機數是專門的隨機試驗的結果。在統計學的不同技術中需要使用隨機數,比如在從統計總體中抽取有代表性的樣本的時候,或者在將實驗動物分配到不同的試驗組的過程中,或者在進行蒙特卡羅模擬法計算的時候等等。產生隨機數有多種不同的方法,這些方法被稱為隨機數生成器。隨機數最重要的特性是它在產生時后面的那個數與前面的那個數毫無關系。

根據密碼學原理,隨機數的隨機性檢驗可以分為三個標準:

1)統計學偽隨機性:
統計學偽隨機性指的是在給定的隨機比特流樣本中,1的數量大致等于0的數量,同理,“10”“01”“00”“11”四者數量大致相等.類似的標準被稱為統計學隨機性.滿足這類要求的數字在人類“一眼看上去”是隨機的。

2)密碼學安全偽隨機性:
其定義為,給定隨機樣本的一部分和隨機算法,不能有效的演算出隨機樣本的剩余部分。

3)真隨機性:
其定義為隨機樣本不可重現.實際上只要給定邊界條件,真隨機數并不存在,可是如果產生一個真隨機數樣本的邊界條件十分復雜且難以捕捉(比如計算機當地的本底輻射波動值),可以認為用這個方法演算出來了真隨機數。

相應的,隨機數也分為三類:

1)偽隨機數:
滿足第一個條件的隨機數。

2)密碼學安全的偽隨機數:
同時滿足前兩個條件的隨機數,可以通過密碼學安全偽隨機數生成器計算得出。

3)真隨機數:
同時滿足三個條件的隨機數。

我們知道,隨機數是通過一些復雜的數學算法得到的,那么 隨機種子就是這些隨機數的初始值。

一般計算機里面產生的隨機數都是偽隨機數。偽隨機數,也是就一個一直不變的數,所以我們可以通過輸入隨機種子得到一個初始固定的隨機數。

例如,隨機數的種子設置為x,產生的隨機數序列為: [123, 456,789,...],那么只要輸入相同的隨機種子x,就能得到相同的隨機數序列:[123, 456,789,...],否則就無法還原出隨機數序列,也就無法通過密碼學安全的隨機數生成器計算出隨機數序列.

二、演示功能概述

本文通過 Air780 的核心板燒錄底層固件和修改LuatOS示例代碼,來演示有關隨機數的各種API的功能。

三、硬件準備

3.1 Air780E 核心板

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

wKgZO2dJrYaAJumCAAL7d1pCzSg077.png

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

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

3.2 SIM

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

3.3 PC 電腦

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

電腦操作系統為:
WIN10以及以上版本的WINDOWS系統

3.4 數據通信

TYPE-C口的USB數據線

四、軟件環境

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/

wKgZPGdJraWAe_UeAAIIOApIxiA073.png

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

wKgZO2dJrbCAASXqAAGZArfbz4Y379.png

4.2.2燒錄的腳本代碼

首先要下載 Air780 的 LuatOS 示例代碼到一個合適的項目目錄,
示例代碼網站:
https://gitee.com/openLuat/LuatOS-Air780E

下載流程參考下圖:

wKgZPGdJrb-AIkvOAAciwdIsgzc461.png

下載的文件解壓,找到 LuatOS-Air780E-masterdemocryptomain.lua

如圖:

wKgZO2dJrdCALcXDAAE2PI6ZZZ0460.png

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

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

識別 4G 模組的 BOOT 引腳

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

具體到 Air780E 開發板:

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

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

wKgZPGdJreeAD6gmABY8QxhqetA960.png

識別電腦的正確端口

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

wKgZO2dJrfOAIyPuAANDDsWhjOc412.png

新建項目

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

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

wKgZPGdJrf2AfABrAAF2YR5meK8311.png

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

wKgZO2dJrgqAYZsZAAEoVek3d8I295.png

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

wKgZPGdJrhaABwffAAS0DlqDr9E950.png

開始燒錄

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

wKgZPGdJriGAEvleAAVMZaTobvM875.png

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

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

wKgZO2dJriyAEOC_AAC6Vyeod8M871.png

進入 BOOT 模式下載,如圖:

wKgZPGdJrj6AMupxAAQ644Kk8Bs627.png

五、API 說明

5.1 crypto.trng(len)

生成真隨機數

參數

wKgZO2dJrk-Acx4uAAAyQc8i_7Y634.png

返回值

wKgZPGdJrleAB0xVAAA-0rEG6rs743.png

例子

wKgZO2dJrmKAIM_aAADHe4NPhgM858.png

5.2 math.random([n [,m]])

生成偽隨機數

參數

wKgZO2dJrm2AI1UfAAB2yhO0QPA565.png

返回值

wKgZPGdJrnaAVqW7AAAv56_HrrI412.png

例子

wKgZO2dJroCAC8UmAAGhj8dVjHA434.png

5.3 math.randomseed(n)

用法:設置一個整數 n 作為隨機序列的種子.

參數

wKgZO2dJromABhkWAAA7v1Eb1fA827.png

返回值

例子

wKgZPGdJrpSACI_dAAIuPr_4hxI154.png

六、功能演示

6.1 修改示例

首先找到 LuatOS-Air780E-masterdemocryptomain.lua 腳本文件,復制一份 main.lua 文件到任意目錄,我復制到 D:DesktopLuatOS-Air780E-masterrandom 這個目錄。

wKgZO2dJrqWAKuzmAAI_E9GmJd0416.png

然后修改代碼:

wKgZO2dJruGAL694AAS1k0X-Cqc931.pngwKgZPGdJru6ALWdVAAAmA14fPi4147.png

6.2 燒錄固件

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

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

6.2.2識別 4G 模組的 BOOT 引腳

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

具體到Air780E開發板:

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

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

wKgZPGdJrwKACh4fABthVYVuJwA277.png

6.2.3識別電腦的正確端口

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

wKgZO2dJrw2AaW1DAANG0pXrl9A544.png

一旦進入了boot下載模式,表示硬件連接上已經處于就緒狀態,此時就可以使用Luatools工具進行燒錄了!

6.2.4 用 Luatools 工具燒錄

新建項目

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

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

wKgZO2dJrxuAe06cAAF6xYUCdzw679.png

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

wKgZO2dJrySADzT7AAEtB43gxgM681.png

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

wKgZPGdJry-AO1XlAAS4qWi5s3g705.png

開始燒錄

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

wKgZO2dJr0GAGsGOAAUY3xdpfWo827.png

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

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

wKgZPGdJr0yAVzVYAAC3c6KkzYE932.png

進入 BOOT 模式下載,如圖:

wKgZPGdJr12ATxVZAAQ1vAjpw9s199.png

6.3 對應 Log

wKgZO2dJr2-ASGyEAAjld6otkws003.pngwKgZPGdJsdCAFUDzAAYbeg6UGCs049.pngwKgZO2dJseaAacz2AAaI8PWhb-g546.pngwKgZPGdJsfqADYvVAAXq8r0zYqc603.pngwKgZO2dJsgqAVRhxAAXhLFpijj4100.png

七、總結

通過本章內容的學習,你可以學習到有關隨機數的函數,
例如:
crypto.trng(len)、math.random([n [,m]])、math.randomseed(n) 等函數。

八、擴展

8.1注意事項

需要注意的是,Lua中的隨機數算法可能存在一些問題。

例如,math.random(1, 3276700)返回的值最后兩位必為 0,這是由于 Lua 本身的隨機函數算法決定的。

因此,在使用Lua生成隨機數時,應當注意這些潛在的限制,并盡可能通過設置合適的隨機種子來避免生成可預測的隨機數序列。

通過以上方法,可以在Lua中有效地生成隨機數,并確保每次運行程序時都能得到不同的隨機數序列,從而滿足各種需要隨機性的應用場景。

8.2設置隨機數種子

為了確保每次運行程序時都能生成不同的隨機數序列,需要使用math.randomseed來設置一個隨機種子.通常,使用系統時間os.time()作為種子是一個簡單而有效的方法:

wKgZO2dJshqAS2jfAAA6XHXXX5k380.png

然而,如果程序在很短的時間內多次運行,可能會發現生成的隨機數序列幾乎不變.這是因為os.time()返回的是秒級的時間戳,不夠精確.為了解決這個問題,可以將時間戳轉換為字符串,然后反轉并截取高位數字作為種子:

wKgZO2dJsiWAGsdTAABzp3EINog759.png

這種方法通過提高種子數值的變化量,使得即使在短時間內多次運行程序,也能產生更好的偽隨機序列。

分享完畢

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 物聯網
    +關注

    關注

    2914

    文章

    44937

    瀏覽量

    377070
  • LuatOS
    +關注

    關注

    0

    文章

    76

    瀏覽量

    2001
收藏 人收藏

    評論

    相關推薦

    FTP應用看這篇!合宙Air780EP低功耗4G模組AT開發示例

    ? Air780EP是合宙的[低功耗4G模組]之一,支持全系列的AT指令以及LuatOS腳本二次開發。 本文應各位大佬邀請,詳細講解了Air780
    的頭像 發表于 09-29 09:36 ?1912次閱讀
    FTP應用看這篇!合宙<b class='flag-5'>Air780</b>EP低功耗4G<b class='flag-5'>模組</b>AT<b class='flag-5'>開發</b><b class='flag-5'>示例</b>

    【合宙Air780E開發板趣味應用】Air780E開發板方言打麻將

    合宙10月份推出的Air780E模組,是一款LTE Cat.1 bis通信模塊,采用移芯EC618平臺,支持4G全網通。合宙也推出了相應的開發板,別看開發板身材小,價格低,但是身手不差
    發表于 01-04 13:45

    基于Air780E的遠程報警器方案

    恒博A780E-S智能遠程報警器方案板,基于合宙低功耗4G Cat.1模組Air780E設計,支持LuatOS二次開發,無需額外添加單片機;
    發表于 03-01 11:51 ?1950次閱讀

    LuatOS全新版本發布,支持Air780E/Air600E系列Cat.1模組(EC618平臺)

    ,合宙全新發布LuatOS-SoC@EC618V1001最新固件,適用基于移芯EC618平臺設計研發的Air780E/Air600E系列低功耗4GCat.1模組。最
    的頭像 發表于 12-05 10:16 ?1913次閱讀
    <b class='flag-5'>LuatOS</b>全新版本發布,支持<b class='flag-5'>Air780E</b>/<b class='flag-5'>Air600E</b>系列Cat.1<b class='flag-5'>模組</b>(EC618平臺)

    合宙Air780E硬件設計手冊02

    合宙低功耗4G模組Air780E硬件設計介紹
    的頭像 發表于 09-06 12:02 ?597次閱讀
    合宙<b class='flag-5'>Air780E</b>硬件設計手冊02

    合宙4G模組Air780E開發板使用手冊

    合宙開發Air780E使用說明
    的頭像 發表于 09-09 18:22 ?864次閱讀
    合宙4G<b class='flag-5'>模組</b><b class='flag-5'>Air780E</b><b class='flag-5'>開發</b>板使用手冊

    RNDIS網卡應用看這篇!合宙Air780EP低功耗4G模組AT開發示例

    ?Air780EP是合宙的低功耗4G模組之一,支持全系列的AT指令以及LuatOS腳本二次開發。 本文應各位大佬邀請,特別講解Air780E
    的頭像 發表于 09-30 06:59 ?685次閱讀
    RNDIS網卡應用看這篇!合宙<b class='flag-5'>Air780</b>EP低功耗4G<b class='flag-5'>模組</b>AT<b class='flag-5'>開發</b><b class='flag-5'>示例</b>

    Air780E模組AT指令下的MQTT應用:技術指南

    今天我要講的是Air780E模組AT指令下的MQTT應用,希望對大家有所幫助。
    的頭像 發表于 11-07 14:02 ?474次閱讀
    <b class='flag-5'>Air780E</b><b class='flag-5'>模組</b>AT指令下的MQTT應用:技術指南

    LuatOS與ADC:Air780E模組開發的新篇章!

    今天我們學習的是Air780E模組LuatOS開發之ADC應用,希望能幫助到大家。
    的頭像 發表于 11-07 14:12 ?324次閱讀
    <b class='flag-5'>LuatOS</b>與ADC:<b class='flag-5'>Air780E</b><b class='flag-5'>模組</b><b class='flag-5'>開發</b>的新篇章!

    Air780E模組的ADC之旅 LuatOS開發實例

    今天學習一個新的示例,關于Air780E模組LuatOS開發的ADC應用實例,希望大家有所收獲。
    的頭像 發表于 11-11 09:33 ?284次閱讀
    <b class='flag-5'>Air780E</b><b class='flag-5'>模組</b>的ADC之旅  <b class='flag-5'>LuatOS</b><b class='flag-5'>開發</b>實例

    LuatOS開發之4G模組隨機數(random)|實戰指南

    本次學習的實戰是關于4G模組LuatOS開發隨機數示例指南,希望大家有所收獲。
    的頭像 發表于 11-30 09:51 ?298次閱讀
    <b class='flag-5'>LuatOS</b><b class='flag-5'>開發</b>之4G<b class='flag-5'>模組</b><b class='flag-5'>隨機數</b>(<b class='flag-5'>random</b>)|實戰指南

    Air780E模組LuatOS開發的位運算(bit)教程

    本次我們要學習的是4G模組Air780ELuatOS開發,關于位運算(bit)教程分享給大家。
    的頭像 發表于 11-26 11:58 ?219次閱讀
    <b class='flag-5'>Air780E</b><b class='flag-5'>模組</b><b class='flag-5'>LuatOS</b><b class='flag-5'>開發</b>的位運算(bit)教程<b class='flag-5'>篇</b>!

    低功耗模組Air780E的AT指令:FTP示例

    本文說的是關于4G模組AT指令的FTP示例,以Air780E為例,希望大家有所收獲。
    的頭像 發表于 11-30 09:40 ?280次閱讀
    低功耗<b class='flag-5'>模組</b><b class='flag-5'>Air780E</b>的AT指令:FTP<b class='flag-5'>示例</b>!

    4G模組Air780ELuatOS開發之位運算(bit)示例

    本文我要說的是低功耗4G模組Air780ELuatOS開發,關于位運算(bit)示例,我將詳細解析
    的頭像 發表于 12-02 14:33 ?227次閱讀
    4G<b class='flag-5'>模組</b><b class='flag-5'>Air780E</b>的<b class='flag-5'>LuatOS</b><b class='flag-5'>開發</b>之位運算(bit)<b class='flag-5'>示例</b>

    Air780E模組LuatOS開發實戰 —— 手把手教你搞定數據打包解包

    本文要說的是低功耗4G模組Air780ELuatOS開發實戰,我將手把手教你搞定數據打包解包。
    的頭像 發表于 12-03 11:17 ?276次閱讀
    <b class='flag-5'>Air780E</b><b class='flag-5'>模組</b><b class='flag-5'>LuatOS</b><b class='flag-5'>開發</b>實戰 —— 手把手教你搞定數據打包解包
    主站蜘蛛池模板: 天堂资源在线bt种子 | 欧美日本一道免费一区三区 | 中文永久免费看电视网站入口 | 成人午夜性视频欧美成人 | 色综合综合色 | 一级片特黄 | 国产大片黄在线观看 | 性无码专区无码 | 欧美性猛交ⅹxxx乱大交免费 | 97菊爱网| 亚洲资源在线播放 | 日美一级毛片 | 男人天堂网在线观看 | 日本污全彩肉肉无遮挡彩色 | 天天天天射 | 1024你懂的日韩 | 丁香啪啪天堂激情婷婷 | 色综合天天综合网亚洲影院 | 久久久久久88色偷偷 | 日本tv欧美tv天堂 | 老司机成人精品视频lsj | 韩国在线免费视频 | 快乐你懂的在线视频免费观看 | 久在操 | 国产特黄1级毛片 | 国产精品久久在线 | 中国色老头 | 黄色三级视频网站 | 乱码精品一区二区三区 | 正在播放91大神调教偷偷 | 小雪被老外黑人撑破了视频 | 噜噜噜狠狠夜夜躁 | 欧美黄色三级视频 | 四虎影院新地址 | 黄色www| 日本免费一区二区老鸭窝 | 干干操 | 国产成人在线影院 | 午夜免费在线观看 | 成人在线观看网站 | 在线观看日本免费视频大片一区 |