01
概述
TCP相關(guān)內(nèi)容參考文章《物聯(lián)網(wǎng)行業(yè)中TCP通信協(xié)議介紹以及如何實現(xiàn)》
02
功耗的組成
低功耗技術(shù)就是一系列的降低功耗的技術(shù)。
在了解低功耗技術(shù)之前,我們必須先了解功耗的構(gòu)成。
一個SOC芯片的功耗由兩部分組成:動態(tài)功耗和靜態(tài)功耗。
動態(tài)功耗是設(shè)備運行時或者說信號改變時所消耗的功耗;
靜態(tài)功耗是設(shè)備上電但是信號沒有改變時所消耗的功耗;
這里要注意的是:在設(shè)備運行時,也需要消耗靜態(tài)功耗的,因為設(shè)備運行時也是上電狀態(tài)。功耗分類把靜態(tài)功耗單獨拿出來,只是為了理論分析方便。
2.1 動態(tài)功耗
動態(tài)功耗可以分為:
1. 翻轉(zhuǎn)功耗(有的地方稱為開關(guān)功耗,但是筆者認為這個名字不準確,因為開關(guān)包含的功耗很多,其實是從英文switching power翻譯過來,從switching可以看到,名稱想表現(xiàn)是動作。所以稱為翻轉(zhuǎn)功耗比較準確)
2. 短路功耗(或者稱為內(nèi)部功耗,英文是internal power)
2.1.1 翻轉(zhuǎn)功耗(switching power)
Switching power 是一個門電路對輸出電容進行充電和放電需要的功耗。簡單的說就是一個門電路輸出從0變到1和從1變到0所需要消耗的功耗。
Switching power 是動態(tài)功耗最主要的組成部分。
下面是一個CMOS非門(反相器)的門電路,輸出接了一個輸出電容:
清晰一點的符號圖如下:
每次傳輸?shù)哪芰肯臑椋?/p>
CL是輸出的電容大小;Vdd是供電電壓。這樣我們可以計算出傳輸?shù)墓臑椋?/p>
f是傳輸?shù)念l率;Ptrans是輸出翻轉(zhuǎn)的概率;fclock是時鐘頻率。
這里用fclock*Ptrans=f是合理的,因為時鐘就是輸出是否改變的參考,乘以概率,就是翻轉(zhuǎn)的頻率。
如果我們定義:
即把電容乘以翻轉(zhuǎn)概率定義為有效電容,那么我們可以得到經(jīng)常見到的計算公式如下:
推導過程其實很簡單,但是這個最終的結(jié)果卻十分重要。
1. Switching power 和電壓,翻轉(zhuǎn)率,負載電容有關(guān);
2. Switching power和數(shù)據(jù)無關(guān),也就傳輸?shù)臄?shù)據(jù)不會影響翻轉(zhuǎn)功耗,但是數(shù)據(jù)的翻轉(zhuǎn)率會影響翻轉(zhuǎn)功耗;
3. Switching power和傳輸?shù)拇笮∫矡o關(guān)
由這個公式我們很容易得到如果想減少功耗,那么方法就是:
1. 降低電壓;
2. 降低翻轉(zhuǎn)率;
3. 減少負載電容
當然,這些方法的前提永遠是芯片的功能要滿足要求。功率再低,功能不滿足的芯片和板磚有什么區(qū)別,起碼板磚還能拍人。
芯片的功能要滿足要求這個基礎(chǔ)就決定了這些方法有一些限制,比如不可能把電壓降到0,不可能讓信號永遠不翻轉(zhuǎn),不可能電容減少到0。這些都是前提。
2.1.2 內(nèi)部功耗(internal power)
內(nèi)部功耗又可以稱為短路功耗,因為主要原因是由于短路造成的。短路功耗是因為在輸入信號進行翻轉(zhuǎn)時,信號的翻轉(zhuǎn)不可能瞬時完成,因此PMOS和NMOS不可能總是一個截止另外一個導通,總有那么一段時間是使PMOS和NMOS同時導通,那么從電源VDD到地VSS之間就有了通路,就形成了短路電流,如下面的反相器電路圖所示:
加上短路功耗后,總的動態(tài)功耗如下:
后面的部分就是短路功耗。tsc是短路電流持續(xù)的時間,Ipeak是總的短路電流(包含了內(nèi)部電容充電的電流)
由于傳輸中短路持續(xù)的時間特別短,短路功耗相比翻轉(zhuǎn)功耗來說小很多。所以一般情況下會忽略短路功耗,把翻轉(zhuǎn)功耗就當作動態(tài)功耗,那么動態(tài)功耗的簡化公式就是:
但是值得注意的是,有的情況下,還是要考慮短路功耗,比如如何處理門控模塊的懸空的輸出的時候。
2.2 靜態(tài)功耗
靜態(tài)功耗是由于漏電流引起的,在CMOS 門中,漏電流主要來自4個源頭:
1. 亞閾值漏電流(Sub-threshold Leakage, ISUB): 亞閾值泄漏電流是晶體管應(yīng)當截止時流過的電流.
2. 柵極漏電流(Gate Leakage, Igate): 由于柵極氧化物隧穿和熱載流子注入,從柵極直接通過氧化物流到襯底的電流。
3. 柵極感應(yīng)漏電流(Gate Induced Drain Leakage, IGIDL): 結(jié)泄漏電流發(fā)生在源或漏擴散區(qū)處在與襯底不同電位的情況下。結(jié)泄漏電流與其他泄漏電流相比時通常都很小。
4. 反向偏置結(jié)泄漏(Reverse Bias Junction Leakage ,IREV):由少數(shù)載流子漂移和在耗盡區(qū)產(chǎn)生電子/空穴對引起。
MOS管的結(jié)構(gòu)圖如下:
漏電流組成如下圖所示:
2.2.1亞閾值漏電流(Sub-threshold Leakage)
亞閾值漏電流(Sub-threshold Leakage)發(fā)生在CMOS gate沒有完全關(guān)斷時。一個比較好的計算公式如下:
W/L是晶體管的尺寸,Vth是熱相關(guān)常量;Cox/Vth/W/L都是工藝相關(guān),不可以調(diào)整。VGS就是VDD;
VT是閾值電壓;可以看到,閾值電壓越高,漏電功耗就越低。但是閾值電壓越高,對應(yīng)的翻轉(zhuǎn)速度就會越慢,延時就會越大,性能就越差。
1. 可以通過調(diào)整VDD/VT來降低漏電流,從而減少漏電功耗。
2. 增加VT會帶來性能損失,只能在滿足功能需求前提下增加VT;
3. ISUB只和VDD/VT有關(guān),和信號翻轉(zhuǎn)這些都沒關(guān)系。這是一個工藝強相關(guān)的電流,RTL設(shè)計對其無影響。
亞閾值泄漏電流隨溫度呈指數(shù)增長(Vth)。這大大增加了設(shè)計低功率系統(tǒng)的復(fù)雜性。即使在室溫下的泄漏是可以接受的,在最壞的情況下,溫度會超過芯片的設(shè)計目標。
2.2.2柵極漏電流(Gate Leakage)
柵極泄漏電流發(fā)生在一個電壓加到柵上時(例如當門導通時)載流子遂穿通過薄柵介質(zhì)的情況下。
泄漏電流與介質(zhì)厚度有極強的關(guān)系。工藝中通過選擇合適厚度的介質(zhì)將柵泄漏電流限制到一個可接受的水平上。泄漏電流還取決于柵極電壓。通過使晶體管堆疊起來并使截止晶體管靠近電源/地線可以使柵泄漏電流減小。
在以往的技術(shù)節(jié)點中,漏電電流一直以亞閾值漏電為主。但是從90nm開始,門極漏電幾乎是亞閾值漏電的1/3。在某些情況下,在65nm工藝下,它可以等于亞閾值泄漏。低于65nm,high-k介電材料必須進行保持門級泄漏電流檢查,這似乎是唯一有效減少門泄漏電流的方法。
其他兩種流電流占比比較小,所以一般不做分析。有時會把靜態(tài)功耗統(tǒng)一為一個公式:
Ipeak為泄露電流,減少靜態(tài)功耗的方法就是減小VDD和Ipeak。
2.3 不同結(jié)構(gòu)的功耗組成
SOC中不同結(jié)構(gòu)的對功耗的消耗是不一樣的。有幾個功耗大戶如下:
1. 時鐘樹功耗:時鐘樹的功耗通常占整個SOC功耗的40%左右,這是因為時鐘是一直在翻轉(zhuǎn)的信號,所以動態(tài)功耗特別大。所以門控時鐘技術(shù)就特別重要。
2. CPU: CPU是SOC主控制器,工作時CPU一般都必須要打開,隨著CPU頻率越來越高,功耗也越來越大。所以現(xiàn)在的多核,大小核就比較流行,不同場景下用不同功耗的CPU核;
3. GPU: GPU是并行處理單元,由于其算力主要來自多個模塊并行計算,為了正常工作,通常需要很多模塊同時運算,功耗也很大,所以很多SOC都不帶GPU或者默認關(guān)掉;
4. 存儲器:DDR這些存儲器作為SOC主存也需要時刻使用,也是功耗消耗的大戶。
SOC還有其他模塊,但是時鐘樹,CPU/GPU, 存儲器占了絕大部分的功耗。在AI芯片的時代,CCN IP也是功耗的主要來源,和GPU比較類似。
03
組件的使用
1 Gitee鏈接地址
Demo位于amaziot_bloom_os_sdksamplelibraries5.19-app_low_power
Gitee源碼地址:https://gitee.com/ning./hongdou
Github源碼地址:https://github.com/ayumid/hongdou
編譯指令:.build.bat -l .amaziot_bloom_os_sdksamplelibraries5.19-app_low_power
2 組件功能介紹
組件實現(xiàn)了 TCP 通信下的低功耗。
設(shè)備上電后會連接 TCP 服務(wù)器,之后發(fā)送登錄字符串“l(fā)ogin”,服務(wù)器回復(fù)字符串“l(fā)ogin_resp”后,設(shè)備會進入低功耗狀態(tài)。低功耗狀態(tài)下,設(shè)備每隔60s會給服務(wù)器發(fā)送心跳字符串“heart”。當設(shè)備在低功耗狀態(tài)下,服務(wù)器發(fā)送“wakeup”,設(shè)備會喚醒。服務(wù)器發(fā)送“suspend”,設(shè)備會重新進入低功耗。測試平均功耗大概是5mA左右(參考下方固件測試圖)。
組件提供一個GPIO控制,如果硬件設(shè)計中是MCU+AM430EV5,通過這個IO,可以喚醒MCU。
3 代碼講解
1 low_power_gpio_init
功能:該函數(shù)用于,組件提供的用于喚醒主控MCU的GPIO。
參數(shù):無
返回值:無
示例:
low_power_gpio_init();
2 low_power_gpio_out
功能:該函數(shù)用于,GPIO輸出,用于適當?shù)臅r間喚醒主控MCU。
參數(shù):
參數(shù) | 釋義 |
val | 輸出電平 |
返回值:0
示例:
low_power_gpio_out(1)
3 low_power_send_msg
功能:該函數(shù)用于,發(fā)送消息給主任務(wù)。
參數(shù):
參數(shù) | 釋義 |
msgId | 消息ID |
extra | 按需使用,額外信息 |
data | 按需使用,額外數(shù)據(jù) |
返回值:無
示例:
low_power_send_msg(LOW_POWER_CMD_SUSPEND, 1, NULL);
4 low_power_set_mcu_wake
功能:該函數(shù)用于,喚醒mcu。
參數(shù):
參數(shù) | 釋義 |
ad | 消息指針 |
wake | gpio輸出狀態(tài) |
返回值:無
示例:
low_power_set_mcu_wake(ad, 1);
5 low_power_wakeup_internal
功能:該函數(shù)用于,關(guān)閉網(wǎng)絡(luò)連接。
參數(shù):
參數(shù) | 釋義 |
ad | 消息指針 |
返回值:文件指針
示例:
low_power_net_close(ad);
6 low_power_net_send
功能:該函數(shù)用于,發(fā)送數(shù)據(jù)。
參數(shù):
參數(shù) | 釋義 |
ad | 消息指針 |
data | 數(shù)據(jù)指針 |
sz | 數(shù)據(jù)長度 |
返回值:無
示例:
low_power_net_send();
7 low_power_net_init
功能:該函數(shù)用于,發(fā)送數(shù)據(jù)。
參數(shù):
參數(shù) | 釋義 |
ad | 消息指針 |
返回值:無
示例:
low_power_net_init(ad);
8 low_power_net_connect
功能:該函數(shù)用于,連接服務(wù)器。
參數(shù):
參數(shù) | 釋義 |
ad | 消息指針 |
fd | 套接字描述符 |
data | 數(shù)據(jù)指針 |
sz | 數(shù)據(jù)長度 |
返回值:無
示例:
ret = low_power_net_connect(ad, fd, rp->ai_addr, rp->ai_addrlen);
9 low_power_net_create
功能:該函數(shù)用于,發(fā)送數(shù)據(jù)。
參數(shù):
參數(shù) | 釋義 |
ad | 消息指針 |
返回值:無
示例:
low_power_net_create(ad);
10 low_power_net_recv
功能:該函數(shù)用于,接收服務(wù)器信息。
參數(shù):
參數(shù) | 釋義 |
ad | 消息指針 |
返回值:無
示例:
ret = low_power_net_recv(ad);
11 low_power_task
功能:該函數(shù)用于,主任務(wù)。
參數(shù):
參數(shù) | 釋義 |
param | 任務(wù)參數(shù)指針,可不用 |
返回值:無
示例:
low_power_task();
12 low_power_config
功能:該函數(shù)用于,配置低功耗相關(guān)的信息。
參數(shù):
參數(shù) | 釋義 |
ad | 消息指針 |
返回值:無
示例:
low_power_config();
13 low_power_init
功能:該函數(shù)用于,初始化低功耗需要的資源,任務(wù)等。
參數(shù):無
返回值:無
示例:
low_power_init();
4 Demo實戰(zhàn)
4.1 創(chuàng)建一個Demo
復(fù)制4.2_hal_UART示例工程,到同一個文件夾下,修改文件名為5.19-app_low_power,如圖:
4.2 修改makefile
增加文件組件所在目錄頭文件路徑,和源文件路徑,如圖:
4.3 增加頭文件
使用代碼編輯器,將新建的工程文件加入代碼編輯器中,打開main.c,修改main.c,加入am.h等頭文件,如圖:
4.4 修改代碼
在Phase2Inits_exit 調(diào)用低功耗初始化函數(shù),如圖:
4.5 宏定義介紹
low_power_uart_printf
輸出日志到DEBUG 串口,日志比較少,可以輸出到這個串口,如果日志比較多,需要輸出到usb口,以免不必要的問題出現(xiàn)
low_power_catstudio_printf
輸出日志到USB 串口,使用catstudio查看,catstudio查看日志需要更新對應(yīng)版本mdb.txt文件,軟件打開filtter過濾日志,只查看用戶輸出的日志
LOW_POWER_TASK_STACK_SIZE
棧空間宏定義
4.6 函數(shù)介紹
Phase1Inits_enter
底層初始化,本例空
Phase1Inits_exit
底層初始化,本例空
Phase2Inits_enter
底層初始化,本例空
Phase2Inits_exit
創(chuàng)建主任務(wù),初始化消息隊列,定時器,任務(wù)等。
代碼片段:
int ret; sample_ele_log_uart_printf("debug> enter mainn"); ret = OSAFlagCreate(&sample_ele_log_flag_ref); ASSERT(ret == OS_SUCCESS); ret = OSATimerCreate(&sample_ele_log_timer_ref); ASSERT(ret == OS_SUCCESS); ret = OSATaskCreate(&sample_ele_log_task_ref, sample_ele_log_task_stack, SAMPLE_ELE_LOG_TASK_STACK_SIZE, 200, "filetest-task", sample_ele_log_task, NULL); ASSERT(ret == OS_SUCCESS); OSATimerStart(sample_ele_log_timer_ref, 5 * 200, 5 * 200, sample_ele_log_timer_callback, 0); // 3 seconds timer
sample_ele_log_timer_callback
定時器回調(diào)函數(shù),發(fā)送事件給主任務(wù)。
代碼片段:
OSAFlagSet(sample_ele_log_flag_ref, SAMPLE_ELE_LOG_TASK_TIMER_CHANGE_FLAG_BIT, OSA_FLAG_OR);
sample_ele_log_task
日志寫入任務(wù),由事件驅(qū)動,這里5s一次。
代碼片段:
while(1) { status = OSAFlagWait(sample_ele_log_flag_ref, flag_mask, OSA_FLAG_OR_CLEAR, &flag_value, OSA_SUSPEND); ASSERT(status == OS_SUCCESS); // sample_ele_log_uart_printf("debug> sample_ele_log_count = %d",sample_ele_log_count); // sample_ele_log_uart_printf("%s[%d] freesize: %d", __FUNCTION__, __LINE__, FDI_GetFreeSpaceSize()); if(flag_value & SAMPLE_ELE_LOG_TASK_TIMER_CHANGE_FLAG_BIT) { air_sw_log_write_data(11111.111111); } else { sample_ele_log_uart_printf("debug> open file for write errorn"); } }
4.7 編譯
在SDK根目錄打開命令行,輸入命令.build.bat -l .amaziot_bloom_os_sdksamplelibraries8.5_ele_log
PS F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF λ .build.bat -l .amaziot_bloom_os_sdksamplelibraries8.5_ele_log 子目錄或文件 outbin 已經(jīng)存在。 命令語法不正確。 子目錄或文件 buildobj 已經(jīng)存在。 gnumake: Entering directory `F:/3.asr-b/cat.1-asr1606/1.software/BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/libraries/8.5_ele_log' armcc.exe -c --cpu Cortex-R4 --no_unaligned_access -g -O2 --apcs /inter --diag_suppress 2084,1,2,177,188,223,550,1296,2795,6319,9931,9933 --diag_error=warning --gnu --thumb --loose_implicit_cast -DDATA_COLLECTOR_IMPL -DISPT_OVER_SSP -DDIAG_SSP_DOUBLE_BUFFER_USE_DYNAMIC_ALLOCATION -DENV_XSCALE -DL1_DCXO_ENABLED -DLTE_HIGH_MOBILITY_OPTIMIZATION -DRUN_XIP_MODE -DCRANE_Z2 -DCA_LONG_IPC_MSG -DNEZHA3 -DNEZHA3_1826 -DUPGRADE_PLMS -DUPGRADE_PLMS_SR -DLTE_GSMMULTIBCCH -DGPLC_LTE_RSSI_SCAN -DL1V_NEW_RSSI -DUPGRADE_PLMS_3G -DUPGRADE_PLMS_L1 -DUPGRADE_FG_PLMS -DFG_PLMS_URR -DUPGRADE_L1A_FG_PLMS -DUPGRADE_PLMS_STAGE_2 -DUPGRADE_MBCCH -DMULTI_BCCH_READY_IND -DURR_MRAT_ICS_SEARCH -DUPGRADE_ICS -DMRAT_NAS -DUPGRADE_PLMS_SEARCH_API -DICS_MBCCH -DICS_MBCCH_2G_RSSI -DDIAG_NEWPP -DPHS_SW_DEMO -DPHS_SW_DEMO_TTC -DPHS_SW_DEMO_TTC_PM -DFULL_SYSTEM -D_DDR_INIT_ -D_TAVOR_HARBELL_ -DUPGRADE_ARBEL_PLATFORM -D_TAVOR_B0_SILICON_ -DTDL1C_SPY_ENABLE -DDLM_TAVOR -DTAVOR -DFLAVOR_DUALCORE -DDEBUG_D2_MOR_REG_RESEREVED_ENABLE -D_DIAG_USE_COMMSTACK_ -D_TAVOR_DIAG_ -DPM_DEBUG_MODE_ENABLED -DPM_D2FULL_MODE -DPM_EXT_DBG_INT_ARR -DFEATURE_WB_AMR_PS -DMACRO_FOR_LWG -DHL_LWG -DOPTIMIZE_FOR_2G_BCCH -DPLAT_TEST -D_FDI_USE_OSA_ -DPLAT_USE_THREADX -DLWIP_IPNETBUF_SUPPORT -DCRANE_MCU_DONGLE -DAT_OVER_UART -DPHS_SW_DEMO_TTC_PM -DUPGRADE_LTE_ONLY -DEXT_AT_MODEM_SUPPORT -DLTEONLY_THIN_SINGLE_SIM -DLFS_FILE_SYS -DLFS_FILE_SYS_V2 -DPSM_ENABLE -DNO_PAHO_MQTT -DNO_XML -DNO_LWM2M -DREMOVE_MBEDTLS -DNO_AT_NET -DCRANE_SD_NOT_SUPPORT -DNTP -DYMODEM_EEH_DUMP -DENABLE_DM_LTEONLY -DLTEONLY_THIN -DNO_EXTEND_MY_Q_AT -DNOT_SUPPORT_HTTPS -DNOT_SUPPORT_PM813 -DCRANEL_4MRAM -DREMOVE_PB -DUART_NEW_VERSION -DREMOVE_MEP -DREMOVE_SMS -DREMOVE_ENVSIM -DAPN_INCODE -DLTEONLY_THIN_SINGLE_SIM_2MFLASH -DASR160X_OPENCPU_FEATURE -DENABLE_UART3_FEATRUE -DENABLE_UART4_FEATRUE -DYUGE_MBEDTLS_3_2_1 -DENABLE_MAC_TX_DATA_LOGGING -DDISABLE_NVRAM_ACCESS -DINTEL_UPGRADE_EE_HANDLER_SUPPORT -DLTE_W_PS -DL1_DUAL_MODE -DUPGRADE_HERMON_DUAL -DINTEL_UPGRADE_DUAL_RAT -DINTEL_UPGRADE_GPRS_CIPHER_FLUSH -DUPGRADE_ENHANCED_QUAD_BAND -DINTEL_2CHIP_PLAT -DI_2CHIP_PLAT -DUPGRDE_TAVOR_COMMUNICATION -DRUN_WIRELESS_MODEM -DFLAVOR_DDR12MB_GB1MB5 -DFEATURE_SHMEM -DACIPC_ENABLE_NEW_CALLBACK_MECHANISM -DRELIABLE_DATA -DMAP_NSS -DTV_FNAME=""SW_PLATFORM=PMD2NONE PHS_SW_DEMO PHS_SW_DEMO_PM SRCNUCLEUS FULL_SYSTEM NOACRTC PDFLT PLAT_TEST PV2 DIAGOSHMEM NVM WITHL1V"" -DTV_FDESC=""SW_DESCRIPTION="" -DENABLE_ACIPC -D_DATAOMSL_ENABLED_ -DUSB_CABLE_DETECTION_VIA_PMIC -DMIPS_TEST -DMIPS_TEST_RAM -DFLAVOR_DIET_RAM -DNVM_INCLUDE -DMSL_INCLUDE -DMSL_POOL_MEM -DNO_AUDIO -DOSA_QUEUE_NAMES -D_DIAG_DISABLE_USB_ -DOSA_NUCLEUS -DOSA_USED -DPM_D2NONE_MODE -DCRANE_SOC_TEMPERATURE_SENSOR -DL1_SW_UPDATE_FOR_DIGRF -DPHS_L1_SW_UPDATE_R7 -DUPGRADE_LTE -DFRBD_CALIB_NVM -DFRBD_AGC_CALIB -DFRBD_FDT_CALIB -DHSPA_MPR -DCAPT_PARAMS_OPTIMIZE -DL1_WB_R99_ONLY -DL1V_WB_R99_ONLY -DINTERGRATED_RF_SUPPORT -DL1_RX_DIV_SUPPORT -DENABLE_OOS_HANDLING -DTAVOR_D2_WB_L1_SUPPORT -DL1_DDR_HIGH_FREQ -DUPGRADE_DIGRF3G_SUPPORT -DW_PS_PLUS_G_PAGING -D"NO_APLP=0" -DINTEL_UPGRADE_UNIFIED_VOICE_TASK -DINTEL_UPGRADE_R99 -DAPLP_SPY_ENABLE -D__TARGET_FEATURE_DOUBLEWORD -DWHOLE_UMTS_STACK -DUSE_TTPCOM_CSR_BLUETOOTH_AUDIO_GAIN_CONTROL -DL1_UPGRADE_R5 -DUPGRADE_EDGE -DUPGRADE_R4_FS1 -DINTEL_UPGRADE_GSM_CRL_IF -DUPGRADE_EGPRS_M -DINTEL_UPGRADE_EGPRS_M -DINTEL_UPGRADE_RF_PARAMS_IN_CF_TDS -DINTEL_UPGRADE_2SAMPLES_PER_SYMBOL -D"GPRS_MULTISLOT_CLASS=12" -D"EGPRS_MULTISLOT_CLASS=12" -DMARVELL_UPGRADE_BSIC_REDESIGN -DMSL_INCLUDE -DINTEL_HERMON_SAC -DCRANE_CUST_BUILD -DL1_SW_UPDATE_FOR_DIGRF -DFLAVOR_COM -DSILICON_PV2 -DSILICON_SEAGULL -DSILICON_TTC_CORE_SEAGULL -DPCAC_INCLUDE -Otime -DBUILD_DATE=""08 07 2024"" -DBUILD_TIME=""17:06:38"" -Iatcmdsinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonyyugeinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalUARTinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalcoreinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalPMUinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalGPIOinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xosposixinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xdiagdiag_logicsrc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswSysCfginc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswplatforminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xenvwin32inc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswBSPinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswplatformdev_platbuild -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xososainc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xosthreadxinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xosnu_xscaleinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacpsminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcachttpclientsrc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xdiagdiag_logicinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptimerinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopintcinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xcswPMinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoppminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilTickManagerinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopBSPinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonyatcmdsrvinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonyatparserinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonysdkinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcachttpclientinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacciinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcinclude -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludearch -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludeipv4 -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludeipv6 -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludelwip -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcaclwipv4v6srcincludenetif -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopmmi_matinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xtavorArbelinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xtavorenvinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonymodeminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacdusterinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacfotainc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalI2Cinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalACIPCinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilfatsysflash -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilFDIsrcINCLUDE -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalMMUinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilFDIsrcFDI_ADD -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilFDIsrcFM_INC -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilfatsysfshdr -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutillittlefsinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacttsinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacdialinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilcsw_memoryinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoputilitiesinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopcommpminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilnvminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilEEhandlerinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilEEhandlersrc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopRTCinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhoptelephonyci_clientinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalBT_deviceinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalUARTinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopmrdinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopdmainc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilsoftutilinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhalSPIinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacwebsocketinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacatnet_srvinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xsoftutilfotacomminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swAudioinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swACM_COMMinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swaudio_stubsrc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhopaaminc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xaud_swAudioHALinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xhaldbgshellinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFincludeasr160xpcacopencpuinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFamaziot_bloom_os_sdkutils -IF:/3.asr-b/cat.1-asr1606/1.software/BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/libraries/8.5_ele_logaminc -IF:/3.asr-b/cat.1-asr1606/1.software/BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/libraries/8.5_ele_logatcmdsinc -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFamaziot_bloom_os_sdklibraries -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFamaziot_bloom_os_sdklibrariesair_4g_swair_sw4_tuya -IF:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFamaziot_bloom_os_sdkutils -o buildobj/ext_at_cmds.o F:/3.asr-b/cat.1-asr1606/1.software/BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/libraries/8.5_ele_log/atcmds/src/ext_at_cmds.c armlink.exe buildobj/main.o buildobj/ext_at_cmds.o buildobj/ext_at_controller.o buildobj/utils_string.o buildobj/am_ty_sw_log.o -o F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFoutbinArbel_PMD2NONE_40M.axf --via F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFprebuilt_1606lArbel_PMD2NONE_targ_objliblist.txt --elf --scatter F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFprebuilt_1606lCrane_DS_4M_Ram_2M_Flash_XIP_CIPSRAM_Common_SingleSIM.sct --predefine="-DLTEONLY_THIN_SINGLE_SIM" --map --symbols --info sizes,totals --list F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFoutbinArbel_PMD2NONE_40M.map --keep init.o(Header) --keep init.o(Vectors) --diag_suppress 6312,6314,6319,6329 --feedback F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFoutfeedbackLinkOptLteonlyThin_SingleSim_NoSMS.txt F:3.asr-bcat.1-asr16061.softwareBLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRFtoolsbuildimage_1606l.bat SDK_PROD_TYPE : [DM] SDK_CUST_SKU : [THIN_SINGLE_SIM_NO_SMS] SDK_PS_MODE : [LTEONLY] SDK_CHIP_VER : [Z2A0] SDK_OS_TYPE : [TX] Platform Convertion Tools v4.01 with PS option extension Convertion done! |INPUT |outbincp_1606L.bin |MARK |NAME |EXEADDR .LOADADDR.LENGTH .CPZLADDR|COMPRESS STASTIC | |--------|--------|--------.--------.--------.--------|------------------------------| |This Is LteOnly 4M| |RW_CPZ_1|DDR_RW_ |7e119000.80064af8.0000cddc.80065000|0000cddc->00003000 |This Is LteOnly 4M| |RW_CPZ_2|PS_NCAH |7e388000.800718d4.00001300.80068000|00001300->00001000 |This Is LteOnly 4M| |RW_CPZ_3|ITCM |7e3dac00.80072bd4.0000f51c.80069000|0000f51c->0000a000 |This Is LteOnly 4M| |RW_CPZ_4|CODE_PS |7e1aa000.800820f0.0002fe38.80073000|0002fe38->0001e000 |This Is LteOnly 4M| |RW_CPZ_5|CODEPSB |7e1dc000.800b1f28.000339c0.80091000|000339c0->0001b000 |This Is LteOnly 4M| |RW_CPZ_6|CODEPSC |7e213000.800e58e8.000323ec.800ac000|000323ec->0001b000 |This Is LteOnly 4M| |RW_CPZ_7|CODEPSD |7e249000.80117cd4.00028d88.800c7000|00028d88->0001a000 |This Is LteOnly 4M| |RW_CPZ_8|CODEPSE |7e277000.80140a5c.0002e310.800e1000|0002e310->0001a000 |This Is LteOnly 4M| |RW_CPZ_9|CODEPSF |7e2a9000.8016ed6c.0001c948.800fb000|0001c948->00011000 |This Is LteOnly 4M| |RW_CPZ_A|CODE_PL |7e2ca000.8018b6b4.0002fa44.8010c000|0002fa44->0001e000 |This Is LteOnly 4M| |RW_CPZ_B|CODEPLB |7e2fa000.801bb0f8.00039058.8012a000|00039058->00021000 |This Is LteOnly 4M| |RW_CPZ_C|CODEPLC |7e337000.801f4150.000268d4.8014b000|000268d4->00011000 |--------|--------|--------.--------.--------.--------|------------------------------| | | 0x00203a24 -> 0x00145000| | | 2.014(MB) -> 1.270(MB)| |------------------------------------------------------------------------------------| cp_1606L.axf cp_1606L.bin cp_1606L.map gnumake: Leaving directory `F:/3.asr-b/cat.1-asr1606/1.software/BLOOM_OS_1606_OPENCPU_1191_A09_WIHT_NEWRF/amaziot_bloom_os_sdk/sample/libraries/8.5_ele_log' "copy NEZHAC_CP_CNR_MIFI_TX.bin to ./ " 已復(fù)制 1 個文件。
4.8 生成固件
參考入門中開發(fā)工具,生成工具。
4.9 測試
測試步驟:
參考編譯教程,和文檔開頭的編譯指令,進行編譯
按照編譯教程選擇對應(yīng)的選項
燒錄
4.10 固件
TCP連接
60s一次心跳,測試1小時;
點擊下載 TCP 長連接 低功耗 Demo 固件
5 生態(tài)組件鏈接
無
本文章源自奇跡物聯(lián)開源的物聯(lián)網(wǎng)應(yīng)用知識庫Cellular IoT Wiki,更多技術(shù)干貨歡迎關(guān)注收藏Wiki:Cellular IoT Wiki 知識庫(https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf)
歡迎同學們走進AmazIOT知識庫的世界!
這里是為物聯(lián)網(wǎng)人構(gòu)建的技術(shù)應(yīng)用百科,以便幫助你更快更簡單的開發(fā)物聯(lián)網(wǎng)產(chǎn)品。
Cellular IoT Wiki初心:
在我們長期投身于蜂窩物聯(lián)網(wǎng) ODM/OEM 解決方案的實踐過程中,一直被物聯(lián)網(wǎng)技術(shù)碎片化與產(chǎn)業(yè)資源碎片化的問題所困擾。從產(chǎn)品定義、芯片選型,到軟硬件研發(fā)和測試,物聯(lián)網(wǎng)技術(shù)的碎片化以及產(chǎn)業(yè)資源的碎片化,始終對團隊的產(chǎn)品開發(fā)交付質(zhì)量和效率形成制約。為了減少因物聯(lián)網(wǎng)碎片化而帶來的重復(fù)開發(fā)工作,我們著手對物聯(lián)網(wǎng)開發(fā)中高頻應(yīng)用的技術(shù)知識進行沉淀管理,并基于 Bloom OS 搭建了不同平臺的 RTOS 應(yīng)用生態(tài)。后來我們發(fā)現(xiàn),很多物聯(lián)網(wǎng)產(chǎn)品開發(fā)團隊都面臨著相似的困擾,于是,我們決定向全體物聯(lián)網(wǎng)行業(yè)開發(fā)者開放奇跡物聯(lián)內(nèi)部沉淀的應(yīng)用技術(shù)知識庫 Wiki,期望能為更多物聯(lián)網(wǎng)產(chǎn)品開發(fā)者減輕一些重復(fù)造輪子的負擔。
Cellular IoT Wiki沉淀的技術(shù)內(nèi)容方向如下:
奇跡物聯(lián)的業(yè)務(wù)服務(wù)范圍:基于自研的NB-IoT、Cat1、Cat4等物聯(lián)網(wǎng)模組,為客戶物聯(lián)網(wǎng)ODM/OEM解決方案服務(wù)。我們的研發(fā)技術(shù)中心在石家莊,PCBA生產(chǎn)基地分布在深圳、石家莊、北京三個工廠,滿足不同區(qū)域&不同量產(chǎn)規(guī)模&不同產(chǎn)品開發(fā)階段的生產(chǎn)制造任務(wù)。跟傳統(tǒng)PCBA工廠最大的區(qū)別是我們只服務(wù)物聯(lián)網(wǎng)行業(yè)客戶。
連接我們,和10000+物聯(lián)網(wǎng)開發(fā)者一起 降低技術(shù)和成本門檻
讓蜂窩物聯(lián)網(wǎng)應(yīng)用更簡單~~
哈哈你終于滑到最重要的模塊了,
千萬不!要!劃!走!忍住沖動!~
歡迎加入飛書“開源技術(shù)交流群”,隨時找到我們哦~
點擊鏈接如何加入奇跡物聯(lián)技術(shù)話題群(https://rckrv97mzx.feishu.cn/docx/Xskpd1cFQo7hu9x5EuicbsjTnTf)可以獲取加入技術(shù)話題群攻略
Hey 物聯(lián)網(wǎng)從業(yè)者,
你是否有了解過奇跡物聯(lián)的官方公眾號“eSIM物聯(lián)工場”呢?
這里是奇跡物聯(lián)的物聯(lián)網(wǎng)應(yīng)用技術(shù)開源wiki主陣地,歡迎關(guān)注公眾號,不迷路~
及時獲得最新物聯(lián)網(wǎng)應(yīng)用技術(shù)沉淀發(fā)布
注:本文部分內(nèi)容來源于網(wǎng)絡(luò),如有侵權(quán),請及時聯(lián)系我們。
審核編輯 黃宇
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2900文章
44053瀏覽量
370113 -
TCP
+關(guān)注
關(guān)注
8文章
1347瀏覽量
78928 -
低功耗
+關(guān)注
關(guān)注
10文章
2352瀏覽量
103536
發(fā)布評論請先 登錄
相關(guān)推薦
評論