RM新时代网站-首页

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

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

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

RT-Thread 編程風(fēng)格

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來(lái)源:未知 ? 2022-12-06 19:55 ? 次閱讀

作者:架構(gòu)師李肯


前言

最近博主在學(xué)習(xí) RT-Thread 這個(gè)開(kāi)源項(xiàng)目,開(kāi)始慢慢學(xué)習(xí)和理解它的開(kāi)源代碼,慢慢開(kāi)始接觸了它的代碼規(guī)范。
我個(gè)人認(rèn)為,參與一個(gè)開(kāi)源項(xiàng)目的第一步,就是要好好理解它的規(guī)范,其中代碼編寫規(guī)范就是很重要的一環(huán)。

RT-Thread 編程風(fēng)格

這是一份 RT-Thread 開(kāi)發(fā)人員的開(kāi)發(fā)指引。RT-Thread 做為一份開(kāi)源軟件,它需要由不同的人采用合作的方式完成,這份文檔是開(kāi)發(fā)人員的一個(gè)指引。RT-Thread 的開(kāi)發(fā)人員請(qǐng)遵守這樣的編程風(fēng)格。同時(shí)對(duì)于使用 RT-Thread 的用戶,也可通過(guò)這份文檔了解 RT-Thread代碼內(nèi)部一些約定從而比較容易的把握到 RT-Thread 的實(shí)現(xiàn)方式。

1.目錄名稱

目錄名稱如果無(wú)特殊的需求,請(qǐng)使用全小寫的形式;目錄名稱應(yīng)能夠反映部分的意思,例如各芯片移植由其芯片名稱構(gòu)成或芯片類別構(gòu)成;components 目錄下能夠反映組件的意義。

2.文件名稱

文件名稱如果無(wú)特殊的需求(如果是引用其他地方,可以保留相應(yīng)的名稱),請(qǐng)使用全小寫的形式。另外為了避免文件名重名的問(wèn)題,一些地方請(qǐng)盡量不要使用通用化、使用頻率高的名稱。

設(shè)備驅(qū)動(dòng)源碼文件:drv_class.c的命名方式,如:

  • drv_spi.c

  • drv_gpio.c

3.頭文件定義

C 語(yǔ)言頭文件為了避免多次重復(fù)包含,需要定義一個(gè)符號(hào)。這個(gè)符號(hào)的定義形式請(qǐng)采用如下的風(fēng)格:

1#ifndef__FILE_H__
2#define__FILE_H__
3/*headerfilecontent*/
4#endif

即定義的符號(hào)兩側(cè)采用 “__” 以避免重名,另外也可以根據(jù)文件名中是否包含多個(gè)詞語(yǔ)而采用 “_” 連接起來(lái)。

4.文件頭注釋

在每個(gè)源文件文件頭上,應(yīng)該包括相應(yīng)的版權(quán)信息,Change Log 記錄:

 1/*
2*Copyright(c)2006-2020,RT-ThreadDevelopmentTeam
3*
4*SPDX-License-Identifier:Apache-2.0
5*
6*ChangeLogs:
7*DateAuthorNotes
8*2006-03-18Bernardthefirstversion
9*2006-04-26BernardaddsemaphoreAPIs
10*/

例如采用如上的形式。

5.結(jié)構(gòu)體定義

結(jié)構(gòu)體名稱請(qǐng)使用小寫英文名的形式,單詞與單詞之間采用 “_” 連接,例如:

1structrt_list_node
2{

3structrt_list_node*next;
4structrt_list_node*prev;
5};

其中,"{","}" 獨(dú)立占用一行,后面的成員定義使用縮進(jìn)的方式定義。

結(jié)構(gòu)體等的類型定義請(qǐng)以結(jié)構(gòu)體名稱加上 “_t” 的形式作為名稱,例如:

1typedefstructrt_list_nodert_list_t;

因?yàn)閮?nèi)核中對(duì)象引用方便的緣故,采用了對(duì)象內(nèi)核指針作為類型定義的形式,例如:

1typedefstructrt_timer*rt_timer_t;

6.宏定義

在RT-Thread中,請(qǐng)使用大寫英文名稱作為宏定義,單詞之間使用 “_” 連接,例如:

1#defineRT_TRUE1


7.函數(shù)名稱、聲明

函數(shù)名稱請(qǐng)使用小寫英文的形式,單詞之間使用 “_” 連接。提供給上層應(yīng)用使用的 API接口,必須在相應(yīng)的頭文件中聲明;如果函數(shù)入口參數(shù)是空,必須使用 void 作為入口參數(shù),例如:

1rt_thread_trt_thread_self(void);

內(nèi)部靜態(tài)函數(shù)命名:以下劃線開(kāi)頭,使用_class_method格式,不攜帶_rt_開(kāi)頭,如內(nèi)核或驅(qū)動(dòng)文件中的函數(shù)命名:

1/*IPCobjectinit*/
2staticrt_err_t_ipc_object_init()
3
4/*UARTdriverops*/
5staticrt_err_t_uart_configure()
6staticrt_err_t_uart_control()

調(diào)用注冊(cè)設(shè)備接口的函數(shù)命名:使用rt_hw_class_init()格式,舉例:

1intrt_hw_uart_init(void)
2intrt_hw_spi_init(void)


8.注釋編寫

請(qǐng)使用英文做為注釋,使用中文注釋將意味著在編寫代碼時(shí)需要來(lái)回不停的切換中英文輸入法從而打斷編寫代碼的思路。并且使用英文注釋也能夠比較好的與中國(guó)以外的技術(shù)者進(jìn)行交流。

語(yǔ)句注釋

源代碼的注釋不應(yīng)該過(guò)多,更多的說(shuō)明應(yīng)該是代碼做了什么,僅當(dāng)個(gè)別關(guān)鍵點(diǎn)才需要一些相應(yīng)提示性的注釋以解釋一段復(fù)雜的算法它是如何工作的。對(duì)語(yǔ)句的注釋只能寫在它的上方或右方,其他位置都是非法的。

1/*你的英文注釋*/

函數(shù)注釋

注釋以/**開(kāi)頭,以*/結(jié)尾,中間寫入函數(shù)注釋,組成元素如下,每個(gè)元素描述之間空一行,且首列對(duì)齊:

  • @brief + 簡(jiǎn)述函數(shù)作用。在描述中,著重說(shuō)明該函數(shù)的作用,每句話首字母大寫,句尾加英文句號(hào)。

  • @note + 函數(shù)說(shuō)明。在上述簡(jiǎn)述中未能體現(xiàn)到的函數(shù)功能或作用的一些點(diǎn),可以做解釋說(shuō)明,每句話首字母大寫,句尾加英文句號(hào)。

  • @see + 相關(guān) API 羅列。若有與當(dāng)前函數(shù)相關(guān)度較高的 API,可以進(jìn)行列舉。

  • @param + 以參數(shù)為主語(yǔ) + be 動(dòng)詞 + 描述,說(shuō)明參數(shù)的意義或來(lái)源。

  • @return + 枚舉返回值 + 返回值的意思,若返回值為數(shù)據(jù),則直接介紹數(shù)據(jù)的功能。

  • @warning + 函數(shù)使用注意要點(diǎn)。在函數(shù)使用時(shí),描述需要注意的事項(xiàng),如使用環(huán)境、使用方式等。每句話首字母大寫,句尾加英文句號(hào)。

注釋模版請(qǐng)參見(jiàn):rt-thread/src/ipc.c 源碼文件,英文注釋請(qǐng)參考使用 grammarly 以及谷歌翻譯。

 1/**
2*@briefThefunctionwillinitializeastaticeventobject.
3*
4*@noteForthestaticeventobject,itsmemoryspaceisallocatedbythecompilerduringcompiling,
5*andshallplacedontheread-writedatasegmentorontheuninitializeddatasegment.
6*Bycontrast,thert_event_create()functionwillallocatememoryspaceautomatically
7*andinitializetheevent.
8*
9*@seert_event_create()
10*
11*@parameventisapointertotheeventtoinitialize.Itisassumedthatstoragefortheevent
12*willbeallocatedinyourapplication.
13*
14*@paramnameisapointertothenamethatgiventotheevent.
15*
16*@paramvalueistheinitialvaluefortheevent.
17*Ifwanttoshareresources,youshouldinitializethevalueasthenumberofavailableresources.
18*Ifwanttosignaltheoccurrenceofanevent,youshouldinitializethevalueas0.
19*
20*@paramflagistheeventflag,whichdeterminesthequeuingwayofhowmultiplethreadswait
21*whentheeventisnotavailable.
22*TheeventflagcanbeONEofthefollowingvalues:
23*
24*RT_IPC_FLAG_PRIOThependingthreadswillqueueinorderofpriority.
25*
26*RT_IPC_FLAG_FIFOThependingthreadswillqueueinthefirst-in-first-outmethod
27*(alsoknownasfirst-come-first-served(FCFS)schedulingstrategy).
28*
29*NOTE:RT_IPC_FLAG_FIFOisanon-real-timeschedulingmode.Itisstronglyrecommendedto
30*useRT_IPC_FLAG_PRIOtoensurethethreadisreal-timeUNLESSyourapplicationsconcernabout
31*thefirst-in-first-outprinciple,andyouclearlyunderstandthatallthreadsinvolvedin
32*thiseventwillbecomenon-real-timethreads.
33*
34*@returnReturntheoperationstatus.WhenthereturnvalueisRT_EOK,theinitializationissuccessful.
35*Ifthereturnvalueisanyothervalues,itrepresentstheinitializationfailed.
36*
37*@warningThisfunctioncanONLYbecalledfromthreads.
38*/

39rt_err_trt_event_init(rt_event_tevent,constchar*name,rt_uint8_tflag)
40{
41...
42}

9.縮進(jìn)及分行

縮進(jìn)請(qǐng)采用 4 個(gè)空格的方式。如果沒(méi)有什么特殊意義,請(qǐng)?jiān)?“{” 后進(jìn)行分行,并在下一行都采用縮進(jìn)的方式,例如:

1if(condition)
2{
3/*others*/
4}

唯一的例外是 switch 語(yǔ)句,switch-case 語(yǔ)句采用 case 語(yǔ)句與 switch 對(duì)齊的方式,例如:

1switch(value)
2{
3casevalue1:
4break;
5}

case 語(yǔ)句與前面的 switch 語(yǔ)句對(duì)齊,后續(xù)的語(yǔ)句則采用縮進(jìn)的方式。分行上,如果沒(méi)有什么特殊考慮,請(qǐng)不要在代碼中連續(xù)使用兩個(gè)以上的空行。


10.大括號(hào)與空格

從代碼閱讀角度,建議每個(gè)大括號(hào)單獨(dú)占用一行,而不是跟在語(yǔ)句的后面,例如:

1if(condition)
2{
3/*others*/
4}

匹配的大括號(hào)單獨(dú)占用一行,代碼閱讀起來(lái)就會(huì)有相應(yīng)的層次而不會(huì)容易出現(xiàn)混淆的情況??崭窠ㄗh在非函數(shù)方式的括號(hào)調(diào)用前留一個(gè)空格以和前面的進(jìn)行區(qū)分,例如:

1if(x<=?y)
2{
3/*others*/
4}
5
6for(index=0;index7{
8/*others*/
9}

建議在括號(hào)前留出一個(gè)空格(涉及的包括 if、for、while、switch 語(yǔ)句),而運(yùn)算表達(dá)式中,運(yùn)算符與字符串間留一個(gè)空格。另外,不要在括號(hào)的表達(dá)式兩側(cè)留空格,例如:

1if(x<=?y?)
2{
3/*other*/
4}

這樣括號(hào)內(nèi)兩側(cè)的空格是不允許的。

11.trace、log信息

在 RT-Thread 中,普遍使用的 log 方式是 rt_kprintf。rt_kprintf 在 RT-Thread 被實(shí)現(xiàn)成一個(gè)采用輪詢、非中斷方式的字串輸出,能夠適合于在中斷這類"即時(shí)"顯示日志的場(chǎng)合。因?yàn)檫@種輪詢方式的存在,也必然會(huì)影響到日志輸出的時(shí)序關(guān)系。

建議在代碼中不要頻繁的使用 rt_kprintf 作為日志輸出,除非你真正的明白,你的代碼運(yùn)行占用的時(shí)間多一些也沒(méi)什么關(guān)系。

日志輸出應(yīng)該被設(shè)計(jì)成正常情況下是關(guān)閉狀態(tài)(例如通過(guò)一個(gè)變量或宏就能夠開(kāi)啟),并且當(dāng)真正輸出日志時(shí),日志是易懂易定位問(wèn)題的方式。"天書(shū)式"的日志系統(tǒng)是糟糕的,不合理的。

12.函數(shù)

在內(nèi)核編程中,函數(shù)應(yīng)該盡量精簡(jiǎn),僅完成相對(duì)獨(dú)立的簡(jiǎn)單功能。函數(shù)的實(shí)現(xiàn)不應(yīng)該太長(zhǎng),函數(shù)實(shí)現(xiàn)太長(zhǎng),應(yīng)該反思能夠如何修改(或拆分)使得函數(shù)更為精簡(jiǎn)、易懂。

13.對(duì)象

RT-Thread 內(nèi)核采用了 C 語(yǔ)言對(duì)象化技術(shù),命名表現(xiàn)形式是:對(duì)象名結(jié)構(gòu)體表示類定義、對(duì)象名 + 動(dòng)詞短語(yǔ)形式表示類方法,例如:

1structrt_timer
2{

3structrt_objectparent;
4/*otherfields*/
5};
6typedefstructrt_timer*rt_timer_t;

結(jié)構(gòu)體定義 rt_timer 代表了 timer 對(duì)象的類定義;

1rt_timer_trt_timer_create(constchar*name,
2void(*timeout)(void*parameter),
3void*parameter,
4rt_tick_ttime,rt_uint8_tflag);
5rt_err_trt_timer_delete(rt_timer_ttimer);
6rt_err_trt_timer_start(rt_timer_ttimer);
7rt_err_trt_timer_stop(rt_timer_ttimer);

rt_timer + 動(dòng)詞短語(yǔ)的形式表示能夠應(yīng)用于 timer 對(duì)象的方法。

在創(chuàng)建一個(gè)新的對(duì)象時(shí),應(yīng)該思考好,對(duì)象的內(nèi)存操作處理:是否允許一個(gè)靜態(tài)對(duì)象存在,或僅僅支持從堆中動(dòng)態(tài)分配的對(duì)象。

14.格式化代碼

格式化代碼是指通過(guò)腳本自動(dòng)整理你的代碼,并使其符合 RT-Thread 的編碼規(guī)范。本文提供以下兩種自動(dòng)格式化代碼方法,可以自行選擇或配合使用。

使用 astyle 格式化

用 astyle 自動(dòng)格式化代碼,參數(shù)如下:

 1--style=allman
2--indent=spaces=4
3--indent-preproc-block
4--pad-oper
5--pad-header
6--unpad-paren
7--suffix=none
8--align-pointer=name
9--lineend=linux
10--convert-tabs
11--verbose

能滿足函數(shù)空格、縮進(jìn)、函數(shù)語(yǔ)句等的規(guī)范。

使用 formatting 格式化

使用 formatting 掃描文件來(lái)格式化代碼:formatting 可以滿足編碼規(guī)則的基本要求,如:

  • 將源文件編碼統(tǒng)一為 UTF-8

  • 將 TAB 鍵替換為 4 空格

  • 將每行末尾多余的空格刪除,并統(tǒng)一換行符為 ‘ ’




RT-Thread開(kāi)發(fā)者大會(huì)

我們將聯(lián)合重量級(jí)合作伙伴,圍繞AIoT的發(fā)展、產(chǎn)業(yè)技術(shù)趨勢(shì),聚焦控制、連接、行業(yè)應(yīng)用開(kāi)發(fā),通過(guò)主題演講、技術(shù)分享、應(yīng)用演示等環(huán)節(jié),助力開(kāi)發(fā)者探索萬(wàn)物智能的世界,期待與大家一起相聚線上直播間!


現(xiàn)在掃碼報(bào)名

我們將在報(bào)名者中抽取“幸運(yùn)參會(huì)者100名”

贈(zèng)送RT-Thread新款開(kāi)發(fā)板(即將揭秘)


本次將在大會(huì)當(dāng)天在直播間宣布中獎(jiǎng)名單

更多獎(jiǎng)品即將來(lái)襲...


你可以添加微信17775982065為好友,注明:公司+姓名,拉進(jìn)RT-Thread官方微信交流群!



愛(ài)我就給我點(diǎn)在看

點(diǎn)擊閱讀原文進(jìn)入報(bào)名


原文標(biāo)題:RT-Thread 編程風(fēng)格

文章出處:【微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

    關(guān)注

    31

    文章

    1285

    瀏覽量

    40079

原文標(biāo)題:RT-Thread 編程風(fēng)格

文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RT-Thread上CAN實(shí)踐

    開(kāi)箱測(cè)試RT-Thread官方已完成了對(duì)英飛凌XMC7200EVK的移植,通過(guò)shell可以看到做好了uart3的console。本文將介紹如何進(jìn)行RT-ThreadCan移植。接下來(lái)我們要完成CAN_FD的驅(qū)動(dòng)移植,并正常啟動(dòng)RT-T
    的頭像 發(fā)表于 11-13 01:03 ?1139次閱讀
    <b class='flag-5'>RT-Thread</b>上CAN實(shí)踐

    開(kāi)源共生 商業(yè)共贏 | RT-Thread 2024開(kāi)發(fā)者大會(huì)報(bào)名啟動(dòng)!

    親愛(ài)的RT-Thread開(kāi)發(fā)者我們很高興地宣布,一年一度的RDC(RT-ThreadDeveloperConference,RT-Thread開(kāi)發(fā)者大會(huì))正式啟動(dòng)報(bào)名!2024RT-Threa
    的頭像 發(fā)表于 10-29 08:06 ?368次閱讀
    開(kāi)源共生 商業(yè)共贏 | <b class='flag-5'>RT-Thread</b> 2024開(kāi)發(fā)者大會(huì)報(bào)名啟動(dòng)!

    2024 RT-Thread全球巡回 線下培訓(xùn)火熱來(lái)襲!

    親愛(ài)的RT-Thread社區(qū)成員們:我們非常高興地宣布,2024年RT-Thread全球開(kāi)發(fā)者線下培訓(xùn)即將拉開(kāi)帷幕!24年全球巡回培訓(xùn)將覆蓋超10座城市及國(guó)家,為開(kāi)發(fā)者提供一個(gè)深入學(xué)習(xí)RT-Thread嵌入式開(kāi)發(fā)的絕佳機(jī)會(huì)。
    的頭像 發(fā)表于 08-07 08:35 ?1164次閱讀
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 線下培訓(xùn)火熱來(lái)襲!

    【好書(shū)推薦】RT-Thread設(shè)備驅(qū)動(dòng)開(kāi)發(fā)指南

    近年來(lái)國(guó)內(nèi)芯片產(chǎn)業(yè)和物聯(lián)網(wǎng)產(chǎn)業(yè)的快速崛起,行業(yè)發(fā)展迫切需要更多人才,尤其需要掌握嵌入式操作系統(tǒng)等底層技術(shù)的人才。隨著RT-Thread被更廣泛地應(yīng)用于行業(yè)中,開(kāi)發(fā)者對(duì)嵌入式驅(qū)動(dòng)開(kāi)發(fā)的需求越來(lái)越
    的頭像 發(fā)表于 08-01 08:35 ?616次閱讀
    【好書(shū)推薦】<b class='flag-5'>RT-Thread</b>設(shè)備驅(qū)動(dòng)開(kāi)發(fā)指南

    RT-Thread 新里程碑達(dá)成——GitHub Star 破萬(wàn)!

    RT-Thread實(shí)時(shí)操作系統(tǒng)開(kāi)源項(xiàng)目在GitHub上的star數(shù)量突破一萬(wàn)!截止發(fā)文,RT-Thread作為實(shí)時(shí)操作系統(tǒng)在業(yè)界Star數(shù)量排名第一!倉(cāng)庫(kù)地址:https://github.com
    的頭像 發(fā)表于 07-04 08:35 ?467次閱讀
    <b class='flag-5'>RT-Thread</b> 新里程碑達(dá)成——GitHub Star 破萬(wàn)!

    6月6日杭州站RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    6月6日下午我們將在杭州舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺(tái)上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Thread和linux,本次workshop邀請(qǐng)到RT-Thread資深
    的頭像 發(fā)表于 05-28 08:35 ?441次閱讀
    6月6日杭州站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    2024 RT-Thread 全球技術(shù)大會(huì)演講議程發(fā)布!

    RT-ThreadGlobalTechConference(RT-ThreadGTC,RT-Thread全球技術(shù)大會(huì))致力于圍繞RT-Thread基礎(chǔ)軟件技術(shù)發(fā)展、實(shí)踐創(chuàng)新、開(kāi)發(fā)者能力
    的頭像 發(fā)表于 05-16 08:34 ?538次閱讀
    2024 <b class='flag-5'>RT-Thread</b> 全球技術(shù)大會(huì)演講議程發(fā)布!

    新書(shū)發(fā)布——《實(shí)時(shí)操作系統(tǒng)應(yīng)用技術(shù):RT-Thread與ARM編程實(shí)踐》

    RT-Thread又一本新書(shū)《實(shí)時(shí)操作系統(tǒng)應(yīng)用技術(shù)——基于RT-Thread與ARM的編程實(shí)踐》發(fā)布,標(biāo)志著RT-Thread生態(tài)和實(shí)時(shí)操作系統(tǒng)技術(shù)教育領(lǐng)域又迎來(lái)了一個(gè)重要里程碑。本書(shū)
    的頭像 發(fā)表于 05-11 08:35 ?793次閱讀
    新書(shū)發(fā)布——《實(shí)時(shí)操作系統(tǒng)應(yīng)用技術(shù):<b class='flag-5'>RT-Thread</b>與ARM<b class='flag-5'>編程</b>實(shí)踐》

    5月16日南京站RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    5月16日下午我們將在南京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺(tái)上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Thread和linux,本次workshop邀請(qǐng)到RT-Thread資深
    的頭像 發(fā)表于 05-01 08:35 ?359次閱讀
    5月16日南京站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread混合部署Workshop北京站來(lái)啦!

    4月25日,下午我們將在北京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺(tái)上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Thread和linux,本次workshop邀請(qǐng)到RT-Thread資深
    的頭像 發(fā)表于 04-19 08:34 ?437次閱讀
    <b class='flag-5'>RT-Thread</b>混合部署Workshop北京站來(lái)啦!

    4月25日北京站RT-Thread線下workshop,探索RT-Thread混合部署新模式

    4月25日,下午我們將在北京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺(tái)上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Thread和linux,本次workshop邀請(qǐng)到RT-Thread資深
    的頭像 發(fā)表于 04-16 08:35 ?416次閱讀
    4月25日北京站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式

    4月10日深圳場(chǎng)RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    4月10日我們將在深圳福田舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺(tái)上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Thread和linux,本次workshop邀請(qǐng)到RT-Thread資深嵌入式軟件工程師農(nóng)曉明老師為您講
    的頭像 發(fā)表于 03-27 11:36 ?813次閱讀
    4月10日深圳場(chǎng)<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    4月10日深圳場(chǎng)RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    4月10日我們將在深圳福田舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺(tái)上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Thread和linux,本次workshop邀請(qǐng)到RT-Thread資深
    的頭像 發(fā)表于 03-27 08:34 ?526次閱讀
    4月10日深圳場(chǎng)<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    RT-Thread成為恩智浦注冊(cè)合作伙伴,共同賦能工業(yè)與物聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)!

    前不久,恩智浦半導(dǎo)體加入RT-Thread全球合作伙伴計(jì)劃,成為RT-Thread高級(jí)會(huì)員合作伙伴。同時(shí),RT-Thread現(xiàn)已成為恩智浦注冊(cè)合作伙伴。
    的頭像 發(fā)表于 03-15 09:15 ?853次閱讀

    恩智浦半導(dǎo)體正式加入RT-Thread全球合作伙伴計(jì)劃!

    前不久,恩智浦半導(dǎo)體正式加入RT-Thread全球合作伙伴計(jì)劃,成為RT-Thread高級(jí)會(huì)員合作伙伴。同時(shí),RT-Thread現(xiàn)已成為恩智浦注冊(cè)合作伙伴(RT-Thread| 簡(jiǎn)介合
    的頭像 發(fā)表于 03-14 10:40 ?615次閱讀
    恩智浦半導(dǎo)體正式加入<b class='flag-5'>RT-Thread</b>全球合作伙伴計(jì)劃!
    RM新时代网站-首页