色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

合宙LuatOS ? 來源:合宙LuatOS ? 作者:合宙LuatOS ? 2024-11-30 09:51 ? 次閱讀

本次學習的實戰是關于4G模組LuatOS開發的隨機數示例指南,希望大家有所收獲。

一、隨機數概述

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

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

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核心板,如下圖所示:

wKgZomdAs5eATZ5zAAKXMvbgsUA961.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/

wKgaomdAs7OAWbn0AAG8KgWQ3no090.png

Air780E 的底層固件在 Luatools 解壓后目錄的:

wKgaomdAs8CAfL4fAAFkrdT1kks900.png

4.2.2燒錄的腳本代碼

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

下載流程參考下圖:

wKgaomdAs9yAFi0OAAYOMOjMtrU035.png

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

如圖:

wKgZomdAs-mASOZwAAEKN3pNuNc205.png

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

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

識別 4G 模組的 BOOT 引腳

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

具體到 Air780E 開發板:

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

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

wKgaomdAs_6AZLPBABWY-kphjMc223.png

識別電腦的正確端口

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

wKgZomdAtAiAO5QxAAK_ZqUu500414.png

新建項目

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

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

wKgZomdAtBGAcK8xAAFD68V1Wv4441.png

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

wKgaomdAtByAfJA1AAD6Mr4Ip0A402.png

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

wKgaomdAtCiAK8T_AAP1TpVypps429.png

開始燒錄

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

wKgZomdAtDKALqjkAARxt0RBRkA757.png

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

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

wKgaomdAtD6AHRkrAACYgOgbP0s400.png

進入 BOOT 模式下載,如圖:

wKgZomdAtEuAC_Y3AAORe2JnLV0716.png

五、API 說明

5.1 crypto.trng(len)

生成真隨機數

參數

wKgaomdAtFeAEjZLAAAsLMoQis4041.png

返回值

wKgZomdAtGCAfhYIAAA2P2taMqs914.png

例子

wKgZomdAtGmAXXBJAAC31M2qrMM029.png

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

生成偽隨機數

參數

wKgZomdAtHOADV9jAABppioKwQo742.png

返回值

wKgaomdAtHyAMrV-AAApyBiuOIs521.png

例子

wKgaomdAtIaAFHR4AAFlAmvC4Eg520.png

5.3 math.randomseed(n)

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

參數

wKgZomdAtJGANizFAAAw3yATWM8002.png

返回值

例子

wKgZomdAtJ2AabzmAAHakBIfGDc958.png

六、功能演示

6.1 修改示例

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

wKgaomdAtK-AJanAAAHtVjSqTbA639.png

然后修改代碼:

wKgZomdAtL6ACKVoAAQX6KS6YYw533.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 鍵然后點按重啟鍵即可。

wKgaomdAtOWAUZzQABLElOjsQeI936.png

6.2.3識別電腦的正確端口

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

wKgaomdAtO-AI6olAAK-g-ffR54355.png

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

6.2.4 用 Luatools 工具燒錄

新建項目

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

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

wKgZomdAtPmAJP4CAAE_UfNqeDk723.png

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

wKgZomdAtQKAG5KAAAD7ICIp900993.png

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

wKgaomdAtQyAci2WAAP4CaCDZJ0291.png

開始燒錄

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

wKgZomdAtReANz_FAARHmQAr-fw063.png

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

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

wKgZomdAtSKAPsRfAACaDUeDsbI451.png

進入 BOOT 模式下載,如圖:

wKgaomdAtS-AD4veAAOJCamiKhA231.png

6.3 對應 Log

wKgZomdAtT2AAIkWAAeCfJ-K-DU072.pngwKgaomdAtU2AGKnDAAWXfvwwjOE556.pngwKgZomdAtVyAIEurAAYLOtY0rzM820.pngwKgZomdAtWyANs28AAWMpayuOgg002.pngwKgaomdAtXmALIh0AANprtsAdOY425.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()作為種子是一個簡單而有效的方法:

wKgaomdAtYaAGoCQAAA0DyNt0cw667.png

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

wKgZomdAtZCASLqdAABhK0oXeQg544.png

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

分享完畢。

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

    關注

    7

    文章

    315

    瀏覽量

    21002
  • 模組
    +關注

    關注

    6

    文章

    1487

    瀏覽量

    30360
  • 隨機數
    +關注

    關注

    0

    文章

    18

    瀏覽量

    12016
  • LuatOS
    +關注

    關注

    0

    文章

    76

    瀏覽量

    1936
收藏 人收藏

    評論

    相關推薦

    matlab中產生隨機數的十七種方式

    ) 的該分布的隨機數。例如: (1) R = random('Normal',0,1,2,4): 生成期望為 0,標準差為 1 的(2 行 4 列)2×
    發表于 01-16 11:05

    【NUCLEO-F412ZG試用體驗】硬件隨機數

    的,對安全要求比較高的產品這樣不安全的。本想分享下隨機數,對稱加解密和哈希算法。但寫完程序才發現F412并不支持對稱加解密,F4系列有的型號支持對稱加解密如STM32F415xx/417xx
    發表于 01-14 23:47

    什么是隨機數

    開發的工程師們應該或多或少都接觸過隨機數,可能認為它就是一個隨機生成的數字嘛,使用時也很簡單,只要調用開發語言提供的函數即可。但實際上隨機數
    發表于 07-22 09:42

    單片機生成隨機數的方法

    大家都知道單片機要生成隨機數有一個比較簡單的方法,就是用定時器的計數值來生成。但是如果是要求在一定數據范圍內生成一個隨機數,并且與之前生成的隨機數不能重復,那該怎么做?想了個很傻瓜式的方法,用數組
    發表于 01-18 06:07

    全志R128應用開發案例——獲取真隨機數

    路獨立的環形振蕩器,由模擬器件電源噪聲產生頻率抖動,用低頻始終重采樣,然后進行彈性抽取和熵提取處理,最終輸出128bit真隨機數。 載入方案 我們使用的開發板是 R128-Devkit,需要開發
    發表于 10-24 17:05

    全志R128應用開發案例——獲取真隨機數

    路獨立的環形振蕩器,由模擬器件電源噪聲產生頻率抖動,用低頻始終重采樣,然后進行彈性抽取和熵提取處理,最終輸出128bit真隨機數。 載入方案 我們使用的開發板是 R128-Devkit,需要開發
    發表于 11-13 16:31

    C語言random函數偽隨機數產生

    由C語言的stalib.h庫里面的random函數可以得到一個0-0x7FFFh的隨機數,當然,調用隨機數函數之前,是要進行種子的篩選的,以當前的時間參數作為種子,可以使得偽隨機數至少
    發表于 08-25 17:56 ?1.3w次閱讀

    產生隨機數

    一個自己寫的產生隨機數的工程
    發表于 12-01 15:45 ?13次下載

    單片機C語言如何產生隨機數

    C語言中有三個通用的隨機數發生器,分別為 rand函數、random函數、randomize 函數,但是rand函數產生的并不是真意正義上的隨機數,是一個偽隨機數,是根據一個
    的頭像 發表于 11-26 14:25 ?7559次閱讀

    YIE002開發探索10-隨機數生成器

    font color=#ff5555 size=2 >(請保留-> 作者: 羅冰 https://blog.csdn.net/luobing4365)YIE002開發探索隨機數
    發表于 01-17 13:06 ?2次下載
    YIE002<b class='flag-5'>開發</b>探索10-<b class='flag-5'>隨機數</b>生成器

    4G模組LuatOS開發|iconv字符集轉換技術篇

    本次我要講的是4G模組LuatOS開發的iconv字符集轉換,已整理成文,今天便分享供大家。
    的頭像 發表于 11-30 09:53 ?185次閱讀
    <b class='flag-5'>4G</b><b class='flag-5'>模組</b><b class='flag-5'>LuatOS</b><b class='flag-5'>開發</b>|iconv字符集轉換技術篇

    關于4G模組LuatOS開發:通用加解密函數(crypto)|全攻略

    本次我要說的攻略是關于4G模組LuatOS開發的通用加解密函數,我以我常用的Air780E模組為例子供大家參考。
    的頭像 發表于 11-30 09:52 ?235次閱讀
    關于<b class='flag-5'>4G</b><b class='flag-5'>模組</b><b class='flag-5'>LuatOS</b><b class='flag-5'>開發</b>:通用加解密函數(crypto)|全攻略

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

    本文主要解析的是低功耗4G模組Air780E的LuatOS開發隨機數(random)實例,我以整
    的頭像 發表于 11-29 20:23 ?114次閱讀
    解析Air780E<b class='flag-5'>模組</b><b class='flag-5'>LuatOS</b><b class='flag-5'>開發</b>的<b class='flag-5'>隨機數</b>(<b class='flag-5'>random</b>) 示例篇

    4G模組Air780E的LuatOS開發位運算(bit)示例

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

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

    本文要說的是低功耗4G模組Air780E的LuatOS開發實戰,我將手把手教你搞定數據打包解包。
    的頭像 發表于 12-03 11:17 ?149次閱讀
    Air780E<b class='flag-5'>模組</b><b class='flag-5'>LuatOS</b><b class='flag-5'>開發</b><b class='flag-5'>實戰</b> —— 手把手教你搞定數據打包解包
    主站蜘蛛池模板: 日韩精品亚洲专区在线电影不卡| HEYZO精品无码一区二区三区| 亚洲成色爱我久久| 亚洲国产成人精品青青草原100 | 亚洲黄色在线观看| 一个人HD在线观看免费高清视频 | 中文字幕专区高清在线观看| 99久久国产露脸精品麻豆| 冰山高冷受被c到哭np双性| 各种场合肉H校园1V1| 国产永不无码精品AV永久| 极品虎白在线观看| 久久综合色视频| 欧洲最强rapper潮水喷视频 | 亚洲精品久久午夜麻豆| 亚洲视频一区在线| 最新亚洲一区二区三区四区| 影音先锋色小姐| https黄视| 国产午夜精品一区理论片飘花| 韩国hd高清xxx| 久久久97丨国产人妻熟女| 麻豆精品国产剧情观看| 欧美日韩看看2015永久免费| 午夜性伦鲁啊鲁免费视频| 在线免费中文字幕| 高h gl肉文| 久久re视频这里精品一本到99 | 久久伊人男人的天堂网站| 日本大片免a费观看视频| 亚洲精品免费网站| np高h肉文| 寂寞骚妇女被后入式抽插| 欧美嫩freexxxhddvd| 亚洲精品卡2卡3卡4卡5卡区| av天堂网站avtt2017| 国内精品乱码卡一卡2卡三卡新区| 美女也烦恼主题曲| 亚洲国产成人久久一区www妖精| 99热.com| 九色PORNY丨视频入口|