0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

入門級嵌入式板卡的視頻工具FFmpeg移植與測試開發(fā)——米爾i.MX6UL/i.MX6ULL開發(fā)板

米爾電子 ? 2023-03-02 09:42 ? 次閱讀

本篇測評由電子發(fā)燒友的優(yōu)秀測評者“ALSET”提供。

48f59cf2-b899-11ed-ad0d-dac502259ad0.gif

電子發(fā)燒友網(wǎng)發(fā)布了一款產(chǎn)品米爾 MYD-Y6ULX-V2 開發(fā)板,基于 NXP i.MX6UL/i.MX6ULL處理器,該開發(fā)板被米爾稱之為經(jīng)典王牌產(chǎn)品。也是是一款嵌入式Linux入門級的開發(fā)板。本次測試目標(biāo)是在此開發(fā)板上進(jìn)行視頻工具FFmpeg的移植與測試開發(fā),測試FFmpeg在此開發(fā)板上的視頻應(yīng)用效果。

48fcca90-b899-11ed-ad0d-dac502259ad0.jpg

01.

FFmpeg是什么

FFmpeg是一套開源的音視頻代庫,具有非常強(qiáng)大的功能包括視頻采集功能、視頻格式轉(zhuǎn)換、視頻抓圖、給視頻加水印等。

FFmpeg視頻采集功能非常強(qiáng)大,不僅可以采集視頻采集卡或USB攝像頭的圖像,還可以進(jìn)行屏幕錄制,同時(shí)還支持以RTP方式將視頻流傳送給支持RTSP/RTMP 的流媒體服務(wù)器,支持直播應(yīng)用。采用LGPL或GPL許可證。它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。它包含了非常先進(jìn)的音頻/視頻編解碼庫libavcodec,具有高可移植性和編解碼質(zhì)量。它幾乎實(shí)現(xiàn)了所有當(dāng)下常見的數(shù)據(jù)封裝格式、多媒體傳輸協(xié)議以及音視頻編解碼器。

很多Linux桌面環(huán)境中的開源播放器VLC、MPlayer,Windows下的KMPlayer、暴風(fēng)影音以及Android下幾乎全部第三方播放器都是基于FFmpeg的,可見它的應(yīng)用非常廣泛,也是嵌入式系統(tǒng)中音視頻使用最多的代碼庫。

FFmpeg工程的幾個(gè)主要目錄libavformat:用于各種音視頻封裝格式的生成和解析,包括獲取解碼所需信息以生成解碼上下文結(jié)構(gòu)和讀取音視頻幀等功能;libavcodec:用于各種類型聲音/圖像編解碼;libavutil:包含一些公共的工具函數(shù);libswscale:用于視頻場景比例縮放、色彩映射轉(zhuǎn)換;libpostproc:用于后期效果處理;ffmpeg:該項(xiàng)目提供的一個(gè)工具,可用于格式轉(zhuǎn)換、解碼或電視卡即時(shí)編碼等;ffsever:一個(gè) HTTP 多媒體即時(shí)廣播串流服務(wù)器;ffplay:是一個(gè)簡單的播放器,使用ffmpeg 庫解析和解碼,通過SDL顯示。49189f90-b899-11ed-ad0d-dac502259ad0.jpg

02.

FFmpeg移植編譯

1. 首先切換為交叉編譯環(huán)境493cf3b8-b899-11ed-ad0d-dac502259ad0.jpg
2.從github 上拉取ffmpeg源碼,考慮ffmpeg版本比較多,最新的版本增加了許多的擴(kuò)展功能,同時(shí)也增加了對硬件資源的需求??紤]該開發(fā)板為ARMv7的初級開發(fā)版,因此這里不使用最新的版本,而是使用一個(gè)兩年前的版本。使用 ffmpeg-4.1.3版本。

4970b6c6-b899-11ed-ad0d-dac502259ad0.jpg4977d618-b899-11ed-ad0d-dac502259ad0.jpg
3. 寫配置執(zhí)行腳本

FFmpeg代碼編譯配置有非常多的選項(xiàng),為了更好的進(jìn)行配置,這里寫一個(gè)腳本用來進(jìn)行配置執(zhí)行。

腳本內(nèi)容如下:4999ffc2-b899-11ed-ad0d-dac502259ad0.jpg
腳本文件名:config_for_mx6ull.sh放到ffmpeg工程根目錄下這里特別注意,因?yàn)轫?xiàng)目放到是主機(jī)的虛擬機(jī)外掛的共享目錄里,共享目錄的文件系統(tǒng)是fat32,它不支持軟鏈接,因此需要設(shè)置鏈接命令為硬復(fù)制,即如下:--ln_s="cp-R"4. 執(zhí)行配置執(zhí)行腳本編寫好文配置腳本后,然后可以直接執(zhí)行,執(zhí)行完畢,輸出結(jié)果如下:4a0b4c36-b899-11ed-ad0d-dac502259ad0.jpg
5.開始多線程編譯配置腳本執(zhí)行完畢后,會(huì)產(chǎn)生makefile文件,然后就可以進(jìn)行編譯,執(zhí)行make–j44a2dbfaa-b899-11ed-ad0d-dac502259ad0.jpg
編譯需要大概30分鐘左右,整體編譯順利,最后編譯出結(jié)果:4a551bc2-b899-11ed-ad0d-dac502259ad0.jpg
6.檢查編譯的庫文件使用命令 file檢查編譯輸出的動(dòng)態(tài)庫文件和ffmpeg文件,可見是armv7執(zhí)行文件。4a6b8a1a-b899-11ed-ad0d-dac502259ad0.jpg
經(jīng)過檢查,目標(biāo)文件已經(jīng)編譯成功。7. 編譯FFmpeg附帶的測試?yán)映绦蚓幾g完ffmpeg 庫后,就可以編譯附帶的例子程序,可以更好的定制開發(fā)ffmpeg. 先編譯例子程序。例子帶的makefile 文件是x86 平臺的,需要修改一下才能編譯開發(fā)板上的版本,進(jìn)入目錄 /mnt/hgfs/MYD-Y6ULX/Proj/ffmpeg.4.1.3/ffmpeg/doc/examples下,修改Makefile.example修改如下:4a7496e6-b899-11ed-ad0d-dac502259ad0.jpg
修改完,就可以執(zhí)行編譯,命令如下:make-f Makefile.example4aa28b96-b899-11ed-ad0d-dac502259ad0.jpg4b765016-b899-11ed-ad0d-dac502259ad0.jpg
編譯很順利,一次通過。8. 瘦身動(dòng)態(tài)庫文件和ffmpeg執(zhí)行文件編譯完的庫文件體積都比較大,像| libavcodecs.so 文件達(dá)40M+,所有文件一起傳到開發(fā)板上,將非常占用開發(fā)板文件空間,因此可以對動(dòng)態(tài)庫和ffmepg執(zhí)行文件進(jìn)行瘦身一下。所謂瘦身,就是把執(zhí)行文件帶的gdb符號信息全部去掉,即可大大減少文件的體積。4ba8c014-b899-11ed-ad0d-dac502259ad0.jpg
9.把編譯瘦身后的文件傳送到開發(fā)板然后就可以把編譯好的庫文件和執(zhí)行文件全部傳送到開發(fā)板上,執(zhí)行命令:scplibavcodec/libavcodec.so.58root@192.168.50.150:/home/rootscplibavformat/libavformat.so.58 root@192.168.50.150:/home/rootscplibavdevice/libavdevice.so.58root@192.168.50.150:/home/rootscplibavfilter/libavfilter.so.7 root@192.168.50.150:/home/rootscplibavutil/libavutil.so.56 root@192.168.50.150:/home/rootscplibswresample/libswresample.so.3root@192.168.50.150:/home/rootscplibswscale/libswscale.so.5 root@192.168.50.150:/home/root4c6982ae-b899-11ed-ad0d-dac502259ad0.jpg

03.

測試FFmpeg程序

因此把FFmpeg的動(dòng)態(tài)庫和主程序都復(fù)制到板上的/home/root目錄下了,因此執(zhí)行FFmpeg時(shí),會(huì)提示找不到依賴的運(yùn)行庫,因此在開發(fā)板環(huán)境下首先設(shè)置一個(gè)動(dòng)態(tài)連接庫的路徑。
export LD_LIBRARY_PATH=/home/root

1.查看FFmpeg運(yùn)行輸出信息

然后執(zhí)行ffmpeg –version ,看一下版本信息;

4c7631ca-b899-11ed-ad0d-dac502259ad0.jpg

可見輸出了FFmpeg版本庫正確的信息。

2. 使用FFmpeg采集視頻

執(zhí)行命令:
./ffmpeg-f v4l2 -s 320*240 -r 10 -i /dev/video2 output.yuv
4cc5b8f8-b899-11ed-ad0d-dac502259ad0.jpg


把從攝像頭采集到的yuv數(shù)據(jù),使用yuvview播放器上播放,播放如圖:

4cdc7a7a-b899-11ed-ad0d-dac502259ad0.jpg

顯示采集視頻成功。

3. 使用FFmpeg采集編碼視頻

板上執(zhí)行命令:

./ffmpeg -f v4l2 -s 640*360 -r 10 -i /dev/video2output1.mp4
4d0231d4-b899-11ed-ad0d-dac502259ad0.jpg4d4f342a-b899-11ed-ad0d-dac502259ad0.jpg

傳輸?shù)街鳈C(jī)上,查看采集編碼的視頻內(nèi)容。

4d8053ac-b899-11ed-ad0d-dac502259ad0.jpg

可見,能夠正確的采集并編碼出視頻文件了。

3. 使用FFmpeg采集編碼并進(jìn)行推送rtsp視頻流

因?yàn)樵诰幾gffmpeg時(shí),沒加入X264編碼庫,因此這里只能使用mpeg4編碼器,因此執(zhí)行命令如下:
./ffmpeg -t 10 -f video4linux2 -s176*144 -r 8 -i /dev/video2 -vcodec mpeg4 -f rtp rtp://192.168.50.171:554 >/ffmpeg.sdp

Rtsp推流測試,需要一個(gè)rtsp服務(wù),推流軟件先使用rtsp協(xié)議把流推送到rtsp服務(wù)上,然后播放器通過連接rtsp服務(wù)器進(jìn)行拉流播放。Rtsp服務(wù)這里使用了 RtspServer 開源rtsp服務(wù)器,地址為:

https://github.com/PHZ76/RtspServer.git

在ubuntu主機(jī)上編譯成rtsp服務(wù)程序,添加接收上行的流,再進(jìn)行進(jìn)入隊(duì)列,并進(jìn)行分發(fā)即可。操作為啟動(dòng)rtsp服務(wù)后,等待ffmpeg推流,在ffmpeg推流后,即可通過VLC 進(jìn)行播放測試。

4d95b3d2-b899-11ed-ad0d-dac502259ad0.jpg4db2d58e-b899-11ed-ad0d-dac502259ad0.jpg

04.

測試FFmpeg例子程序

再測試一下基于FFmpeg庫的例子程序,這里測試一下example下的幾個(gè)例程,把例程copy到板子上:

4dce9d0a-b899-11ed-ad0d-dac502259ad0.jpg

然后進(jìn)入開發(fā)板執(zhí)行一個(gè)視頻合成例程 muxing,這個(gè)例程是調(diào)用ffmpeg庫,來生成一段機(jī)器合成視頻文件。

4e90f63e-b899-11ed-ad0d-dac502259ad0.jpg

看一下輸出的視頻文件:

4eb86cf0-b899-11ed-ad0d-dac502259ad0.jpg

05.

開發(fā)FFmpeg應(yīng)用程序

也可以基于FFmpeg庫進(jìn)行視頻應(yīng)用的開發(fā),這里從網(wǎng)上下載一段FFmpeg的應(yīng)用程序內(nèi)容,來測試一下基于上面編譯的FFmpeg庫,來開發(fā)應(yīng)用程序。

代碼如下:

int main(int argc, char **argv){ uint8_t *src_data[4], *dst_data[4]; int src_linesize[4], dst_linesize[4]; int src_w = 320, src_h = 240, dst_w, dst_h; enum AVPixelFormat src_pix_fmt = AV_PIX_FMT_YUV420P, dst_pix_fmt = AV_PIX_FMT_RGB24; const char *dst_size = NULL; const char *dst_filename = NULL; FILE *dst_file; int dst_bufsize; struct SwsContext *sws_ctx; int i, ret;
if (argc != 3) { fprintf(stderr, "Usage: %s output_file output_size\n" "API example program to show how to scale an image with libswscale.\n" "This program generates a series of pictures, rescales them to the given " "output_size and saves them to an output file named output_file\n." "\n", argv[0]); exit(1); } dst_filename = argv[1]; dst_size = argv[2];
if (av_parse_video_size(&dst_w, &dst_h, dst_size) < 0) { fprintf(stderr, "Invalid size '%s', must be in the form WxH or a valid size abbreviation\n", dst_size); exit(1); }
dst_file = fopen(dst_filename, "wb"); if (!dst_file) { fprintf(stderr, "Could not open destination file %s\n", dst_filename); exit(1); }
/* create scaling context */ sws_ctx = sws_getContext(src_w, src_h, src_pix_fmt, dst_w, dst_h, dst_pix_fmt, SWS_BILINEAR, NULL, NULL, NULL); if (!sws_ctx) { fprintf(stderr, "Impossible to create scale context for the conversion " "fmt:%s s:%dx%d -> fmt:%s s:%dx%d\n", av_get_pix_fmt_name(src_pix_fmt), src_w, src_h, av_get_pix_fmt_name(dst_pix_fmt), dst_w, dst_h); ret = AVERROR(EINVAL); goto end; }
/* allocate source and destination image buffers */ if ((ret = av_image_alloc(src_data, src_linesize, src_w, src_h, src_pix_fmt, 16)) < 0) { fprintf(stderr, "Could not allocate source image\n"); goto end; }
/* buffer is going to be written to rawvideo file, no alignment */ if ((ret = av_image_alloc(dst_data, dst_linesize, dst_w, dst_h, dst_pix_fmt, 1)) < 0) { fprintf(stderr, "Could not allocate destination image\n"); goto end; } dst_bufsize = ret;
for (i = 0; i < 100; i++) { /* generate synthetic video */ fill_yuv_image(src_data, src_linesize, src_w, src_h, i);
/* convert to destination format */ sws_scale(sws_ctx, (const uint8_t * const*)src_data, src_linesize, 0, src_h, dst_data, dst_linesize);
/* write scaled image to file */ fwrite(dst_data[0], 1, dst_bufsize, dst_file); }
fprintf(stderr, "Scaling succeeded. Play the output file with the command:\n" "ffplay -f rawvideo -pix_fmt %s -video_size %dx%d %s\n", av_get_pix_fmt_name(dst_pix_fmt), dst_w, dst_h, dst_filename);
end: fclose(dst_file); av_freep(&src_data[0]); av_freep(&dst_data[0]); sws_freeContext(sws_ctx); return ret < 0;}

編譯后,板上運(yùn)行:4ed4ee16-b899-11ed-ad0d-dac502259ad0.jpg

成功地輸出 rgb 格式的原始視頻文件,傳輸?shù)絇C上,使用yuvplayer 播放,可以看到生成的內(nèi)容:

4ef19048-b899-11ed-ad0d-dac502259ad0.jpg

06.

Y6ULX板上FFmpeg移植測試開發(fā)總結(jié)

通過從這次在MYD-Y6ULL開發(fā)板上進(jìn)行FFmpeg的移植編譯與應(yīng)用開發(fā)測試過程看,F(xiàn)Fmpeg在該開發(fā)板上移植非常容易,而且基本上代碼不做任何改動(dòng),能夠一次編譯通過。也說明了該開發(fā)板的C/C++的開發(fā)工具與庫支持比較完善,對這樣復(fù)雜的工程也有很好的支持。 這也大大方便了試用該方案進(jìn)行音視頻開發(fā)的可能性,能夠利用開源社區(qū)大量的音視頻應(yīng)用資源,開發(fā)出多種嵌入式的音視頻應(yīng)用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5059

    文章

    18975

    瀏覽量

    302072
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4898

    瀏覽量

    97064
  • 米爾
    +關(guān)注

    關(guān)注

    0

    文章

    47

    瀏覽量

    7903
收藏 人收藏

    評論

    相關(guān)推薦

    基于OPENCV的相機(jī)捕捉視頻進(jìn)行人臉檢測--米爾NXP i.MX93開發(fā)板

    本文將介紹基于米爾電子MYD-LMX93開發(fā)板米爾基于NXPi.MX93開發(fā)板)的基于OpenCV的人臉檢測方案
    的頭像 發(fā)表于 11-07 09:03 ?546次閱讀
    基于OPENCV的相機(jī)捕捉<b class='flag-5'>視頻</b>進(jìn)行人臉檢測--<b class='flag-5'>米爾</b>NXP <b class='flag-5'>i.MX</b>93<b class='flag-5'>開發(fā)板</b>

    【北京迅為】i.mx8mm嵌入式linux開發(fā)指南第四篇 嵌入式Linux系統(tǒng)移植篇第六十九章uboot移植

    【北京迅為】i.mx8mm嵌入式linux開發(fā)指南第四篇 嵌入式Linux系統(tǒng)移植篇第六十九章uboot
    的頭像 發(fā)表于 10-22 14:46 ?452次閱讀
    【北京迅為】<b class='flag-5'>i.mx</b>8mm<b class='flag-5'>嵌入式</b>linux<b class='flag-5'>開發(fā)</b>指南第四篇 <b class='flag-5'>嵌入式</b>Linux系統(tǒng)<b class='flag-5'>移植</b>篇第六十九章uboot<b class='flag-5'>移植</b>

    i.MX Linux開發(fā)實(shí)戰(zhàn)指南—基于野火i.MX系列開發(fā)板

    電子發(fā)燒友網(wǎng)站提供《i.MX Linux開發(fā)實(shí)戰(zhàn)指南—基于野火i.MX系列開發(fā)板.pdf》資料免費(fèi)下載
    發(fā)表于 10-10 17:23 ?7次下載

    198元,米爾NXP i.MX 93開發(fā)板,限購300套

    米爾NXPi.MX93開發(fā)板憑借其卓越的性能、強(qiáng)勁的推理能力以及豐富的接口資源,在眾多行業(yè)應(yīng)用中都得到了廣泛認(rèn)可,為回饋廣大行業(yè)客戶的支持與厚愛,進(jìn)一步激發(fā)開發(fā)者的創(chuàng)新潛能,共同推動(dòng)技
    的頭像 發(fā)表于 09-27 08:00 ?287次閱讀
    198元,<b class='flag-5'>米爾</b>NXP <b class='flag-5'>i.MX</b> 93<b class='flag-5'>開發(fā)板</b>,限購300套

    使用TPS6521815 PMIC為NXP i.MX 6ULL、6UltraLite供電

    電子發(fā)燒友網(wǎng)站提供《使用TPS6521815 PMIC為NXP i.MX 6ULL、6UltraLite供電.pdf》資料免費(fèi)下載
    發(fā)表于 09-13 09:44 ?1次下載
    使用TPS6521815 PMIC為NXP <b class='flag-5'>i.MX</b> <b class='flag-5'>6ULL</b>、<b class='flag-5'>6</b>UltraLite供電

    點(diǎn)擊參與米爾NXP i.MX 93開發(fā)板有獎(jiǎng)試用

    米爾與NXP合作發(fā)布的新品基于NXPi.MX93應(yīng)用處理器的MYD-LMX9X開發(fā)板免費(fèi)試用活動(dòng)來啦~~米爾提供了3塊價(jià)值678元的MYD-LMX9X
    的頭像 發(fā)表于 06-13 08:02 ?442次閱讀
    點(diǎn)擊參與<b class='flag-5'>米爾</b>NXP <b class='flag-5'>i.MX</b> 93<b class='flag-5'>開發(fā)板</b>有獎(jiǎng)試用

    米爾NXP i.MX 93開發(fā)板的Qt開發(fā)指南

    1.概述Qt是一個(gè)跨平臺的圖形應(yīng)用開發(fā)框架,被應(yīng)用在不同尺寸設(shè)備和平臺上,同時(shí)提供不同版權(quán)版本供用戶選擇。米爾NXPi.MX93開發(fā)板(MYD-LMX9X
    的頭像 發(fā)表于 06-07 08:01 ?1622次閱讀
    <b class='flag-5'>米爾</b>NXP <b class='flag-5'>i.MX</b> 93<b class='flag-5'>開發(fā)板</b>的Qt<b class='flag-5'>開發(fā)</b>指南

    淺析在NXP I.MX6ULL+Linux平臺下進(jìn)行WM8960音頻芯片移植的過程

    本文詳細(xì)記錄在NXP I.MX6ULL+Linux平臺下進(jìn)行WM8960音頻芯片移植的過程,其他平臺操作方法類似,希望為大家提供幫助。
    的頭像 發(fā)表于 05-17 11:33 ?1139次閱讀
    淺析在NXP <b class='flag-5'>I.MX6ULL</b>+Linux平臺下進(jìn)行WM8960音頻芯片<b class='flag-5'>移植</b>的過程

    正點(diǎn)原子i.MX93開發(fā)板

    我計(jì)劃申請正點(diǎn)原子i.MX93開發(fā)板,因?yàn)槲蚁M闷鋸?qiáng)大的NXP i.MX9352處理器進(jìn)行中高端嵌入式Linux開發(fā)。這款處理器具備雙核
    發(fā)表于 05-16 14:57

    米爾NXP i.MX 93開發(fā)板限量6折!賦能入門級邊緣處理市場

    NXP在處理器板塊耕耘多年,從早期的i.MX6i.MX7→i.MX8,再到最新的i.MX9都已經(jīng)有一條完整的生態(tài)鏈以及很多客戶基礎(chǔ)。i.MX
    的頭像 發(fā)表于 04-29 08:01 ?481次閱讀
    <b class='flag-5'>米爾</b>NXP <b class='flag-5'>i.MX</b> 93<b class='flag-5'>開發(fā)板</b>限量<b class='flag-5'>6</b>折!賦能<b class='flag-5'>入門級</b>邊緣處理市場

    NXP系列-NXP i.MX 93核心開發(fā)板-入門級嵌入式核心-產(chǎn)品資料

    MYC-LMX9X核心開發(fā)板NXP i.MX 93重新定義入門級嵌入式CPU模組2*Cortex-A55@1.7GHz+Cortex-M
    發(fā)表于 04-23 11:07 ?3次下載

    重新定義入門級嵌入式處理器模組-米爾NXP i.MX 93核心

    近日,米爾電子推出基于NXP i.MX 93系列產(chǎn)品-MYC-LMX9X核心開發(fā)板。NXP i.MX?9系列在
    的頭像 發(fā)表于 04-19 17:50 ?356次閱讀
    重新定義<b class='flag-5'>入門級</b><b class='flag-5'>嵌入式</b>處理器模組-<b class='flag-5'>米爾</b>NXP <b class='flag-5'>i.MX</b> 93核心<b class='flag-5'>板</b>

    基于飛凌嵌入式i.MX6ULL核心的電梯智能物聯(lián)網(wǎng)關(guān)方案

    使用飛凌嵌入式FETMX6ULL-S核心作為智能電梯物聯(lián)網(wǎng)關(guān)的主控平臺,為智能電梯的變革提供了強(qiáng)有力的技術(shù)支持。
    的頭像 發(fā)表于 03-22 10:45 ?1371次閱讀
    基于飛凌<b class='flag-5'>嵌入式</b><b class='flag-5'>i.MX6ULL</b>核心<b class='flag-5'>板</b>的電梯智能物聯(lián)網(wǎng)關(guān)方案

    米爾-瑞薩RZ/G2UL開發(fā)板】1.開箱

    適用于入門級工業(yè)網(wǎng)關(guān)控制器和具有簡單 GUI 功能的嵌入式設(shè)備等應(yīng)用。 附件 開發(fā)板附帶了一些有用的附件 項(xiàng)目 數(shù)量 板卡 核心一片,底板
    發(fā)表于 02-04 23:38

    如何在飛凌嵌入式T113-i開發(fā)板的Buildroot中移植MQTT協(xié)議?

    飛凌嵌入式OK113i-S開發(fā)板上市一段時(shí)間以來收獲了很多關(guān)注,也成為了許多客戶項(xiàng)目選型的優(yōu)質(zhì)之選。在實(shí)際的項(xiàng)目開發(fā)中,工程師朋友們可能會(huì)需要在文件系統(tǒng)中
    的頭像 發(fā)表于 01-26 08:02 ?460次閱讀
    如何在飛凌<b class='flag-5'>嵌入式</b>T113-<b class='flag-5'>i</b><b class='flag-5'>開發(fā)板</b>的Buildroot中<b class='flag-5'>移植</b>MQTT協(xié)議?