學完 RT-Thread 內核,從本文開始熟悉了解 RT-Thread I/O 設備管理相關知識。
2022-06-30 10:38:13
3417 
RT-Thread 的時鐘管理以時鐘節拍為基礎,時鐘節拍是 RT-Thread 操作系統中最小的時鐘單位。
2019-07-19 10:12:32
6734 
在前面我們RT-Thread Studio工程基礎之上講一講RT-Thread內核啟動流程.
2022-06-20 00:30:33
4292 
我們知道,在寫裸機程序時,當我們完成硬件初始化后,就需要在主函數中進行調用。當我們使用RT-Thread后,完全不需要這樣做了,我們可以將硬件等自動初始化。 RT-Thread?自動初始化機制
2022-06-25 21:38:01
9371 
在開始寫 RT-Thread 內核之前,我們先新建一個 RT-Thread 的工程,Device 選擇Cortex-M3(Cortex-M4 或 Cortex-M7)內核的處理器,調試方式選擇軟件
2022-11-18 14:17:21
1113 這是一份 RT-Thread 開發人員的開發指引。RT-Thread 做為一份開源軟件,它需要由不同的人采用合作的方式完成,這份文檔是開發人員的一個指引。RT-Thread 的開發人員請遵守這樣
2023-02-21 16:50:36
2035 學習RT-Thread,除了基礎的應用,應該花點時間,研究下底層內核的實現方法。
2023-06-02 09:48:05
203 
目的還是學習并熟悉RT-Thread 操作系統。
2023-06-02 09:48:27
289 
繼續研究RT-Thread 最基礎,最重要的概念:內核對象。
2023-06-02 09:48:39
242 
前面已經讓 RT-Thread 進入了 entry 入口函數,并且 調整 鏈接腳本,自動初始化與 MSH shell 的符號已經預留, 進入了 RT-Thread 的初始化流
2023-11-14 12:27:46
442 
sensor_enable 存放在 RO 段中。RT-Thread 自動初始化機制自動初始化機制是指初始化函數不需要被顯式調用,只需要在函數定義處通過宏定義的方式進行申明,就會在系統啟動過程中被執行。例如在串口驅動中
2021-05-24 18:49:23
(rt_hw_usart_init),鏈接器會自動收集所有被申明的初始化函數,放到 RTI 符號段中,該符號段位于內存分布的 RO 段中,該 RTI 符號段中的所有函數在系統初始化時會被自動調用。 RT-Thread 內核對象模型
2021-03-29 06:41:19
他的處理器(以下簡稱次級 CPU )則會暫停在某個狀態下,等待 CPU0 將它們喚醒。CPU0 完成 RT-Thread 的全局初始化過程,包括外設初始化、中斷控制器的中斷分發部分初始化、全局變量的初始化
2022-04-27 14:38:30
用 RT-Thread Studio 新建潘多拉工程,已經自帶了 EasyFlash但是不像其他軟件包那樣有個 sample.c 測試文件。github上的源碼里有個測試例程,復制過來:只用初始化函數,但是就掛住。后面的指示燈閃爍的功能沒了。請問有什么初始化的工作沒做好嗎?
2023-01-30 15:01:20
RT-Thread 架構圖:RT-Thread開發指南開源地址內核層:RT-Thread 內核,是 RT-Thread 的核心部分,包括了內核系統中對象的實現,例如多線程及其調度、信號量、郵箱
2021-12-16 08:15:47
前言為了不再CTRL+C,CTRL+V,修改,我開始嘗試手敲代碼。RT-Thread線程可以靜態初始化,也可以動態申請內存的方式創建靜態初始化線程靜態初始化線程時,線程結構體與線程的棧,必須
2021-05-13 18:40:55
用鏈表把一個班的學生整整齊齊的放在一起,考試出成績的時候,就可以遍歷了。在 RT-Thread 的內核中就使用到了鏈表,所以這些 API 我們都是可以直接使用的,而不需要自己再去造輪子。2. 單鏈表
2022-04-01 12:01:23
for lists. */結構體有兩個指針分別指向下一個節點和上一個節點。初始化鏈表rt_list_t list;rt_list_init(&list);在節點(list)后面插入一個
2022-04-01 12:05:25
操作方法在內核文件 object.c 中實現4、RT-Thread內核對象初始化鏈表介紹 鏈表是一種數據結構,跟其他的結構體類似,初始化后本身占用內存空間,自身有內存地址?! ∫话汶p向鏈表,內部
2022-03-15 10:45:10
鏈表,所有的內核對象都被鏈接到該鏈表上,如圖 RT-Thread 的內核對象容器及鏈表如下圖所示:下圖則顯示了 RT-Thread 中各類內核對象的派生和繼承關系:4.1 內核對象數據結構4.1.1
2022-04-25 14:44:03
STM32 程序的內存分布6、RT-Thread 自動初始化機制8、RT-Thread 內核對象模型靜態對象和動態對
2021-08-06 07:44:48
1、RT-Thread內核學習筆記 - 內核對象rt_object 學習下RT-Thread,除了基礎的應用,應該花點時間,研究下內核的實現 RT-Thread內核,整體代碼量不大,很適合研究
2022-10-09 17:13:59
*/struct LNode pre;/ 指向下一個結點 */struct LNode next;/ 指向上一個結點 */}侵入式鏈表在 RT-Thread 以及 Linux 內核中鏈表是這樣定義
2022-12-05 13:59:32
裸機進入stop2模式,rtc喚醒后,需要重新初始化時鐘,串口等外設。如果是RT-Thread從stop2模式被rtc喚醒后,需要重新初始化時鐘,外設嗎?還有rtt初始化時候,例如board.c里面的需要重新初始化嗎?求大神解答
2022-07-05 11:24:59
大家好,我現在正在學習RT-Thread,但是在學習啟動代碼的時候有一些疑問:1、在BSS段清零后就初始化C++構造有什么作用呢?是必須初始化呢還是這個組件可選?2、在初始化C++構造后就直接跳到C
2022-03-21 09:26:54
個雙向鏈表的數據結構,用來把實例化的類添加到相應type的雙向鏈表中。在rt_object初始化時,每種類型的class都有一個鏈表結構將他們連接起來。
與rt_object相關的函數
RTT
2023-04-27 11:46:37
struct rt_timer 定義形成定時器內核對象,再鏈接到內核容器中進行管理。定時器控制塊會存儲定時器的一些信息,例如初始時鐘節拍數、超時到達的節拍數、定時器之間連接用的鏈表結構、超時回調函數等
2022-04-02 11:41:18
文章目錄RT-Thread的線程簡介源碼分析初始化線程線程脫離啟動線程掛起線程線程睡眠線程讓出測試參考資料:RTT官網文檔關鍵字:分析RT-Thread源碼、stm32、RTOS、線程管理器
2021-08-24 07:56:47
枚舉類型說明enum rt_object_class_type內核對象類型函數說明初始化對象該函數將初始化一個對象并將其放到系統對象管理器中。參數object將要被初始化的指定對象type對象類型
2022-08-25 15:23:42
的時候,在使用前都必須先初始化, 通常的做法是在主程序運行前手動添加調用初始化函數。 而 RT-Thread 提供了另一種低耦合高內聚的初始化方式,它不需要我們再 手動添加調用初始化函數,它能在系統
2022-08-25 15:15:39
事件集該函數將初始化事件集對象,并加入到系統對象容器中進行管理。參數event事件集對象的句柄name事件集的名稱flag事件集的標志,它可以取值:RT_IPC_FLAG_FIFO或
2022-08-15 11:39:18
就重點介紹一下對應的操作函數。1. 創建消息隊列在 RT-Thread 中,同其他內核對象一樣。創建消息隊列也有兩種方式:(1)動態創建(2)靜態初始化。動態創建一個消息隊列的函數接口如下,調用此函數
2022-03-31 14:14:59
RT-Thread 自動初始化機制1、自動初始化機制簡介在系統啟動流程圖中,有兩個函數:rt_components_board_init() 與 rt_components_init(),其后的帶
2022-04-12 17:43:15
, const char* name, void *start, rt_size_t size, rt_size_t block size);初始化內存池時,把需要進行初始化的內存池對象傳遞給內核,同時
2022-05-27 15:02:48
;}這里我們直接就可以使用 printf 進行打印,而沒有進行一些其它的初始化,參考這個思路引出了 RT-Thread 的自動初始化機制。RT-Thread 自動初始化引入int
2022-12-05 14:17:34
RTI 符號段中,該符號段位于內存分布的 RO 段中,該 RTI 符號段中的所有函數在系統初始化時會被自動調用。RT-Thread 內核對象模型靜態對象和動態對象RT-Thread 內核采用面向對象
2022-04-06 18:08:26
*name, rt_uint8_t flag);調用該函數接口時,系統會從動態內存堆中分配事件對象,然后進行對象的初始化,IPC對象初始化,并把set設置成0。刪除事件:rt
2015-03-06 17:18:50
_mutex_t mutex);當刪除一個互斥量時,所有等待此互斥量的線程都將被喚醒,等待線程獲得的返回值是-RT_ERROR。然后系統將該互斥量從內核對象管理器鏈表中刪除并釋放互斥量占用的內存空間。初始化互斥量
2015-03-06 17:23:23
rt_size_tpool_size,//存放消息的緩沖區大小rt_uint8_tflag);//消息隊列采用的等待方式(FIFO/PRIO)初始化消息隊列時,該接口需要獲得消息隊列對象的句柄(即指
2015-03-06 17:17:01
釋放郵箱使用的內存,最后刪除郵箱對象。初始化郵箱:rt_err_t rt_mb_init(rt_mailbox_t mb, //郵箱對象的句柄const char*name,//郵箱名稱void
2015-03-06 17:15:20
RT-thread的初始化過程是怎樣進行的?擴展補丁Sub和super的作用是什么?如何去使用它們呢?
2021-11-29 07:42:34
在文檔學習中看到其對靜態內核對象與動態對象描述:“內核對象分為兩類:靜態內核對象和動態內核對象,靜態內核對象通常放在 RW 段和 ZI 段中,在系統啟動后在程序中初始化;動態內核對象則是從內存堆中
2023-03-14 10:28:46
先從匯編代碼 startup_stm32f103xe.s 開始運行,然后跳轉到 C 代碼,進行 RT-Thread 系統功能初始化,最后進入用戶程序入口 main()。為了在進入 main() 之前完成
2019-08-04 07:30:00
(第六節學習視頻)【每日一練】RT-Thread Nano-自動初始化及MSH-EXPORT-1(第七節學習視頻)
2021-05-24 10:42:16
__rt_init_ulog_console_backend_init();。3 總結??為什么 RT-Thread 要采用這種復雜的方式來進行自動初始化操作呢?我認為是 RT-Thread 采用和 Linux 一樣的機制,為了實現驅動
2022-04-06 17:49:35
創建失敗對于用 rt_thread_init() 初始化的線程,使用 rt_thread_detach() 將使線程對象在線程隊列和內核對象管理器中被脫離。線程脫離函數如下:rt
2021-03-29 06:16:50
內存分布263.4 RT-Thread自動初始化機制283.5 RT-Thread內核對象模型293.5.1 靜態對象和動態對象293.5.2 內核對象管理架構313.5.3 對象控制塊333.5.4
2019-03-18 16:08:44
,即當內存池中無可用內存塊時,其申請線程允許等待,申請線程將掛起在 suspend_thread 鏈表上。內存池管理RT-Thread 提供了管理內存池的函數接口,包含:創建 / 初始化內存池申請內存
2022-04-06 17:02:59
普通鏈表學習數據結構的時候寫的鏈表是下面這個樣子侵入式鏈表在 RT-Thread 以及 Linux 內核中鏈表是這樣定義的在使用的時候是這樣定義的每一個內核對象定義的時候,讓結構體包含一個成員變量
2022-04-11 15:15:35
:初始化 LED 引腳、在循環中點亮 / 熄滅 LED。延時函數使用 RT-Thread 提供的延時函數 rt_thread_mdelay(),該函數會引起系統調度,切換到其他線程運行,體現了線程實時性
2021-05-14 16:09:46
main() 函數中(也就是在 main 線程中)實現 LED 閃爍代碼:初始化 LED 引腳、在循環中點亮 / 熄滅 LED。將延時函數替換為 RT-Thread 提供的延時函數
2021-05-18 15:40:32
RT-Thread 的相關頭文件。在 main() 函數中(也就是在 main 線程中)實現 LED 閃爍代碼:初始化 LED 引腳、在循環中點亮 / 熄滅 LED。將延時函數替換
2021-05-14 10:32:10
RT-Thread 的相關頭文件。在 main() 函數中(也就是在 main 線程中)實現 LED 閃爍代碼:初始化 LED 引腳、在循環中點亮 / 熄滅 LED。將延時函數替換
2021-05-19 18:15:33
RT-Thread 的相關頭文件。在 main() 函數中(也就是在 main 線程中)實現 LED 閃爍代碼:初始化 LED 引腳、在循環中點亮 / 熄滅 LED。將延時函數替換為 RT-Thread 提供的延時
2021-03-29 06:58:21
重新調度),從而將線程從睡眠中喚醒。由此可見,在軟件定時器線程模式下,rt_system_timer_thread_init中初始化的定時器線程timer_thread就是rt-thread線程調度的驅動力。
2015-03-02 14:21:11
,RT-Thread 提供了一個 libcpu 抽象層來適配不同的 CPU 架構。libcpu 層向上對內核提供統一的接口,包括全局中斷的開關,線程棧的初始化,上下文切換等。RT-Thread
2022-04-27 14:23:23
, rt_uint32_t tick);rt_thread_init函數用來初始化靜態線程對象。而線程句柄(或者說線程控制塊指針),線程棧由用戶提供。靜態線程是指,線程控制塊、線程運行棧一般都設置為
2022-08-30 14:51:19
RT-Thread是如何啟動的?如何對RT-Thread系統進行初始化呢?
2021-11-30 07:54:32
內核中的封裝繼承與多態RT-Thread 雖然是使用面向過程的 C 語言來編寫,但是處處都體現了面向對象的編程思想,先前對其感悟不夠深,隨著編寫的程序越來愈多,對其理解也逐步加深。封裝封裝是一種
2022-04-13 17:41:45
怎樣對rt-thread嵌入式系統中的串口進行初始化呢?有哪些過程?
2021-12-15 07:16:37
嵌入式RT-thread中初始化線程函數中(void)entry的意義何在,為什么要使用(void )?
2022-08-09 10:17:37
/ 初始化郵箱、發送郵件、接收郵件、刪除 / 脫離郵箱。本文只重點介紹幾種常用的接口函數。1. 創建郵箱RT-Thread 創建一個郵箱有兩種方式:動態創建、靜態初始化。動態創建一個郵箱的系統函數如下,調用
2022-03-31 14:29:57
郵箱是一種簡單的線程間消息傳遞方式,在 RT-Thread 操作系統的實現中能夠一次傳遞 4 字節郵件, 并且郵箱具備一定的存儲功能,能夠緩存一定數量的郵件數 (郵件數由創建、初始化郵箱時指定
2022-08-19 15:09:17
rt_thread_init:靜態初始化一個線程,線程結構體、線程棧,都是全局的變量。rt_thread_detach后,這個線程的內核對象從內核容器鏈表里移除,【但】線程結構體、線程棧,因為是靜態全局的,無法釋放。若下次再想
2022-11-25 18:06:12
。對象容器給每類內核對象分配了一個鏈表,所有的內核對象都被鏈接到該鏈表上, RT-Thread 的內核對象容器及鏈表如下圖所示:這個對象容器對應到代碼上是一個結構體數組,這個結構體數組在object.c
2022-05-18 14:23:06
事件、刪除/脫離事件集。本文只介紹常用的幾種系統函數。1. 創建事件集同信號量類似。RT-Thread 事件集創建也有兩種方式:動態創建、靜態初始化。動態創建一個事件集的函數接口如下,調用這個函數創建一
2022-04-11 15:31:16
。通過內核對象系統,RT-Thread可以做到不依賴于具體的內存分配方式,伸縮性得到 極大的加強。任務/線程調度支持以線程為基本調度單位的多任務系統。調度算法是基于優先級的全搶占式線程調度,支持256
2015-03-02 14:24:29
rt_thread_inited_sethook(void(*)(rt_thread_t thread)hook)設置線程初始化鉤子函數鉤子函數會在線程初始化的時候調用。參數hook指定的鉤子函數void
2022-08-29 15:30:09
RT-Thread推出RT-Thread Inside戰略開放RT-Thread開發平臺授權合作,與硬件十萬個為什么合作首次推出第一款RT-Inside的開發板——iBox物聯網開發套件。
2017-09-25 09:55:18
33754 
在學RT-Thread時,經常能聽到這個詞:自動初始化。用起來也非常容易,一個宏就解決了,但是原理是什么呢?
2019-07-21 10:17:14
7055 
那具體RT-Thread又是如何實現在main函數執行之前就把所有初始化硬件、時鐘的工作都做了呢?跟隨官方文檔的RT-Thread代碼啟動流程:
2020-06-28 09:18:12
2802 
[導讀] 前面寫了些文章分享C語言面向對象設計的一些個人體會,個人認為RT-Thread內核對于面向對象實現思想是一個非常好的設計。向這些在基礎軟件上深耕的國人大牛們致敬。本文基于學習
2020-11-04 18:09:01
1469 
RT-Thread 內核學習筆記 - 內核對象rt_objectRT-Thread 內核學習筆記 - 內核對象管理RT-Thread 內核學習筆記 - 內核對象操作APIRT-Threa...
2022-01-25 18:19:18
8 RT-Thread 內核學習筆記 - 內核對象rt_objectRT-Thread 內核學習筆記 - 內核對象管理RT-Thread 內核學習筆記 - 內核對象操作APIRT-Threa...
2022-01-25 18:19:48
8 RT-Thread 內核學習筆記 - 內核對象rt_objectRT-Thread 內核學習筆記 - 內核對象管理RT-Thread 內核學習筆記 - 內核對象操作APIRT-Threa...
2022-01-25 18:23:19
6 RT-Thread 內核學習筆記 - 內核對象rt_objectRT-Thread 內核學習筆記 - 內核對象管理RT-Thread 內核學習筆記 - 內核對象操作APIRT-Threa...
2022-01-25 18:24:50
3 RT-Thread 內核學習筆記 - 內核對象rt_objectRT-Thread 內核學習筆記 - 內核對象管理RT-Thread 內核學習筆記 - 內核對象操作APIRT-Threa...
2022-01-25 18:26:51
7 背景 {代碼...} 內核對象控制塊 {代碼...} {代碼...} 導火索 {代碼...} void print_kernel_object_size(void){ {代碼...} }MSH_CMD_EXPO...
2022-01-25 18:46:57
0 [導讀] ?前面寫了些文章分享C語言面向對象設計的一些個人體會,個人認為RT-Thread內核對于面向對象實現思想是一個非常好的設計。向這些...
2022-01-26 17:17:23
1 RT-Thread全球技術大會:如何使用組件和自動初始化流程 ? ? ? ? ? 審核編輯:彭靜
2022-05-27 15:16:38
669 
RT-Thread 是一款開源實時操作系統,包括 RT-Thread 內核、FinSH 命令行工具、設備文件系統、TCP/IP 協議棧、RT-Thread/GUI、大量的 CPU 架構支持和豐富的第三方軟件。
2022-05-31 11:17:50
2250 
??在分析之前首先查閱 RT-Thread 的官方文檔 [RT-Thread 自動初始化機制](https://www.rt-thread.org/document/site
2022-06-17 08:52:11
1806 
RT-Thread內核的相關概念和基礎知識,然后了解RT-Thread系統的啟動流程、內存分布情況以及內核的配置方法。內核處于硬件層之上,包括了內核庫和實時內核的實現,而實時內核又包括:對象管理、線程管理及調度器、線程間通信管理、時鐘管理及內存管理等等。 ? 為了幫助大家深
2022-06-30 17:10:14
886 去年此時,筆者剛接觸 rt-thread 的時候,被它的初始化過程深深折服了。第一次打開一個 rt-thread 的項目,竟然沒找到多線程在哪兒初始化的,"main" 函數里沒有!
2022-07-04 15:30:08
1276 
RT-Thread 簡介 作為一名 RTOS 的初學者,也許你對 RT-Thread 還比較陌生。然而,隨著你的深入接觸,你會逐漸發現 RT-Thread 的魅力和它相較于其他同類型 RTOS
2022-07-09 11:27:42
3873 
RT-Thread文檔_RT-Thread 簡介
2023-02-22 18:22:24
5 RT-Thread文檔_內核基礎
2023-02-22 18:28:13
0 RT-Thread文檔_內核移植
2023-02-22 18:31:09
1 RT-Thread文檔_RT-Thread SMP 介紹與移植
2023-02-22 18:31:34
5 內核是操作系統最重要的部分,學習RT-Thread也是從最基本的內核開始。RT-Thread內核要怎么學?編者覺得首先應該是從軟件架構入手,了解內核的組成與實現,這一部分會學習RT-Thread內核
2022-06-27 09:36:56
1587 
RT-Thread 在線程初始化的代碼內有一段初始化線程堆棧的代碼
2023-08-14 16:50:03
913 
最近在開發調試基于RT-Thread 的驅動時,遇到一個比較奇怪的死機問題,后來經過一步步排查,終于發現是驅動的鏈表節點沒有初始化造成的死機
2023-10-08 14:49:02
392 
://github.com/RT-Thread/rt-thread/releases/tag/v5.0.2 RT-Thread 迎來了全新的版本 v5.0.2,自 v5.0.0?版本發布以來,內核和組件都經歷
2023-10-10 18:45:01
666 
RT- Thread 的I/O設備模型(簡稱“設備模型”)是建立在內核對象模型基礎之上的,設備被認為是一類對象,被納入對象管理的范疇。
2023-10-11 17:12:18
304 
評論