<noframes id="xvf7z">
<address id="xvf7z"></address>

        <output id="xvf7z"></output>
        
        

          <p id="xvf7z"></p>

                <th id="xvf7z"><thead id="xvf7z"><progress id="xvf7z"></progress></thead></th>
                創作

                完善資料讓更多小伙伴認識你,還能領取20積分哦, 立即完善>

                3天內不再提示

                RT-Thread記錄(一、版本開發環境及配合CubeMX)

                矜辰所致 ? 來源:矜辰所致 ? 作者:矜辰所致 ? 2022-06-20 00:28 ? 次閱讀

                期間幾個月時間關于 RT-Thread 的項目有好幾個,感覺最近 RT-Thread 越來越火,
                在幾年前用過 RT-Thread,那個時候都還沒有RT-Thread Studio IDE,現在啥都有了。
                RT-Thread官方資料也多,理論,示例,說明應有盡有,自己重新學習一邊,做個記錄貼。

                目錄

                前言
                1、RT-Thread 版本(以哪個版本開始學習)
                1.1 RT-Thread Nano
                1.2 RT-Thread 標準版
                1.3 RT-Thread Smart
                2、RT-Thread 開發環境
                2.1 開發板(自己畫的開發板)
                2.2 開發工具
                2.3 環境搭建
                2.4 RT-Thread Studio For Vscode
                3、第一個工程
                3.1 根據自己環境新建工程
                3.2 配合 CubeMX 配置使用
                3.2.1 SConscript 文件修改
                3.2.2 CubeMX 再次修改配置問題記錄
                3.3 創建一個跑馬燈任務
                ————————————————

                前言

                作為一款國產的操作系統,相對其他操作系統,官網對大部分工程師來說友好到了極點 = =!

                什么資料直接可以查看官網即可。所以有問題,先上官網!

                1、RT-Thread 版本(以哪個版本開始學習)

                目前來說,RT-Thread 主要分為3個大版本,這個在文檔中心就有,這里列出來根據自己的情況簡單說明一下:


                1.1 RT-Thread Nano

                RT-Thread Nano 和 FreeRTOS 是比較類似的東西 ,一個內核,Nano適用于一些 內存 空間小的MCU, 就比如我現在常用的 STM32L051C8 ,只有8KB 的RAM 空間,在講解FreeRTOS 的時候使用 STM32L051C8 不止一次的提到內存問題。

                學習的話根據自己需要,建議還是從標準版本開始學習,因為標準版本包含Nano的一切,還多出了很多組件,方便使用的軟件包等。

                實際應用的話,在一般普通的應用項目上,Nano估計用起來還更多,內存就是成本!

                RT-Thread Nano 的資料可以查看官方文檔中心,記住一點就行,它是一個極簡版的硬實時內核。

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_19,color_FFFFFF,t_70,g_se,x_16


                1.2 RT-Thread 標準版

                RT-Thread 標準版本是包含 Nano 的,標準版帶帶有豐富的組件軟件包,這是它與 FreeRTOS 主要區別之一,在一些應用,比如 MQTT,云端接入等使用上,RT-Thread 具備現成的軟件包,使用起來簡單方便。
                學習的話建議從標準版 入手,雖然在某些情況下,豐富的組件,軟件包可能會讓初學者犯難,組件和軟件包到底是如何與硬件相互關聯,但是只要確實去學習了解了以后,才會發現其便捷之處,同時了解了原理,也能夠針對自己的應用對組件進行對應的裁剪,增加,更加能夠滿足各種項目需求。

                介紹還是去官網查看,簡介截取自官網:
                RT-Thread 與其他很多 RTOS 如 FreeRTOS、uC/OS 的主要區別之一是,它不僅僅是一個實時內核,還具備豐富的中間層組件:

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16


                即便是選好了 RT-Thread 標準版 作為學習的版本,但是就標準版而言,也有很多版本:

                在這里插入圖片描述

                具體版本的不同以及如何選擇可以參考官方說明。

                1.3 RT-Thread Smart

                RT-Thread Smart 幾年前是沒有的,最近出來的分之,是針對于帶 MMU 的芯片,就是以前可以跑 Linux 系統的芯片。
                比如近兩年比較火的多家出了開發板的 STM32MP1 和 IMX6ULL 兩款系列芯片。出的開發板最初當然都是以 Linux 系統為主,現在 RT-Thread 也能夠跑在這些芯片上了。
                這個版本就不是本欄目的博文需要記錄的了,如果后期在寫完 嵌入式Linux 后,有機會也來做些記錄。

                簡介截取自官網:
                RT-Thread Smart(簡稱 rt-smart)是基于 RT-Thread 操作系統衍生的新分支,面向帶 MMU,中高端應用的芯片,例如 ARM Cortex-A 系列芯片,MIPS 芯片,帶 MMU 的 RISC-V 芯片等。rt-smart 在 RT-Thread 操作系統的基礎上啟用獨立、完整的進程方式,同時以混合微內核模式執行。

                2、RT-Thread 開發環境

                2.1 開發板(自己畫的開發板)

                通過上面的介紹,我們將以標準版來進行 RT-Thread 的記錄。

                板子使用的是自己以前畫的 STM32F103VGT6(ROM:1MB RAM:96KB):

                在這里插入圖片描述

                2.2 開發工具

                還記得以前學習 RT-Thread 的時候,還沒有出 RT-Thread Studio IDE,整體的工程搭建 需要用到 ENV,SCons 等工具,不管是MDK,IRA,GCC工具鏈開發,都得先用到 ENV 和Scons 工具,配置操作一遍, 對于初學者來說,很不友好,具體的這些詳細介紹可以在官網查詢:

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

                最初的學習根據官方的文檔手冊視頻等內容,自己倒是也用起來了,但是,一段時間沒用,命令還是忘得差不多了。
                現在好了,RT-Thread 官方團隊推出了 RT-Thread Studio 。RT-Thread Studio把以前的這些開發工具集成好了,不用死記以前那些命令,界面圖形話的工程搭建相對以前更加的簡便和直觀。


                作為國產的 IDE,界面操作那是相當的友好, 我們本系列的教程是以項目為目的,為了能夠使用 RT-Thread 完成一個完整項目的開發,所以不會去花太多精力去折騰 工程架構的搭建之類的 事情,所以使用 RT-Thread Studio 是完美的選擇。

                2.3 環境搭建

                根據上面介紹,我們定下使用 RT-Thread Studio 來作為本系列博文的開發 IDE,安裝下載可直接在官方找到,根據手冊安裝走起來:

                在這里插入圖片描述


                等待安裝完成,運行軟件需要登錄一下 RT-Thread 賬號:

                在這里插入圖片描述

                根據官方文檔說明,第一步先安裝更新 SDK 包:

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

                在我這臺電腦上,以前搭建過環境,我有點感覺 RT-Thread Studio 會自動識別電腦中的環境變量,以找到電腦上已經存在的環境,比如上面的版本,和我使用的 GCC 工具鏈版本:

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

                安裝好了SDK包,基本上就可以開始建立工程測試了。

                再次說明, RT-Thread Studio 使用手冊,界面配置等操作,官方文檔,視頻,都有詳細的說明。 這里記錄的是自己使用中必須的步驟。

                2.4 RT-Thread Studio For Vscode

                (待更新… 先還是使用 IDE 熟練起來,再來 Vscode 里用插件玩玩,畢竟相對來說 還是 IDE 配置更簡單)

                3、第一個工程

                3.1 根據自己環境新建工程

                在上面操作結束以后,我們直接來新建一個工程,新建工程之前:

                再次說明一下本文說使用的環境:

                1. 使用 RT-Thread 標準版
                2. 自己畫的開發板,基于STM32F103VGT6

                所以我們在 RT-Thread Studio 里面新建項目的界面做如下選擇:

                在這里插入圖片描述

                點擊完成,等待工程自動生成,因為串口1是在新建工程的時候默認已經配置好,然后直接編譯一下,燒錄:

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

                通過串口助手連接上開發板,波特率默認的位115200:

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

                可以看到 RT-Thread 已經在板子上正常運行起來:

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

                3.2 配合 CubeMX 配置使用

                上面的通過終端看到的測試結果,也只用到了 串口 功能,至于萬年不變的開局跑馬燈,我們都沒有看到,那么如何真正的在硬件上能夠體現出來呢,在官方文檔也有對應的介紹:

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

                但是官方這部分的說明不是太多,我們這里還是需要測試說明下,測試結果前面還算順利,后面的操作也有一些小問題,需要注意?。?!

                點擊工程目錄下面的 CubeMx Setting:

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

                打開了以后注意,以前使用 CubeMx 該怎么設置就怎么設置,時鐘,串口(如果只使用打印串口,不用其他串口通訊這里可以不設置,工程中已經做過打印串口初始化),IO口等,雖然開始我們在工程建立的時候已經是能過時鐘,串口,但是打開了這個設置,就得重新全部設置一遍!

                我們根據步驟,把基本的 時鐘,調試方式,串口,LED,按鍵 配置好進行初步的簡單測試。

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

                在生產代碼前把 Code Generator 欄目勾選一下:

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

                然后點擊生成工程。

                工程生成后不需要打開,但是必須關閉 CubeMX,這樣才能在RT-Thread Studio 上正常進行下面的操作 !

                生成工程以后,關閉CubeMX會提示cubemx.ioc 已經被修改,是否要保存配置,點擊確定,如下圖:

                poYBAGKtyQSAAwIzAAAq4AVOpO8896.png

                分析一下使用了CubeMX生成代碼后的工程:

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

                • 原來的hal_conf.h就被cubeMX新生成的替換掉
                • RT-Thread Studio 會且只會使用CubeMX生成的 Inc 和 Src 文件夾下的內容
                • 主函數 RT-Thread Studio 會在 CubeMX生成的 main 函數前用 _WEAK 聲明
                • 時鐘初始化函數,會使用 CubeMx 中的設置
                poYBAGKtyQSAXF-mAABOWXHMRZo984.png

                一些基本的構建現在版本的RT-Thread Studio 都會自動設置好,通過SConscript。

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

                工程可以直接編譯通過。

                我們主函數是在 applications 下面的 main.c 文件中,所以使用CubeMX生成的配置,我們需要在applications 下面的 main.c 文件中包含對應的頭文件,和函數main中調用初始化。

                3.2.1 SConscript 文件修改

                但是沒想到在這里遇到了一個問題:

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

                仔細看了看,發現這是找不到這兩個初始化的實現,看著工程架構中確實沒有這兩個.c文件,研究了半天,還是找到方法,修改SConscript文件,類似Makefile:

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

                注意!修改完SConscript之后,是需要同步 scons 配置才能生效的,操作如下:

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_19,color_FFFFFF,t_70,g_se,x_16

                同步 scons 以后 cubemx -> Src -> 下面多了對應的 .c 文件,重新構建能按照我們的設置編譯了!

                額外說明:

                上面我示例中我還是使用了MX_USART1_UART_Init();,其實這里并不需要,因為串口1 在工程 drivers 文件夾里的drv_usart.c 文件中已經使用INIT_BOARD_EXPORT(rt_hw_usart_init); 初始化了,所以不需要再次初始化,這里如果再配置一次,也不會出現問題,但是最好是不需要。

                通過 Makefile 可以直接看到我們 CubeMX 生成了多少 .c 文件:

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_17,color_FFFFFF,t_70,g_se,x_16

                我們在上面除了 RT-Thread Studio 默認給我們添加的,我們還添加了 GPIO 和 串口 的驅動文件,還有一個 it 是和中斷有關的,我們并沒有添加??!

                那么是不是中斷就無法響應了呢?

                還有,如果不添加 CubeMX生成的 GPIO 和 串口 的驅動文件,不使用CubeMX中的初始化,是不是GPIO就不能用了呢?

                這些問題暫時不做解釋,RT-Thread 內核自己還有板級驅動, 因為這是后面文章需要介紹的 RT-Thread 內核驅動的一些知識。

                3.2.2 CubeMX 再次修改配置問題記錄

                第一次我們為了測試,配置比較簡單,所以初始化的外設也比較少,隨著我們學習的深入,需要添加的外設越來越多,我們需要使用 CubeMX setting 再次修改配置,那么一些問題也隨之而來,這里就做個記錄:

                1、__WEAK int main(void) 前面的 __WEAK 需要手動添加,注意這兩個下橫線是兩個英文的下劃線。

                pYYBAGKtyQ6Ab0CTAAAR7eZOn7Y511.png

                2、新添加的外設文件,需要通過修改SConscript文件添加,步驟就按照上面說明:

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_20,color_FFFFFF,t_70,g_se,x_16

                注意有個文件stm32f1xx_it.c是不建議加的,因為其中的一些中斷響應函數在 RT-Thread 內部有實現這里會沖突,除非自己完全能懂哪些需要哪些不需要。

                (stm32f1xx_it.c這個文件在后面 RT-Thread 應用篇 — 在STM32L051上使用 RT-Thread 系列博文中會使用到,里面說明了如何修改)

                3.3 創建一個跑馬燈任務

                完成上述配置,我們開始可以跑馬燈走起來了,既然用了 RTOS,那么當然是通過創建 一個 LED 跑馬燈任務來完成我們的快速上手。

                我們在程序中 靜態創建一個線程 led1_blink ,上電就啟動調度,開始運行;
                動態創建一個線程 led2_blink, 需要通過命令啟動調度,程序源碼如下:

                /*
                 * Copyright (c) 2006-2022, RT-Thread Development Team
                 *
                 * SPDX-License-Identifier: Apache-2.0
                 *
                 * Change Logs:
                 * Date           Author       Notes
                 * 2022-02-16     QZH    	first lesson for test
                 */
                
                #include 
                #include "main.h"
                #include "usart.h"
                #include "gpio.h"
                
                #define DBG_TAG "main"
                #define DBG_LVL DBG_LOG
                #include 
                
                static struct rt_thread led1_thread;    //led1線程
                static char led1_thread_stack[256];
                
                static rt_thread_t led2_thread = RT_NULL; //led2線程
                
                static void led1_thread_entry(void *par){
                    while(1){
                        LED1_ON;
                        rt_thread_mdelay(1000);
                        LED1_OFF;
                        rt_thread_mdelay(1000);
                    }
                }
                
                static void led2_thread_entry(void *par){
                    while(1){
                        LED2_ON;
                        rt_thread_mdelay(500);
                        LED2_OFF;
                        rt_thread_mdelay(500);
                    }
                }
                
                int main(void)
                {
                    MX_GPIO_Init();
                    MX_USART1_UART_Init();
                    int count = 1;
                
                    rt_err_t rst2;
                    rst2 = rt_thread_init(&led1_thread,
                                        "led1_blink ",
                                        led1_thread_entry,
                                        RT_NULL,
                                        &led1_thread_stack[0],
                                        sizeof(led1_thread_stack),
                                        RT_THREAD_PRIORITY_MAX -1,
                                        50);
                
                    if(rst2 == RT_EOK){
                        rt_thread_startup(&led1_thread);
                    }
                
                    while (count++)
                    {
                        if(count < 11){
                            LOG_D("Hello RT-Thread!%d",count);
                        }
                        if(count >= 0XFFFFFF00) count = 0;
                        rt_thread_mdelay(1000);
                    }
                
                    return RT_EOK;
                }
                
                void led2_Blink(){
                    led2_thread = rt_thread_create("led2_blink",
                                            led2_thread_entry,
                                            RT_NULL,
                                            256,
                                            RT_THREAD_PRIORITY_MAX -1,
                                            50);
                
                    /* 如果獲得線程控制塊,啟動這個線程 */
                    if (led2_thread != RT_NULL)
                        rt_thread_startup(led2_thread);
                }
                
                MSH_CMD_EXPORT(led2_Blink, Led2 sample);

                上述代碼測試的結果如下:

                watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55-c6L6w5omA6Ie0,size_18,color_FFFFFF,t_70,g_se,x_16

                • RT-Thread
                  +關注

                  關注

                  27

                  文章

                  398

                  瀏覽量

                  33671
                • CubeMx
                  +關注

                  關注

                  0

                  文章

                  2

                  瀏覽量

                  147
                收藏 人收藏

                  評論

                  相關推薦

                  RT-Thread串口使用指南及問題解決方式匯總

                  1、這篇文章主要講解如何適配串口V2驅動,下面以STM32F411RE-NUCLEO的BSP為例,講解如何快速適配到該開發板上 ...
                  發表于 06-23 15:29 ? 1798次 閱讀

                  怎么去解決armv8a移植到rt-smart分支系統中出錯的問題呢

                  系統環境 armv8-a 64位 4核cortex-a35 移植到rt-smart分支系統中 由于rt沒有線程支持aarch64 cortex-a35,因此參考cortex-a72...
                  發表于 06-23 14:57 ? 905次 閱讀

                  NUC980開發板應用 基于NK-980IoT的國學唐詩學習機

                  基于NK-980IoT的國學唐詩學習機 1 項目背景 最近一直在陪小孩學習國學精髓,比如唐詩、宋詞這....
                  的頭像 RTThread物聯網操作系統 發表于 06-23 14:55 ? 296次 閱讀

                  Nuvoton M487開發板環境搭建和程序下載測試入門

                  一、開發板介紹1. 前言很感謝RT-Thread 和 新唐給予的這次評測機會,本次評測的開發板是 新唐的 Nuvoton M487,我們拿到手的...
                  發表于 06-23 14:36 ? 1012次 閱讀

                  基于RT-Thread+RA6M4的智能安防系統詳解

                  ??無論是在家里還是在公司,安防都尤為的重要,與其亡羊補牢,更重要的是防患于未然。安全是目的,防范是....
                  的頭像 物聯網技術分享 發表于 06-23 14:34 ? 51次 閱讀
                  基于RT-Thread+RA6M4的智能安防系統詳解

                  在RT-Thread studio + NK-980IOT環境下使用iperf命令測試四種模式帶寬

                  測試環境開發板:NK-980IOT V1.0 開發環境:RT-Thread studio 2.2.1 + NuWriter v1.18 RT-Thread版本:4.0.5 開...
                  發表于 06-23 14:20 ? 1087次 閱讀

                  怎樣對基于NK-980IOT開發板的SPI NAND Flash進行讀寫測試呢

                  SPI協議其實是包括:Standard SPI、Dual SPI和Queued SPI三種協議接口,分別對應3-wire, 4-wire, 6-wire。 (1)...
                  發表于 06-23 12:05 ? 1185次 閱讀

                  Nuvoton M487開發板的PWM驅動評測步驟分享

                  一、M487 PWM簡介1、EPWM ? 8個獨立PWM 輸出,16位計數器,12位預分頻,最大時鐘 192MHz ? 12位死區時間 ? 計...
                  發表于 06-23 11:56 ? 448次 閱讀

                  簡要分析N9H30開發板RTThread框架下的LVGL demo源碼

                  續接上一篇文章,分析LVGL的demo源碼。官方的widget例程代碼lv_demo_widgets()函數體如下,下面逐步分析。雖然之前也簡單看過...
                  發表于 06-23 11:42 ? 357次 閱讀

                  基于NK880IOT和RT-Thread的TIMER硬件使用說明

                  1、NK880IOT-NK9TIMER簡介開發環境簡介NK-980IOT V1.0 (NUC980DK61Y)RT-Thread Studio + J-Link ...
                  發表于 06-23 11:21 ? 772次 閱讀

                  分享一種基于RT-Thread和N32G457的運動姿態解算設計

                  1、基于RT-Thread和N32G457的運動姿態解算基本框架如上圖所示,設計框架由硬件和軟件兩部分組成,其中硬件主要包括N32G45...
                  發表于 06-23 10:24 ? 1071次 閱讀

                  rt-thread 優化系列(五)lwip 裁剪

                  很久之前就開始整理下面的優化項列表了,但是有很多問題研究不深,一時不敢冒失推出。
                  的頭像 出出 發表于 06-23 10:21 ? 828次 閱讀

                  RT-Thread記錄(八、理解RT-Thread內存管理)

                  記得最初學習 RT-Thread ,對于內存管理我也是簡單看看然后一筆帶過,當時覺得用不上,在我做的....
                  的頭像 矜辰所致 發表于 06-23 10:11 ? 188次 閱讀
                  RT-Thread記錄(八、理解RT-Thread內存管理)

                  rt-thread 驅動篇(八)hwtimer 重載算法優化

                  區別于 rt-thread 內核實現的兩種定時器,這種定時器依賴芯片內置的定時器外設,依靠穩定高速的....
                  的頭像 出出 發表于 06-23 10:10 ? 826次 閱讀
                  rt-thread 驅動篇(八)hwtimer 重載算法優化

                  rt-thread 優化系列(四)信號對 ipc 的影響

                  信號 signal,并不是線程間同步的信號量 semaphore。后者是線程間同步機制的一種,而前者....
                  的頭像 出出 發表于 06-23 09:51 ? 814次 閱讀

                  rt-thread優化系列(三)軟定時器的定時漂移問題分析

                  所謂軟定時器,是由一個線程運行維護的定時器列表。由線程調用定時器回調函數。
                  的頭像 出出 發表于 06-23 09:35 ? 826次 閱讀

                  GD32 RISC-V系列 BSP框架制作與移植

                  ? 手把手教你使用RT-Thread制作GD32 RISC-V系列BSP 熟悉RT-Thread的朋....
                  的頭像 嵌入式大雜燴 發表于 06-22 19:44 ? 1517次 閱讀
                  GD32 RISC-V系列 BSP框架制作與移植

                  基于RT-Thread操作系統衍生rt-smart實時操作系統簡介

                  1、rt-smart 實時操作系統簡介RT-Thread Smart(簡稱 rt-smart)嵌入式實時操作系統是基于 RT-Thread 操作系統衍生的新分...
                  發表于 06-22 17:56 ? 2372次 閱讀

                  RT-Thread記錄(七、IPC機制之郵箱、消息隊列)

                  講完了線程同步的機制,我們要開始線程通訊的學習,
                  的頭像 矜辰所致 發表于 06-22 10:06 ? 179次 閱讀
                  RT-Thread記錄(七、IPC機制之郵箱、消息隊列)

                  rt-thread 驅動篇(三) serialX 壓力測試

                  本周筆者花了好多天的時間,計劃從多個方面對串口驅動做個比較。下面就從以下幾個角度做個對比測試。
                  的頭像 出出 發表于 06-22 09:22 ? 1247次 閱讀

                  rt-thread 驅動篇(二) serialX 理論實現

                  在前一篇文章里,大致提出了我的串口驅動框架理論。里面做了一些對串口驅動特性的幻想。也在 NUC970....
                  的頭像 出出 發表于 06-22 09:03 ? 1345次 閱讀
                  rt-thread 驅動篇(二) serialX 理論實現

                  GD32407V-START開發板的BSP框架制作與移植

                  熟悉RT-Thread的朋友都知道,RT-Thread提供了許多BSP,但不是所有的板子都能找到相應....
                  的頭像 嵌入式大雜燴 發表于 06-22 08:54 ? 1286次 閱讀
                  GD32407V-START開發板的BSP框架制作與移植

                  RT-Thread記錄(六、IPC機制之信號量互斥量事件集)

                  上文說到 RT-Thread 對臨界區的處理方式有多種,其中已經分析了關閉調度器和屏蔽中斷的方式, ....
                  的頭像 矜辰所致 發表于 06-21 10:40 ? 2213次 閱讀
                  RT-Thread記錄(六、IPC機制之信號量互斥量事件集)

                  rt-thread 驅動篇(一) serialX 框架理論

                  串口驅動三種工作模式:輪詢、中斷、DMA。
                  的頭像 出出 發表于 06-21 10:37 ? 2010次 閱讀
                  rt-thread 驅動篇(一) serialX 框架理論

                  rt-thread 優化系列(二) 之 同步和消息關中斷分析

                  書接前文,上篇優化聊的是關中斷操作,在很多地方過保護,導致關中斷時間太久,可能引起其它中斷不能及時響....
                  的頭像 出出 發表于 06-21 09:47 ? 1836次 閱讀

                  rt-thread 優化系列(一) 之 過多關中斷

                  關于優化的話題永遠不過時,沒期限。
                  的頭像 出出 發表于 06-21 09:03 ? 1421次 閱讀

                  rt-thread 優化系列(0) SysTick 優化分析

                  論壇里有人提出了一個疑問,說 STM32 系列 bsp 在初始化系統時鐘的過程中使用到了 tick ....
                  的頭像 出出 發表于 06-21 08:55 ? 1246次 閱讀

                  RT-Thread記錄(五、RT-Thread 臨界區保護)

                  本文聊聊臨界區,以及RT-Thread對臨界區的處理
                  的頭像 矜辰所致 發表于 06-20 16:06 ? 2095次 閱讀
                  RT-Thread記錄(五、RT-Thread 臨界區保護)

                  usbhost驅動相關疑問與調試記錄

                  調試 stm32 的usb host 的艱辛歷程。希望有遇到相同問題的人能從中發現點兒什么。
                  的頭像 出出 發表于 06-20 15:24 ? 176次 閱讀

                  RT-Thread記錄(四、RTT時鐘節拍和軟件定時器)

                  RT-Thread第4課,聽聽 RT-Thread 的心跳,再學習一下基于心跳的軟件定時器使用。
                  的頭像 矜辰所致 發表于 06-20 11:50 ? 2064次 閱讀
                  RT-Thread記錄(四、RTT時鐘節拍和軟件定時器)

                  rt-thread 驅動篇(六)serialX弊端及解決方法

                  serialX 作為一個非阻塞串口驅動框架,在遇到一些異常時,需要做一些特殊處理,今天,筆者帶大家來....
                  的頭像 出出 發表于 06-20 11:43 ? 239次 閱讀

                  RT-Thread記錄(三、RT-Thread線程操作函數)

                  講完了RT-Thread開發環境,啟動流程,啟動以后當然是開始跑線程了,那么自然我們得學會如何創建線....
                  的頭像 矜辰所致 發表于 06-20 00:31 ? 1729次 閱讀
                  RT-Thread記錄(三、RT-Thread線程操作函數)

                  RT-Thread記錄(二、RT-Thread內核啟動流程)

                  在前面我們RT-Thread Studio工程基礎之上講一講RT-Thread內核啟動流程.
                  的頭像 矜辰所致 發表于 06-20 00:30 ? 1797次 閱讀
                  RT-Thread記錄(二、RT-Thread內核啟動流程)

                  基于Select/Poll實現并發服務器(二)

                  開發環境: RT-Thread版本:4.0.3 操作系統:Windows10 Keil版本:V5.3....
                  的頭像 嵌入式大雜燴 發表于 06-20 00:26 ? 1834次 閱讀
                  基于Select/Poll實現并發服務器(二)

                  基于Select/Poll實現并發服務器(一)

                  ? 開發環境: RT-Thread版本:4.0.3 操作系統:Windows10 Keil版本:V5....
                  的頭像 嵌入式大雜燴 發表于 06-20 00:20 ? 1761次 閱讀
                  基于Select/Poll實現并發服務器(一)

                  MPU6050簡介及rt-thread軟件包使用

                  小伙伴們大家好,好久不更新RT-Thread實戰筆記啦,今天來搞一搞MPU6050,話不多說,淦!
                  的頭像 RTThread物聯網操作系統 發表于 06-17 10:42 ? 233次 閱讀

                  使用memheap內存管理算法對片內RAM和片外SDRAM進行管理的方法

                  ??在開發中由于單片機自帶的 RAM 空間比較小,有時候需要擴展片外的 RAM 以供使用,RT-Th....
                  的頭像 RT-Thread 操作系統 發表于 06-17 08:53 ? 262次 閱讀
                  使用memheap內存管理算法對片內RAM和片外SDRAM進行管理的方法

                  RT-Thread自動初始化機制

                  ??在分析之前首先查閱 RT-Thread 的官方文檔 [RT-Thread 自動初始化機制](ht....
                  的頭像 RT-Thread 操作系統 發表于 06-17 08:52 ? 203次 閱讀
                  RT-Thread自動初始化機制

                  rt-thread 驅動篇(五)serialX 小試牛刀

                  終于來到了 serialX 的實踐篇,期待很久了。
                  的頭像 出出 發表于 06-16 11:29 ? 241次 閱讀
                  rt-thread 驅動篇(五)serialX 小試牛刀

                  AT組件的實現過程和代碼的調用邏輯

                  AT組件的核心處理邏輯是將收到的 AT 模組的應答信息放到 recv_line_buf 緩沖區中,然....
                  的頭像 RT-Thread 操作系統 發表于 06-15 09:21 ? 204次 閱讀
                  AT組件的實現過程和代碼的調用邏輯

                  想要使用AI卻不會AI建模嗎

                  人類經歷了三次工業革命,無論是蒸汽機、電力還是電子信息技術,每一次革命都給人類的生產力帶來了幾十倍的....
                  的頭像 科技綠洲 發表于 06-14 14:29 ? 729次 閱讀

                  nr_micro_shell介紹及使用方法

                  在進行調試和維護時,常常需要與單片機進行交互,獲取、設置某些參數或執行某些操作,nr_micro_s....
                  的頭像 MCU開發加油站 發表于 06-13 16:58 ? 381次 閱讀

                  rt-thread 驅動篇(七)GPIO驅動

                  一提 GPIO 可能會讓很多人覺得不屑,這么簡單的東西有什么可說的,也就是一個拉低拉高,誰不會呢。
                  的頭像 出出 發表于 06-13 09:48 ? 400次 閱讀

                  rt-thread 驅動篇(四)serialX 多架構適配

                  自筆者提出 serialX 串口驅動到今天近半年了,當初只在 STM32F4 NUC970 兩個系列....
                  的頭像 出出 發表于 06-10 10:21 ? 303次 閱讀

                  RT-Thread專業版實現對于龍芯全系列處理器支持

                  近日,在龍芯中科與睿賽德科技的共同努力下,RT-Thread專業版已實現了對LoongArch32和....
                  的頭像 科技綠洲 發表于 06-09 16:45 ? 756次 閱讀

                  龍芯中科LoongArch自主指令系統為產業生態保駕護航

                  目前,龍芯中科業務已全部轉向 LoongArch 自主指令系統架構,龍芯 2K1000LA 處理器的....
                  的頭像 科技綠洲 發表于 06-08 11:10 ? 331次 閱讀

                  RT-Thread 4.1.0正式添加對Arm Compiler 6支持

                  在 RT-Thread 4.1.0 正式發布版中,添加了對 Arm Compiler 6 的支持,用....
                  的頭像 科技綠洲 發表于 06-01 15:20 ? 335次 閱讀
                  RT-Thread 4.1.0正式添加對Arm Compiler 6支持

                  RT-Thread 4.1.0 正式發布版中的ArmClang

                  ArmClang 相較于 Armcc, 支持的架構更多,Armcc支持到Armv7架構,armcla....
                  的頭像 RTThread物聯網操作系統 發表于 06-01 09:24 ? 271次 閱讀

                  RT-Thread Studio如何測試Ethernet連網

                  RT-Thread 是一款開源實時操作系統,包括 RT-Thread 內核、FinSH 命令行工具、....
                  的頭像 科技綠洲 發表于 05-31 11:17 ? 370次 閱讀
                  RT-Thread Studio如何測試Ethernet連網

                  基于標準庫的keil移植到RT-thread例程

                  打開pack安裝包查看如下的顯示為安裝好的RT-Rhread。
                  的頭像 嵌入式應用開發 發表于 05-30 14:22 ? 282次 閱讀
                  基于標準庫的keil移植到RT-thread例程

                  RT-Thread全球技術大會:CherryUSB協議棧的原理與使用

                  API太多導致不知道用哪些,分類亂沒有規律,協議棧文件太多,代碼處理復雜導致代碼冗長
                  的頭像 倩倩 發表于 05-28 15:17 ? 507次 閱讀
                  RT-Thread全球技術大會:CherryUSB協議棧的原理與使用

                  RT-Thread技術大會:RNDIS主機驅動軟件應用說明

                  在RT-Thread全球技術大會上,開發者詳細介紹了RNDIS主機驅動軟件的應用說明,據圖如下圖:
                  的頭像 姚小熊27 發表于 05-28 14:57 ? 580次 閱讀
                  RT-Thread技術大會:RNDIS主機驅動軟件應用說明

                  RT-Thread全球技術大會:RNDIS設備驅動框架

                  RNDIS (RemoteNDIS)設備: Remote Network Driver Interf....
                  的頭像 倩倩 發表于 05-28 14:43 ? 557次 閱讀
                  RT-Thread全球技術大會:RNDIS設備驅動框架

                  RT-Thread全球技術大會:RNDIS通信協議原理及主機驅動框架

                  在RT-Thread全球技術大會直播上,開發者詳細介紹了RNDIS通信協議的原理及主機驅動框架,具體....
                  的頭像 姚小熊27 發表于 05-28 14:43 ? 480次 閱讀
                  RT-Thread全球技術大會:RNDIS通信協議原理及主機驅動框架

                  RT-Thread全球技術大會:RNDIS設備介紹及應用

                  RT-Thread全球技術大會上,以RNDIS設備驅動框架為主題,首先介紹了RNDIS設備介紹及應用....
                  的頭像 姚小熊27 發表于 05-28 14:36 ? 590次 閱讀
                  RT-Thread全球技術大會:RNDIS設備介紹及應用

                  RT-Thread全球技術大會:POSIX FILE select的調用過程

                  在上午RT-Thread全球技術大會,RT-Thread開發者詳細介紹了POSIX FILE sel....
                  的頭像 姚小熊27 發表于 05-28 10:56 ? 431次 閱讀
                  RT-Thread全球技術大會:POSIX FILE select的調用過程

                  RT-Thread設備模型框架及創建注冊設備的實現

                  RT-Thread設備模型框架及創建注冊設備的實現方式介紹如下:
                  的頭像 姚小熊27 發表于 05-28 10:38 ? 462次 閱讀
                  RT-Thread設備模型框架及創建注冊設備的實現

                  RT-Thread在arm與riscv上的兩點差異

                  在RT-Thread全球大會上,介紹了RT-Thread在arm與riscv上的兩點差異如下:
                  的頭像 姚小熊27 發表于 05-28 10:35 ? 609次 閱讀
                  RT-Thread在arm與riscv上的兩點差異

                  RT-Thread全球技術大會:特殊寄存器在中斷和異常中作用

                   在RT-Thread全球技術大會上,對特殊寄存器在中斷和異常中的作用進行了展開介紹。
                  的頭像 姚小熊27 發表于 05-28 10:22 ? 501次 閱讀
                  RT-Thread全球技術大會:特殊寄存器在中斷和異常中作用

                  RT-Thread全球技術大會:RT-Thread底層匯編及在arm與riscv上的差異

                  開發者秦韋忠,在RT-Thread全球技術大會上,以RT-Thread底層匯編及在arm與riscv....
                  的頭像 姚小熊27 發表于 05-28 09:56 ? 644次 閱讀
                  RT-Thread全球技術大會:RT-Thread底層匯編及在arm與riscv上的差異