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