女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

RT-Thread Bootloader on Tencent EVB MX+

RTThread物聯網操作系統 ? 來源:未知 ? 2023-04-07 02:05 ? 次閱讀

0. 寫在前面的話

這篇文章寫著玩,主要是圖一樂。紀念一下最開始使用RTT到處查找資料的過程。

本文內容比較簡單,若是有朋友才開始用RTT,希望會有一些幫助吧。

國產優秀嵌入式操作系統RT-Thread,贊!

本文看著復雜,但是實際操作簡單。實驗過程約15~30分鐘。有幾張圖死活傳不上來,似乎也不支持個人gitee的圖床,算了,影響不大。

硬件資源:Tencent EVB MX+

CPUSTM32L431RCT6

將要掌握的內容:

RT-Thread在STM32系列的移植

RT-Studio基本操作方法

FAL(Flash Abstract Layer)+W25Q64的QSPI移植

Qboot的移植與基礎個性化(最基礎的個性化)修改

1. RT-Thread OS基本移植

Tencent EVB MX+是騰訊Tencent OS Tiny官方開發板,微控制器采用STM32L431RCT6, 通過QSPI接口連接WinBond W25Q64JV 64Mb (8MB)片外Flash。

1.1 新建RT-Thread工程,修改drc_clk.c

1.新建RT-Thread工程,并且指定合理的文件保存路徑、選擇芯片、RT-Thread版本號。

注:RT-Thread 4.0.3版本的AT device軟件包與UART RX DMA 方式配合不好。所以,我們選擇RT-Thread 4.0.2版本。參考來源:RT-Thread-at_client_getchar函數,打開DMA數據會丟失(bug反饋)RT-Thread問答社區 - RT-Thread

7fdf614e-d4a5-11ed-bfe3-dac502259ad0.png

2.在新建項目的圖中,我們發現如下語句:工程使用的是芯片內部HSI時鐘,如需修改,請完善drv_clk.c。

7ffb549e-d4a5-11ed-bfe3-dac502259ad0.png

目前最新RT-Thread Studio 2.1.1版本雖然支持與ST CubeMX的聯動,但是,使用CubeMX生成工程后,會出現函數重復定義、頭文件不匹配等一系列問題。這些問題雖然可以通過設置RT-Thread項目的頭文件目錄、添加編譯Exclude路徑進行解決,但是使用門檻相對較高。為了保證移植的準確性,降低使用門檻,我們不使用聯動。一種可行方案為:在其他目錄使用CubeMX新建與當前芯片相同的ioc工程,然后從CubeMX生成的工程中復制對應的代碼即可。后續隨著RT Studio的更新,這個問題我想會逐步改善的。3.創建Cube MX工程,配置時鐘樹,生成工程。在本示例中,CubeMX工程存儲在D:RT-ThreadCubeMXlc.ioc中。在CubeMX中將時鐘設置為HSE,且使得HCLK為80MHz。

8013126e-d4a5-11ed-bfe3-dac502259ad0.png

4.根據CubeMX代碼,修改drv_clk.c文件將CubeMX生成的工程中void SystemClock_Config(void)函數的部分內容,復制至drv_clk.c文件的void system_clock_config(int target_freq_mhz)處。下方代碼塊中被屏蔽的部分,是RT-Thread Studio生成的原始代碼,37~49行的代碼是從CubeMX工程中粘貼而來。
 1voidsystem_clock_config(inttarget_freq_mhz)
 2{
 3RCC_OscInitTypeDefRCC_OscInitStruct={0};
 4RCC_ClkInitTypeDefRCC_ClkInitStruct={0};
 5/**InitializestheCPU,AHBandAPBbussesclocks
 6*/
 7//RCC_OscInitStruct.OscillatorType=RCC_OSCILLATORTYPE_HSI;
 8//RCC_OscInitStruct.HSIState=RCC_HSI_ON;
 9//RCC_OscInitStruct.HSICalibrationValue=RCC_HSICALIBRATION_DEFAULT;
10//RCC_OscInitStruct.PLL.PLLState=RCC_PLL_ON;
11//RCC_OscInitStruct.PLL.PLLSource=RCC_PLLSOURCE_HSI;
12//RCC_OscInitStruct.PLL.PLLM=8;
13//RCC_OscInitStruct.PLL.PLLN=target_freq_mhz;
14//#ifdefined(RCC_PLLP_SUPPORT)
15//RCC_OscInitStruct.PLL.PLLP=RCC_PLLP_DIV7;
16//#endif
17//RCC_OscInitStruct.PLL.PLLQ=RCC_PLLQ_DIV2;
18//RCC_OscInitStruct.PLL.PLLR=RCC_PLLR_DIV2;
19//if(HAL_RCC_OscConfig(&RCC_OscInitStruct)!=HAL_OK)
20//{
21//Error_Handler();
22//}
23//RCC_OscInitStruct.OscillatorType=RCC_OSCILLATORTYPE_HSE;
24//RCC_OscInitStruct.HSEState=RCC_HSE_ON;
25//RCC_OscInitStruct.PLL.PLLState=RCC_PLL_ON;
26//RCC_OscInitStruct.PLL.PLLSource=RCC_PLLSOURCE_HSE;
27//RCC_OscInitStruct.PLL.PLLM=1;
28//RCC_OscInitStruct.PLL.PLLN=20;
29//RCC_OscInitStruct.PLL.PLLP=RCC_PLLP_DIV7;
30//RCC_OscInitStruct.PLL.PLLQ=RCC_PLLQ_DIV2;
31//RCC_OscInitStruct.PLL.PLLR=RCC_PLLR_DIV2;
32//if(HAL_RCC_OscConfig(&RCC_OscInitStruct)!=HAL_OK)
33//{
34//Error_Handler();
35//}
36RCC_OscInitStruct.OscillatorType=RCC_OSCILLATORTYPE_HSE;
37RCC_OscInitStruct.HSEState=RCC_HSE_ON;
38RCC_OscInitStruct.PLL.PLLState=RCC_PLL_ON;
39RCC_OscInitStruct.PLL.PLLSource=RCC_PLLSOURCE_HSE;
40RCC_OscInitStruct.PLL.PLLM=1;
41RCC_OscInitStruct.PLL.PLLN=20;
42RCC_OscInitStruct.PLL.PLLP=RCC_PLLP_DIV7;
43RCC_OscInitStruct.PLL.PLLQ=RCC_PLLQ_DIV2;
44RCC_OscInitStruct.PLL.PLLR=RCC_PLLR_DIV2;
45if(HAL_RCC_OscConfig(&RCC_OscInitStruct)!=HAL_OK)
46{
47Error_Handler();
48}

		
1.2 配置RT-Thread工程串口,使能RX DMA

		

802e72ca-d4a5-11ed-bfe3-dac502259ad0.png

8040563e-d4a5-11ed-bfe3-dac502259ad0.png

board.h中,將UART2部分修改成如下形式:
1#defineBSP_USING_UART2
2#defineBSP_UART2_RX_USING_DMA/**
3#defineBSP_UART2_TX_PIN"PA2"
4#defineBSP_UART2_RX_PIN"PA3"

8050e526-d4a5-11ed-bfe3-dac502259ad0.png

2. QSPI+W25Q64的FAL移植 2.1 EVB MX+硬件信息說明 在Tencent EVB MX+開發板上,W25Q64JV通過QSPI接口與STM32L4進行連接。所以,我們也需要在CubeMX配置QSPI。配置完畢后再次使用CubeMX生成工程。 注意,我們僅僅需要外設的初始化部分。即HAL_QSPI_MspInit函數, 用于引腳配置,相關時鐘使能, 初始化等操作。

8068feb8-d4a5-11ed-bfe3-dac502259ad0.png

8083e7e6-d4a5-11ed-bfe3-dac502259ad0.png

80a2c94a-d4a5-11ed-bfe3-dac502259ad0.png

2.2 配置RT-Thread軟件包FAL參數

1.使能SPI總線,使能SFUD,在SFUD中使用QSPI模式。

80b3cb82-d4a5-11ed-bfe3-dac502259ad0.png

2.在board.h中開啟QSPI和On Chip Flash。

在board.h中查找下述語句,并取消屏蔽即可。

1#defineBSP_USING_QSPI
2#defineBSP_USING_ON_CHIP_FLASH

3.添加FAL軟件包,修改FAL設備名稱。

80cc0efe-d4a5-11ed-bfe3-dac502259ad0.png

2.3 修改FAL分區表

1.編譯工程,會產生11個Errors。提示fal_cfg.h頭文件沒有被包含進工程目錄中。

80e92552-d4a5-11ed-bfe3-dac502259ad0.png

2.按照下圖,添加Includes的Path。

此步驟也可以進行文件剪切處理:將fal_cfh.h文件從fal-v0.5.0/sample/portin路徑中剪切至fal-v0.5.0/inc路徑中。

81188914-d4a5-11ed-bfe3-dac502259ad0.png

3.再次編譯,現在只剩下1個Error。提示stm32f2_onchip_flash沒有定義.

813d6bbc-d4a5-11ed-bfe3-dac502259ad0.png

4.改正stm32f2_onchip_flash未定義的錯誤,并自定義分區表。

打開packages->fal-v0.5.0->samples->porting路徑下的fal_cfg.h,進行修改。

本修改的目的是將drv_flash_l4.c中聲明的內部FLASH塊stm32_onchip_flash放入到分區表中,替代FAL例程中不存在的stm32f2_onchip_flash。

816018ce-d4a5-11ed-bfe3-dac502259ad0.png

注:

將fal_cfg.h中的stm32_onchip_flash修改為stm32_onchip_flash。(說明:stm32_onchip_flash在drv_flash_l4.c文件中定義)

將fal_cfg.h的FAL_PART_TABLE中的字符串stm32_onchip修改為onchip_flash。(說明:onchip_flash是片內FLASH的名稱,也在drv_flash_l4.c文件中被使用)。

將fal_cfg.h的FAL_PART_TABLE中的字符串NOR_FLASH_DEV_NAME修改為FAL_USING_NOR_FLASH_DEV_NAME。(說明:FAL_USING_NOR_FLASH_DEV_NAME是片外FLASH的名稱,在rtconfig.h文件中)。

修改完成后的分區表如下所示。

8185029c-d4a5-11ed-bfe3-dac502259ad0.png

當然,在實際項目中,具體的偏移量和位置要根據實際情況進行分析和修改。本文后續的Demo演示中,就只用了bl、application、download、factory分區。

5.在board.c的函數RT_WEAK void rt_hw_board_init()下方添加HAL_QSPI_MspInit代碼。該代碼由CubeMX自動生成。

 1voidHAL_QSPI_MspInit(QSPI_HandleTypeDef*qspiHandle)
 2{
 3GPIO_InitTypeDefGPIO_InitStruct={0};
 4if(qspiHandle->Instance==QUADSPI)
 5{
 6/*USERCODEBEGINQUADSPI_MspInit0*/
 7/*USERCODEENDQUADSPI_MspInit0*/
 8/*QUADSPIclockenable*/
 9__HAL_RCC_QSPI_CLK_ENABLE();
10__HAL_RCC_GPIOB_CLK_ENABLE();
11/**QUADSPIGPIOConfiguration
12PB0------>QUADSPI_BK1_IO1
13PB1------>QUADSPI_BK1_IO0
14PB10------>QUADSPI_CLK
15PB11------>QUADSPI_BK1_NCS
16*/
17GPIO_InitStruct.Pin=GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_10|GPIO_PIN_11;
18GPIO_InitStruct.Mode=GPIO_MODE_AF_PP;
19GPIO_InitStruct.Pull=GPIO_NOPULL;
20GPIO_InitStruct.Speed=GPIO_SPEED_FREQ_VERY_HIGH;
21GPIO_InitStruct.Alternate=GPIO_AF10_QUADSPI;
22HAL_GPIO_Init(GPIOB,&GPIO_InitStruct);
23/*USERCODEBEGINQUADSPI_MspInit1*/
24/*USERCODEENDQUADSPI_MspInit1*/
25}
26}

6.在終端窗口,輸入list_device,可以發現,類型為SPI BUS的qspi1已經掛載進設備清單。

819ddb64-d4a5-11ed-bfe3-dac502259ad0.png

此處要特別注意qspi1. 在drv_qspi.c文件中,rt_hw_qspi_bus_init內部使用的總線名稱就是qspi1, 官方的qspi驅動程序代碼如下所示。

1staticintrt_hw_qspi_bus_init(void)
2{
3returnstm32_qspi_register_bus(&_stm32_qspi_bus,"qspi1");
4}
5INIT_BOARD_EXPORT(rt_hw_qspi_bus_init);

2.5 測試FAL

1.下載程序,得到下圖結果。

81b697d0-d4a5-11ed-bfe3-dac502259ad0.png

2.使用list_device命令,得到下圖結果。

81d3896c-d4a5-11ed-bfe3-dac502259ad0.png

3.使用fal系列命令:fal probe [device_name | part_name]。

81f20784-d4a5-11ed-bfe3-dac502259ad0.png

顯然,easyflash和W25Q64JV分別是分區名稱和Flash Device名稱,所以可以正常Probe。而qspi1_0是QSPI設備名稱,不能使用FAL Probe命令。請務必了解它們之間的區別。

4.使用fal erase, write, read等命令

  • 執行了1次讀操作,從0x00地址開始讀出128字節

  • 執行了1次寫操作,寫入5個數據到0x00地址

  • 執行了1次讀操作,從0x00地址開始讀出32字節

  • 執行了1次寫操作,寫入5個數據到0x10地址

  • 執行了1次讀操作,從0x00地址開始讀出32字節

82121150-d4a5-11ed-bfe3-dac502259ad0.png

顯然,如果再次寫入5個數據到0x00地址后,讀取出來的數據會有誤,寫入和讀取不相同。這是由Flash的特性決定的。如果需要更新0x00地址開始的5個數據,則必須需要擦除地址0x00開始的扇區(最小擦除單位)。該操作將刪除4096個字節。

Flash的特性:數據存儲的每個位,在更新存儲數據時,能把1改成0,而0卻不能改為1。所以要求在寫入數據前,必須對目標區域進行擦除操作,即把目標區域中的數據位擦除為1。

W25Q64支持扇區擦除、塊擦除及整片擦除,最小的擦除單位是扇區,一個塊包含16個扇區,有128個塊。

以扇區擦除為例,擦除大小為4KB,即4096字節的數據。擦除實際上是往扇區寫入數據,把數據位都寫為1。

8230aab6-d4a5-11ed-bfe3-dac502259ad0.png

3. Bootloader制作

3.1 添加Qboot包支持

按照下圖配置qboot軟件包

827e002c-d4a5-11ed-bfe3-dac502259ad0.png

3.2 Qboot包中配置出廠按鈕和LED指示燈

在Tencent EVB MX+電路板上,LED1被配置在PC13,KEY1被配置在PB12,如下圖所示

82a06c70-d4a5-11ed-bfe3-dac502259ad0.png

在drv_gpio.c中的static const struct pin_index pins[]數組中,可以找到LED1和KEY1引腳分別對應45和28。

3.3 修改main.c和其他個性化處理

簡單修改main.c文件

1intmain(void)
2{
3returnRT_EOK;
4}

在程序修改過程中,我將qboot.c中的所有“Qboot 字符串替換成了"Bootloader,然后修改了Finsh命令:

1/**<原始*/
2//MSH_CMD_EXPORT_ALIAS(qbt_shell_cmd,qboot,Quickbootloadertestcommands);
3/**<修改*/
4MSH_CMD_EXPORT_ALIAS(qbt_shell_cmd,bl,Quickbootloadertestcommands);

一切無誤后,編譯工程,成功得到基于Qboot、FAL的Bootloader程序,占用ROM 114.46KB。如果取消掉Finsh組件,則Bootloader大小會在84KB左右。

82b5b846-d4a5-11ed-bfe3-dac502259ad0.png

3.4 測試

為了確保后續操作無誤,使用ST CubeMX Programer將STM32L431的片內Flash進行擦除。擦除后再斷開ST Link。

82db2f5e-d4a5-11ed-bfe3-dac502259ad0.png

82f9e714-d4a5-11ed-bfe3-dac502259ad0.png

4. Application制作與OTA測試

有了上述基礎,按照如下步驟制作Application:

1.按照第1節”基本移植RT-Thread”進行操作

2.按照第2節”基于QSPI+W25Q64JV進行FAL移植”進行操作

3.添加ota_downloader軟件包。由于STM32L431 Flash的限制,我們僅僅測試Ymodem OTA方式。

830d21da-d4a5-11ed-bfe3-dac502259ad0.png

4.修改main.c文件

順手寫了個1.07版本。后面的圖已經截好,所以就不改成1.00版本了。

 1#include
 2#defineDBG_TAG"main"
 3#defineDBG_LVLDBG_LOG
 4#include
 5#include"board.h"
 6#include"fal.h"
 7#defineAPP_VERSION1L/**
 8#defineAPP_SUBVERSION0L/**
 9#defineAPP_REVISION7L/**
10intmain(void)
11{
12fal_init();/*TangHuiminaddcommentsfortesingpullrequest*/
13LOG_I("ApplicationSoftware%d.%d.%dbuild%s
",
14APP_VERSION,APP_SUBVERSION,APP_REVISION,__DATE__);
15returnRT_EOK;
16}
17/*將中斷向量表起始地址重新設置為application分區的起始地址*/
18staticintrt_hw_app_vector_reconfig(void)
19{
20#defineNVIC_VECTOR_MASK0xFFFFFF80
21#defineRT_APP_PART_ADDR0x08020000
22/*重新設置中斷向量表*/
23SCB->VTOR=RT_APP_PART_ADDR&NVIC_VECTOR_MASK;
24return0;
25}
26INIT_BOARD_EXPORT(rt_hw_app_vector_reconfig);

5.修改linkscripts

linkscripts圖中的ROM Size為256KB。當然,我們可以將其限制為128KB,因為Bootloader已經占用了128KB。

8336d912-d4a5-11ed-bfe3-dac502259ad0.png

6.編譯并下載生成的bin文件,測試程序跳轉

將APP下載到Application分區,則Bootloader啟動后,判斷應用程序存在,會自動跳轉至Application。

83576f38-d4a5-11ed-bfe3-dac502259ad0.png

7.再次修改main.c,編譯,請不要直接下載,我們會使用Ymodem_OTA方式下載

1#defineAPP_VERSION1L/**
2#defineAPP_SUBVERSION0L/**
3#defineAPP_REVISION8L/**

8.制作OTA包。工具位于Bootloader工程的packagesqboot-v1.05 ools路徑下。

8371e5c0-d4a5-11ed-bfe3-dac502259ad0.png

9.測試Ymodem_ota

建議使用XShell工具,連接串口。在命令行輸入ymodem_ota,然后右鍵選擇使用Ymodem方式發送,發送上一步生成的OTA rbl文件,即升級包。

838c7b24-d4a5-11ed-bfe3-dac502259ad0.png

下載完成后,軟件重啟,首先進入到Bootloader,從download分區搬運代碼到application分區(注意:此處不是簡單搬運,而是由qboot代碼進行了解壓縮后再進行搬運,過程較為復雜。若感興趣,可進一步深挖quicklz等解壓縮軟件包。)

程序升級結果如下,自動從1.07版本升級到1.08版本。

83a437aa-d4a5-11ed-bfe3-dac502259ad0.png

5. 填坑

1.RT_APP_PART_ADDR

在qboot.h中有如下一段代碼:

1#ifdefRT_APP_PART_ADDR
2#defineQBOOT_APP_ADDRRT_APP_PART_ADDR
3#else
4#defineQBOOT_APP_ADDR0x08020000
5#endif

由于在qboot軟件包中,并沒有配置RT_APP_PART_ADDR項。qboot默認APP從內部Flash 128KB處開始。此處不注意的話,會導致修改內部Flash分區表后,APP無法有效跳轉。

如果,我們劃分90KB給bootloader,166KB給application,則需要在fal_cfg.h文件中修改bootloader、application分區的offset和len。此時,application的中斷向量表將會放置在0x08016800地址。為了保證bootloader工作正常,我們需要在bootloader工程的rtconfig.h中添加如下代碼,否則,bootloader會自動跳轉至無效的QBOOT_APP_ADDR地址。

1#defineRT_APP_PART_ADDR0x08016800/**<按需要修改成你的application分區偏移*/

2.不要打開不必要的中斷,在Application中再初始化相應外設。Bootloader關注自己應作的工作就好。

祝大家使用RTT快樂!

————————————————

版權聲明:

本文為RT-Thread論壇用戶「lchnu」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。

原文鏈接:

https://club.rt-thread.org/ask/article/a66b4c96c13cc0d5.html

———————End———————

RT-Thread線下入門培訓-4月場次 青島、北京

1.免費2.動手實驗+理論3.主辦方免費提供開發板4.自行攜帶電腦,及插線板用于筆記本電腦充電5.參與者需要有C語言單片機ARM Cortex-M核)基礎,請提前安裝好RT-Thread Studio 開發環境

83f74fe4-d4a5-11ed-bfe3-dac502259ad0.png

立即掃碼報名

報名鏈接

https://jinshuju.net/f/UYxS2k

巡回城市:青島、北京、西安、成都、武漢、鄭州、杭州、深圳、上海、南京

你可以添加微信:rtthread2020 為好友,注明:公司+姓名,拉進RT-Thread官方微信交流群!

點擊閱讀原文進入RT-ThreadXIFX賽事官網


		

	


原文標題:RT-Thread Bootloader on Tencent EVB MX+

文章出處:【微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • RT-Thread
    +關注

    關注

    32

    文章

    1370

    瀏覽量

    41526

原文標題:RT-Thread Bootloader on Tencent EVB MX+

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    2025 RT-Thread全球技術大會議程正式發布!

    RT-ThreadGlobalTechConference(RT-ThreadGTC,RT-Thread全球技術大會)是聚焦基礎軟件技術創新與實踐的嵌入式技術盛會,持續推動技術價值轉化
    的頭像 發表于 05-27 19:28 ?355次閱讀
    2025 <b class='flag-5'>RT-Thread</b>全球技術大會議程正式發布!

    RT-Thread審核團招募: 深度參與開源RTOS社區治理與演進

    全球開發者招募:RT-Thread審核團(ReviewTeam)正式開放申請!在開源的世界里,代碼審查(CodeReview)是保證軟件質量、促進技術交流的關鍵環節。RT-Thread作為全球領先
    的頭像 發表于 05-21 18:02 ?473次閱讀
    <b class='flag-5'>RT-Thread</b>審核團招募: 深度參與開源RTOS社區治理與演進

    如何將RT-Thread移植到NXP MCUXPressoIDE上

    RT-Thread默認支持的IDE只有IAR 和 Keil, 那如何將RT-Thread移植到NXP MCUXPressoIDE上呢?本文內容比較簡單但稍有瑣碎,希望對有需要的小伙伴有所幫助。
    的頭像 發表于 02-13 10:37 ?1744次閱讀
    如何將<b class='flag-5'>RT-Thread</b>移植到NXP MCUXPressoIDE上

    從開源中來到開源中去-RT-Thread北京社區篇

    RT-Thread今年全域推行不同區域社區網,通過建立區域社區網,構建更加緊密聯系的開源社區,實現更廣泛的開源資源共享,讓更多的RT-Thread開發者受益。今年8月份RT-Thread正式啟動北京
    的頭像 發表于 11-29 01:05 ?406次閱讀
    從開源中來到開源中去-<b class='flag-5'>RT-Thread</b>北京社區篇

    【S32K146 RT-Thread】之 使用SFUD組件驅動spi flash

    【S32K146 RT-Thread】之 使用SFUD組件驅動spi flash
    的頭像 發表于 11-21 01:05 ?988次閱讀
    【S32K146 <b class='flag-5'>RT-Thread</b>】之 使用SFUD組件驅動spi flash

    RT-Thread上CAN實踐

    開箱測試RT-Thread官方已完成了對英飛凌XMC7200EVK的移植,通過shell可以看到做好了uart3的console。本文將介紹如何進行RT-ThreadCan移植。接下來我們要完成CAN_FD的驅動移植,并正常啟動RT-T
    的頭像 發表于 11-13 01:03 ?1914次閱讀
    <b class='flag-5'>RT-Thread</b>上CAN實踐

    開源共生 商業共贏 | RT-Thread 2024開發者大會報名啟動!

    親愛的RT-Thread開發者我們很高興地宣布,一年一度的RDC(RT-ThreadDeveloperConference,RT-Thread開發者大會)正式啟動報名!2024RT-Threa
    的頭像 發表于 10-29 08:06 ?866次閱讀
    開源共生 商業共贏 | <b class='flag-5'>RT-Thread</b> 2024開發者大會報名啟動!

    【成都】9月21日RT-Thread巡回線下培訓-OpenMV機器視覺

    親愛的RT-Thread社區成員們:RT-Thread24年全球巡回培訓將覆蓋超10座城市及國家,為開發者提供一個深入學習RT-Thread嵌入式開發,以及和工程師們線下交流的絕佳機會。2024年
    的頭像 發表于 09-13 08:09 ?1432次閱讀
    【成都】9月21日<b class='flag-5'>RT-Thread</b>巡回線下培訓-OpenMV機器視覺

    【大連】9月7日RT-Thread巡回線下培訓-OpenMV機器視覺

    親愛的RT-Thread社區成員們:2024年RT-Thread全球開發者線下培訓拉開帷幕啦!24年全球巡回培訓將覆蓋超10座城市及國家,為開發者提供一個深入學習RT-Thread嵌入式開發的絕佳
    的頭像 發表于 09-01 08:02 ?3034次閱讀
    【大連】9月7日<b class='flag-5'>RT-Thread</b>巡回線下培訓-OpenMV機器視覺

    【QEMU系列】不用開發板運行RT-Thread指南-ARM架構

    簡介在物聯網和嵌入式系統的開發中,RT-Thread操作系統憑借其小巧、高效和靈活的特點,受到了越來越多開發者的青睞。然而,對于很多剛剛接觸RT-Thread的開發者來說,購買和使用開發板可能會
    的頭像 發表于 08-09 08:35 ?1454次閱讀
    【QEMU系列】不用開發板運行<b class='flag-5'>RT-Thread</b>指南-ARM架構

    2024 RT-Thread全球巡回 線下培訓火熱來襲!

    親愛的RT-Thread社區成員們:我們非常高興地宣布,2024年RT-Thread全球開發者線下培訓即將拉開帷幕!24年全球巡回培訓將覆蓋超10座城市及國家,為開發者提供一個深入學習RT-Thread嵌入式開發的絕佳機會。
    的頭像 發表于 08-07 08:35 ?2431次閱讀
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 線下培訓火熱來襲!

    【好書推薦】RT-Thread設備驅動開發指南

    近年來國內芯片產業和物聯網產業的快速崛起,行業發展迫切需要更多人才,尤其需要掌握嵌入式操作系統等底層技術的人才。隨著RT-Thread被更廣泛地應用于行業中,開發者對嵌入式驅動開發的需求越來越
    的頭像 發表于 08-01 08:35 ?1170次閱讀
    【好書推薦】<b class='flag-5'>RT-Thread</b>設備驅動開發指南

    GD32F427 bootloader添加rt-thread系統后,跳轉到app沒有執行main()函數是怎么回事?

    MCU:GD32F427 bootloader是自己寫的 裸機使用沒問題,可以正常轉跳到APP上,執行main() 在APP上移植了rt-thread操作系統 啟動的時候可以打印出logo,但是
    發表于 07-11 06:31

    RT-Thread 新里程碑達成——GitHub Star 破萬!

    RT-Thread實時操作系統開源項目在GitHub上的star數量突破一萬!截止發文,RT-Thread作為實時操作系統在業界Star數量排名第一!倉庫地址:https://github.com
    的頭像 發表于 07-04 08:35 ?710次閱讀
    <b class='flag-5'>RT-Thread</b> 新里程碑達成——GitHub Star 破萬!

    基于 RT-Thread專業版的EtherCAT主站方案

    (一)方案介紹本方案基于RT-Thread專業版,在RT-Thread端集成EtherCAT主站協議,通過EtherCAT對伺服電機或遠程IO進行實時控制,具備傳輸速度快,實時性高,擴展設備靈活等
    的頭像 發表于 06-19 08:35 ?1697次閱讀
    基于 <b class='flag-5'>RT-Thread</b>專業版的EtherCAT主站方案