<noframes id="fbbb7">

<sub id="fbbb7"></sub>

<track id="fbbb7"></track><address id="fbbb7"></address>

      <track id="fbbb7"></track>
      <cite id="fbbb7"><th id="fbbb7"><ol id="fbbb7"></ol></th></cite>
        創作

        完善資料讓更多小伙伴認識你,還能領取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上的差異