91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

RT-Thread 開(kāi)發(fā)的目錄名稱與文件名稱

lhl545545 ? 來(lái)源:RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 作者:RTThread物聯(lián)網(wǎng)操作 ? 2020-06-09 15:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這是一份 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)使用全小寫(xiě)的形式;目錄名稱應(yīng)能夠反應(yīng)部分的意思,例 如各芯片移植由其芯片名稱構(gòu)成或芯片類(lèi)別構(gòu)成;components 目錄下能夠反映組件的意義。

2.文件名稱

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

3.頭文件定義

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

1 #ifndef __FILE_H__

2 #define __FILE_H__

3 /* header file content */

4 #endif

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

4.文件頭注釋

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

1 /*

2 * File : rtthread.h

3 * This file is part of RT-Thread RTOS

4 * COPYRIGHT (C) 2006 - 2012, RT-Thread Development Team

5 *

6 * This program is free software; you can redistribute it and/or modify

7 * it under the terms of the GNU General Public License as published by

8 * the Free Software Foundation; either version 2 of the License, or

9 * (at your option) any later version.

10 *

11 * This program is distributed in the hope that it will be useful,

12 * but WITHOUT ANY WARRANTY; without even the implied warranty of

13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

14 * GNU General Public License for more details.

15 *

16 * You should have received a copy of the GNU General Public License along

17 * with this program; if not, write to the Free Software Foundation, Inc.,

18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

19 *

20 * Change Logs:

21 * Date Author Notes

22 * 2006-03-18 Bernard the first version

23 * 2006-04-26 Bernard add semaphore APIs

24 * 。..

25 */

例如采用如上的形式。

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

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

1 struct rt_list_node

2 {

3 struct rt_list_node *next;

4 struct rt_list_node *prev;

5 };

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

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

1 typedef struct rt_list_node rt_list_t;

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

1 typedef struct rt_timer* rt_timer_t;

6.宏定義

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

向滑動(dòng)查看全部

1 #define RT_TRUE 1

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

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

1 rt_thread_t rt_thread_self(void);

8.注釋編寫(xiě)

請(qǐng)使用英文做為注釋?zhuān)褂弥形淖⑨寣⒁馕吨诰帉?xiě)代碼時(shí)需要來(lái)回不停的切換中英文輸 入法從而打斷編寫(xiě)代碼的思路。并且使用英文注釋也能夠比較好的與中國(guó)以外的技術(shù)者進(jìn) 行交流。

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

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

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

1 if (condition)

2 {

3 /* others */

4 }

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

1 switch (value)

2 {

3 case value1:

4 break;

5 }

case 語(yǔ)句與前面的 switch 語(yǔ)句對(duì)齊,后續(xù)的語(yǔ)句則采用縮進(jìn)的方式。

分行上,如果沒(méi)有什么特殊考慮,請(qǐng)不要在代碼中連續(xù)使用兩個(gè)以上的空行。

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

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

1 if (condition)

2 {

3 /* others */

4 }

匹配的大括號(hào)單獨(dú)占用一行,代碼閱讀起來(lái)就會(huì)有相應(yīng)的層次而不會(huì)容易出現(xiàn)混淆的情況。

空格建議在非函數(shù)方式的括號(hào)調(diào)用前留一個(gè)空格以和前面的進(jìn)行區(qū)分,例如:

1 if (x 《= y)

2 {

3 /* others */

4 }

5

6 for (index = 0; index 《 MAX_NUMBER; index ++)

7 {

8 /* others */

9 }

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

1 if ( x 《= y )

2 {

3 /* other */

4 } /* others */

5 }

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

11.trace、log信息

在 RT-Thread 中,普遍使用的 log 方式是 rt_kprintf。rt_kprintf 在 RT-Thread 被實(shí) 現(xiàn)成一個(gè)采用輪詢、非中斷方式的字串輸出,能夠適合于在中斷這類(lèi)“即時(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)體表示類(lèi)定義、 對(duì)象名 + 動(dòng)詞短語(yǔ)形式表示類(lèi)方法,例如:

1 struct rt_timer

2 {

3 struct rt_object parent;

4 /* other fields */

5 };

6 typedef struct rt_timer* rt_timer_t;

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

1 rt_timer_t rt_timer_create(const char* name,

2 void (*timeout)(void* parameter), void* parameter,

3 rt_tick_t time, rt_uint8_t flag);

4 rt_err_t rt_timer_delete(rt_timer_t timer);

5 rt_err_t rt_timer_start(rt_timer_t timer);

6 rt_err_t rt_timer_stop(rt_timer_t timer);

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ì)象。
責(zé)任編輯:pj

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • 開(kāi)源軟件
    +關(guān)注

    關(guān)注

    0

    文章

    215

    瀏覽量

    16631
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1632

    瀏覽量

    45099
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RT-Thread開(kāi)發(fā)工具支持:e2studio手把手適配教程 | 技術(shù)集結(jié)

    實(shí)現(xiàn)RT-Thread工程的管理和調(diào)試。目錄硬件外設(shè)創(chuàng)建e2studio工程和配置基本外設(shè)添加BSP模板并修改1硬件外設(shè)使用RT-Thread實(shí)現(xiàn)控制Titan-
    的頭像 發(fā)表于 04-02 18:06 ?1651次閱讀
    <b class='flag-5'>RT-Thread</b>新<b class='flag-5'>開(kāi)發(fā)</b>工具支持:e2studio手把手適配教程 | 技術(shù)集結(jié)

    恩智浦亮相RT-Thread 20周年開(kāi)發(fā)者大會(huì)

    日前,“開(kāi)源向?qū)崱どa(chǎn)力進(jìn)化啟示錄”全球峰會(huì)暨RT-Thread 20周年開(kāi)發(fā)者大會(huì)在上海成功舉辦,恩智浦作為RT-Thread的緊密合作伙伴,在活動(dòng)中重磅亮相,展示雙方在共建RT-Threa
    的頭像 發(fā)表于 01-26 09:07 ?695次閱讀

    開(kāi)發(fā)者的RT-Thread大會(huì)「實(shí)在」指南:技術(shù)、開(kāi)發(fā)板與真誠(chéng)的見(jiàn)面禮

    各位開(kāi)發(fā)者感謝各位一直以來(lái)對(duì)RT-Thread社區(qū)的參與和支持,本周六我們將和大家一起迎來(lái)我們的20周年開(kāi)發(fā)者大會(huì)。為了回饋一直以來(lái)與RT-Thread共同成長(zhǎng)的
    的頭像 發(fā)表于 01-13 17:38 ?507次閱讀
    給<b class='flag-5'>開(kāi)發(fā)</b>者的<b class='flag-5'>RT-Thread</b>大會(huì)「實(shí)在」指南:技術(shù)、<b class='flag-5'>開(kāi)發(fā)</b>板與真誠(chéng)的見(jiàn)面禮

    首搭RT-Thread程翧車(chē)控平臺(tái)| RT-Thread程翧 S32K344 快速原型開(kāi)發(fā)平臺(tái)正式上市!| 產(chǎn)品動(dòng)態(tài)

    在智能汽車(chē)邁向高集成與高安全的時(shí)代,VCU/ECU開(kāi)發(fā)正面臨效率與可靠性的雙重考驗(yàn)。依賴單一硬件或拼湊軟件方案的傳統(tǒng)模式,已成為制約創(chuàng)新的瓶頸。為此,RT-Thread帶來(lái)里程碑式的解決方案
    的頭像 發(fā)表于 10-31 11:53 ?1190次閱讀
    首搭<b class='flag-5'>RT-Thread</b>程翧車(chē)控平臺(tái)| <b class='flag-5'>RT-Thread</b>程翧 S32K344 快速原型<b class='flag-5'>開(kāi)發(fā)</b>平臺(tái)正式上市!| 產(chǎn)品動(dòng)態(tài)

    RT-Thread生成玄鐵RISC-V BSP的CDK工程開(kāi)發(fā)指南 | 技術(shù)集結(jié)

    目錄開(kāi)發(fā)環(huán)境配置工程創(chuàng)建CDK工程運(yùn)行CDK工程編譯工程運(yùn)行與調(diào)試RT-Thread課程上線玄鐵系列RISC-VBSP上手指南RT-Thread已對(duì)玄鐵(XuanTie)E、C、R系列
    的頭像 發(fā)表于 09-28 10:06 ?4585次閱讀
    <b class='flag-5'>RT-Thread</b>生成玄鐵RISC-V BSP的CDK工程<b class='flag-5'>開(kāi)發(fā)</b>指南 | 技術(shù)集結(jié)

    2025年RT-Thread開(kāi)發(fā)者巡回培訓(xùn)報(bào)名正式啟動(dòng)!

    親愛(ài)的RT-Thread社區(qū)成員們:新程再啟,共赴熱愛(ài)!2025年RT-Thread開(kāi)發(fā)者巡回培訓(xùn)正式啟動(dòng)報(bào)名!今年,我們選擇了西安、武漢、北京、杭州、深圳、上海、成都這7座城市,為大家?guī)?lái)
    的頭像 發(fā)表于 09-27 10:39 ?2258次閱讀
    2025年<b class='flag-5'>RT-Thread</b><b class='flag-5'>開(kāi)發(fā)</b>者巡回培訓(xùn)報(bào)名正式啟動(dòng)!

    使用RT-Thread studio 開(kāi)發(fā)RT-Thread Nano項(xiàng)目的時(shí)候 串口的驅(qū)動(dòng)是要自己寫(xiě)嗎?

    剛?cè)肟?。使?b class='flag-5'>RT-Thread studio 開(kāi)發(fā)RT-Thread 標(biāo)準(zhǔn)板項(xiàng)目的時(shí)候直接使用里邊的串口uart_dev=rt_device_find(“uart5”);然后操作設(shè)備,
    發(fā)表于 09-26 08:14

    如何使用rt-thread studio中,使用 定制化的SDK建立工程?

    步驟: rt-thread bsp n32 n32l40xcl-stb scons --target=eclipse 再 Scons –dist 生成 dist 目錄 進(jìn)入目錄后 再 scons
    發(fā)表于 09-26 06:16

    Windows上使用ENV工具開(kāi)發(fā)基于先楫MCU的RT-Thread應(yīng)用

    前言Env是RT-Thread推出的開(kāi)發(fā)輔助工具,針對(duì)基于RT-Thread操作系統(tǒng)的項(xiàng)目工程,提供編譯構(gòu)建環(huán)境、圖形化系統(tǒng)配置及軟件包管理功能。其內(nèi)置的menuconfig提供了簡(jiǎn)單易用的配置剪裁
    的頭像 發(fā)表于 08-29 12:22 ?1635次閱讀
    Windows上使用ENV工具<b class='flag-5'>開(kāi)發(fā)</b>基于先楫MCU的<b class='flag-5'>RT-Thread</b>應(yīng)用

    在Ubuntu上開(kāi)發(fā)基于先楫MCU的RT-Thread應(yīng)用指南

    1、前言RT-ThreadEnv是RT-Thread推出的開(kāi)發(fā)輔助工具,針對(duì)基于RT-Thread操作系統(tǒng)的項(xiàng)目工程,提供編譯構(gòu)建環(huán)境、圖形化系統(tǒng)配置及軟件包管理功能。其內(nèi)置的menu
    的頭像 發(fā)表于 08-29 12:22 ?1979次閱讀
    在Ubuntu上<b class='flag-5'>開(kāi)發(fā)</b>基于先楫MCU的<b class='flag-5'>RT-Thread</b>應(yīng)用指南

    【好書(shū)推薦】RT-Thread第20本相關(guān)書(shū)籍!《嵌入式實(shí)時(shí)操作系統(tǒng)RT-Thread原理與應(yīng)用》| 技術(shù)集結(jié)

    01內(nèi)容簡(jiǎn)介ContentSummary本書(shū)為讀者提供了一個(gè)全面、系統(tǒng)的RT-Thread學(xué)習(xí)指南,旨在幫助初學(xué)者及有經(jīng)驗(yàn)的開(kāi)發(fā)者掌握RT-Thread實(shí)時(shí)操作系統(tǒng)和STM32嵌入式微控制器的核心
    的頭像 發(fā)表于 08-24 10:05 ?1171次閱讀
    【好書(shū)推薦】<b class='flag-5'>RT-Thread</b>第20本相關(guān)書(shū)籍!《嵌入式實(shí)時(shí)操作系統(tǒng)<b class='flag-5'>RT-Thread</b>原理與應(yīng)用》| 技術(shù)集結(jié)

    從驅(qū)動(dòng)到應(yīng)用:RT-Thread環(huán)境下的SDIO開(kāi)發(fā)指南

    目錄硬件介紹搭建開(kāi)發(fā)環(huán)境配置SDIO驅(qū)動(dòng)掛載文件系統(tǒng)文件讀寫(xiě)測(cè)試演示視頻源碼工程總結(jié)本文主要講述RT-Thread環(huán)境下的SDIO
    的頭像 發(fā)表于 06-28 09:02 ?2984次閱讀
    從驅(qū)動(dòng)到應(yīng)用:<b class='flag-5'>RT-Thread</b>環(huán)境下的SDIO<b class='flag-5'>開(kāi)發(fā)</b>指南

    揭秘RT-Thread上的AUTOSAR CP系統(tǒng)

    本文探討了RT-Thread與AUTOSARCP的融合,解決車(chē)載ECU開(kāi)發(fā)中實(shí)時(shí)性、安全性與靈活性的平衡問(wèn)題。通過(guò)分層安全內(nèi)核(rt-safetyos/autoos)和工具鏈整合,兼容AUTOSAR
    的頭像 發(fā)表于 06-23 20:22 ?3354次閱讀
    揭秘<b class='flag-5'>RT-Thread</b>上的AUTOSAR CP系統(tǒng)

    人形機(jī)器人敏捷開(kāi)發(fā)新路徑:RT-Thread以軟件底座破解復(fù)雜系統(tǒng)難題 | 新聞速遞

    5月29日,2025機(jī)器人開(kāi)發(fā)者大會(huì)在上海張江科學(xué)城拉開(kāi)帷幕,RT-Thread睿賽德受邀參會(huì),與宇樹(shù)、智元、傅利葉等企業(yè)共話機(jī)器人行業(yè)解決方案。在人形機(jī)器人本體專(zhuān)題論壇上,RT-Thread睿賽德
    的頭像 發(fā)表于 06-04 14:03 ?1394次閱讀
    人形機(jī)器人敏捷<b class='flag-5'>開(kāi)發(fā)</b>新路徑:<b class='flag-5'>RT-Thread</b>以軟件底座破解復(fù)雜系統(tǒng)難題 | 新聞速遞

    RT-Thread審核團(tuán)招募: 深度參與開(kāi)源RTOS社區(qū)治理與演進(jìn)

    全球開(kāi)發(fā)者招募:RT-Thread審核團(tuán)(ReviewTeam)正式開(kāi)放申請(qǐng)!在開(kāi)源的世界里,代碼審查(CodeReview)是保證軟件質(zhì)量、促進(jìn)技術(shù)交流的關(guān)鍵環(huán)節(jié)。RT-Thread作為全球領(lǐng)先
    的頭像 發(fā)表于 05-21 18:02 ?1384次閱讀
    <b class='flag-5'>RT-Thread</b>審核團(tuán)招募: 深度參與開(kāi)源RTOS社區(qū)治理與演進(jìn)