chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RT-Thread Bootloader on Tencent EVB MX+

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來(lái)源:未知 ? 2023-04-07 02:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

0. 寫(xiě)在前面的話(huà)

這篇文章寫(xiě)著玩,主要是圖一樂(lè)。紀(jì)念一下最開(kāi)始使用RTT到處查找資料的過(guò)程。

本文內(nèi)容比較簡(jiǎn)單,若是有朋友才開(kāi)始用RTT,希望會(huì)有一些幫助吧。

國(guó)產(chǎn)優(yōu)秀嵌入式操作系統(tǒng)RT-Thread,贊!

本文看著復(fù)雜,但是實(shí)際操作簡(jiǎn)單。實(shí)驗(yàn)過(guò)程約15~30分鐘。有幾張圖死活傳不上來(lái),似乎也不支持個(gè)人gitee的圖床,算了,影響不大。

硬件資源:Tencent EVB MX+

CPUSTM32L431RCT6

將要掌握的內(nèi)容:

RT-Thread在STM32系列的移植

RT-Studio基本操作方法

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

Qboot的移植與基礎(chǔ)個(gè)性化(最基礎(chǔ)的個(gè)性化)修改

1. RT-Thread OS基本移植

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

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

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

注:RT-Thread 4.0.3版本的AT device軟件包與UART RX DMA 方式配合不好。所以,我們選擇RT-Thread 4.0.2版本。參考來(lái)源:RT-Thread-at_client_getchar函數(shù),打開(kāi)DMA數(shù)據(jù)會(huì)丟失(bug反饋)RT-Thread問(wèn)答社區(qū) - RT-Thread

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

2.在新建項(xiàng)目的圖中,我們發(fā)現(xiàn)如下語(yǔ)句:工程使用的是芯片內(nèi)部HSI時(shí)鐘,如需修改,請(qǐng)完善drv_clk.c。

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

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

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

4.根據(jù)CubeMX代碼,修改drv_clk.c文件將CubeMX生成的工程中void SystemClock_Config(void)函數(shù)的部分內(nèi)容,復(fù)制至drv_clk.c文件的void system_clock_config(int target_freq_mhz)處。下方代碼塊中被屏蔽的部分,是RT-Thread Studio生成的原始代碼,37~49行的代碼是從CubeMX工程中粘貼而來(lái)。
 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+硬件信息說(shuō)明 在Tencent EVB MX+開(kāi)發(fā)板上,W25Q64JV通過(guò)QSPI接口與STM32L4進(jìn)行連接。所以,我們也需要在CubeMX配置QSPI。配置完畢后再次使用CubeMX生成工程。 注意,我們僅僅需要外設(shè)的初始化部分。即HAL_QSPI_MspInit函數(shù), 用于引腳配置,相關(guān)時(shí)鐘使能, 初始化等操作。

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

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

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

2.2 配置RT-Thread軟件包FAL參數(shù)

1.使能SPI總線(xiàn),使能SFUD,在SFUD中使用QSPI模式。

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

2.在board.h中開(kāi)啟QSPI和On Chip Flash。

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

1#defineBSP_USING_QSPI
2#defineBSP_USING_ON_CHIP_FLASH

3.添加FAL軟件包,修改FAL設(shè)備名稱(chēng)。

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

2.3 修改FAL分區(qū)表

1.編譯工程,會(huì)產(chǎn)生11個(gè)Errors。提示fal_cfg.h頭文件沒(méi)有被包含進(jìn)工程目錄中。

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

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

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

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

3.再次編譯,現(xiàn)在只剩下1個(gè)Error。提示stm32f2_onchip_flash沒(méi)有定義.

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

4.改正stm32f2_onchip_flash未定義的錯(cuò)誤,并自定義分區(qū)表。

打開(kāi)packages->fal-v0.5.0->samples->porting路徑下的fal_cfg.h,進(jìn)行修改。

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

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

注:

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

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

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

修改完成后的分區(qū)表如下所示。

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

當(dāng)然,在實(shí)際項(xiàng)目中,具體的偏移量和位置要根據(jù)實(shí)際情況進(jìn)行分析和修改。本文后續(xù)的Demo演示中,就只用了bl、application、download、factory分區(qū)。

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

 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,可以發(fā)現(xiàn),類(lèi)型為SPI BUS的qspi1已經(jīng)掛載進(jìn)設(shè)備清單。

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

此處要特別注意qspi1. 在drv_qspi.c文件中,rt_hw_qspi_bus_init內(nèi)部使用的總線(xiàn)名稱(chēng)就是qspi1, 官方的qspi驅(qū)動(dòng)程序代碼如下所示。

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 測(cè)試FAL

1.下載程序,得到下圖結(jié)果。

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

2.使用list_device命令,得到下圖結(jié)果。

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

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

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

顯然,easyflash和W25Q64JV分別是分區(qū)名稱(chēng)和Flash Device名稱(chēng),所以可以正常Probe。而qspi1_0是QSPI設(shè)備名稱(chēng),不能使用FAL Probe命令。請(qǐng)務(wù)必了解它們之間的區(qū)別。

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

  • 執(zhí)行了1次讀操作,從0x00地址開(kāi)始讀出128字節(jié)

  • 執(zhí)行了1次寫(xiě)操作,寫(xiě)入5個(gè)數(shù)據(jù)到0x00地址

  • 執(zhí)行了1次讀操作,從0x00地址開(kāi)始讀出32字節(jié)

  • 執(zhí)行了1次寫(xiě)操作,寫(xiě)入5個(gè)數(shù)據(jù)到0x10地址

  • 執(zhí)行了1次讀操作,從0x00地址開(kāi)始讀出32字節(jié)

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

顯然,如果再次寫(xiě)入5個(gè)數(shù)據(jù)到0x00地址后,讀取出來(lái)的數(shù)據(jù)會(huì)有誤,寫(xiě)入和讀取不相同。這是由Flash的特性決定的。如果需要更新0x00地址開(kāi)始的5個(gè)數(shù)據(jù),則必須需要擦除地址0x00開(kāi)始的扇區(qū)(最小擦除單位)。該操作將刪除4096個(gè)字節(jié)。

Flash的特性:數(shù)據(jù)存儲(chǔ)的每個(gè)位,在更新存儲(chǔ)數(shù)據(jù)時(shí),能把1改成0,而0卻不能改為1。所以要求在寫(xiě)入數(shù)據(jù)前,必須對(duì)目標(biāo)區(qū)域進(jìn)行擦除操作,即把目標(biāo)區(qū)域中的數(shù)據(jù)位擦除為1。

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

以扇區(qū)擦除為例,擦除大小為4KB,即4096字節(jié)的數(shù)據(jù)。擦除實(shí)際上是往扇區(qū)寫(xiě)入數(shù)據(jù),把數(shù)據(jù)位都寫(xiě)為1。

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

3. Bootloader制作

3.1 添加Qboot包支持

按照下圖配置qboot軟件包

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

3.2 Qboot包中配置出廠(chǎng)按鈕和LED指示燈

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

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

在drv_gpio.c中的static const struct pin_index pins[]數(shù)組中,可以找到LED1和KEY1引腳分別對(duì)應(yīng)45和28。

3.3 修改main.c和其他個(gè)性化處理

簡(jiǎn)單修改main.c文件

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

在程序修改過(guò)程中,我將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);

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

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

3.4 測(cè)試

為了確保后續(xù)操作無(wú)誤,使用ST CubeMX Programer將STM32L431的片內(nèi)Flash進(jìn)行擦除。擦除后再斷開(kāi)ST Link。

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

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

4. Application制作與OTA測(cè)試

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

1.按照第1節(jié)”基本移植RT-Thread”進(jìn)行操作

2.按照第2節(jié)”基于QSPI+W25Q64JV進(jìn)行FAL移植”進(jìn)行操作

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

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

4.修改main.c文件

順手寫(xiě)了個(gè)1.07版本。后面的圖已經(jīng)截好,所以就不改成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/*將中斷向量表起始地址重新設(shè)置為application分區(qū)的起始地址*/
18staticintrt_hw_app_vector_reconfig(void)
19{
20#defineNVIC_VECTOR_MASK0xFFFFFF80
21#defineRT_APP_PART_ADDR0x08020000
22/*重新設(shè)置中斷向量表*/
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。當(dāng)然,我們可以將其限制為128KB,因?yàn)锽ootloader已經(jīng)占用了128KB。

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

6.編譯并下載生成的bin文件,測(cè)試程序跳轉(zhuǎn)

將APP下載到Application分區(qū),則Bootloader啟動(dòng)后,判斷應(yīng)用程序存在,會(huì)自動(dòng)跳轉(zhuǎn)至Application。

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

7.再次修改main.c,編譯,請(qǐng)不要直接下載,我們會(huì)使用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.測(cè)試Ymodem_ota

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

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

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

程序升級(jí)結(jié)果如下,自動(dòng)從1.07版本升級(jí)到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軟件包中,并沒(méi)有配置RT_APP_PART_ADDR項(xiàng)。qboot默認(rèn)APP從內(nèi)部Flash 128KB處開(kāi)始。此處不注意的話(huà),會(huì)導(dǎo)致修改內(nèi)部Flash分區(qū)表后,APP無(wú)法有效跳轉(zhuǎn)。

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

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

2.不要打開(kāi)不必要的中斷,在A(yíng)pplication中再初始化相應(yīng)外設(shè)。Bootloader關(guān)注自己應(yīng)作的工作就好。

祝大家使用RTT快樂(lè)!

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

版權(quán)聲明:

本文為RT-Thread論壇用戶(hù)「lchnu」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。

原文鏈接:

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

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

RT-Thread線(xiàn)下入門(mén)培訓(xùn)-4月場(chǎng)次 青島、北京

1.免費(fèi)2.動(dòng)手實(shí)驗(yàn)+理論3.主辦方免費(fèi)提供開(kāi)發(fā)板4.自行攜帶電腦,及插線(xiàn)板用于筆記本電腦充電5.參與者需要有C語(yǔ)言、單片機(jī)ARM Cortex-M核)基礎(chǔ),請(qǐng)?zhí)崆鞍惭b好RT-Thread Studio 開(kāi)發(fā)環(huán)境

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

立即掃碼報(bào)名

報(bào)名鏈接

https://jinshuju.net/f/UYxS2k

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

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

點(diǎn)擊閱讀原文,進(jìn)入RT-ThreadXIFX賽事官網(wǎng)


		

	


原文標(biāo)題:RT-Thread Bootloader on Tencent EVB MX+

文章出處:【微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1614

    瀏覽量

    44901

原文標(biāo)題:RT-Thread Bootloader on Tencent EVB MX+

文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    恩智浦亮相RT-Thread 20周年開(kāi)發(fā)者大會(huì)

    日前,“開(kāi)源向?qū)崱どa(chǎn)力進(jìn)化啟示錄”全球峰會(huì)暨RT-Thread 20周年開(kāi)發(fā)者大會(huì)在上海成功舉辦,恩智浦作為RT-Thread的緊密合作伙伴,在活動(dòng)中重磅亮相,展示雙方在共建RT-Thread OS開(kāi)發(fā)生態(tài)方面的新成果、新方案
    的頭像 發(fā)表于 01-26 09:07 ?563次閱讀

    首搭RT-Thread程翧車(chē)控平臺(tái)| RT-Thread程翧 S32K344 快速原型開(kāi)發(fā)平臺(tái)正式上市!| 產(chǎn)品動(dòng)態(tài)

    在智能汽車(chē)邁向高集成與高安全的時(shí)代,VCU/ECU開(kāi)發(fā)正面臨效率與可靠性的雙重考驗(yàn)。依賴(lài)單一硬件或拼湊軟件方案的傳統(tǒng)模式,已成為制約創(chuàng)新的瓶頸。為此,RT-Thread帶來(lái)里程碑式的解決方案
    的頭像 發(fā)表于 10-31 11:53 ?1008次閱讀
    首搭<b class='flag-5'>RT-Thread</b>程翧車(chē)控平臺(tái)| <b class='flag-5'>RT-Thread</b>程翧 S32K344 快速原型開(kāi)發(fā)平臺(tái)正式上市!| 產(chǎn)品動(dòng)態(tài)

    rt-thread studio 導(dǎo)入BSP 失敗怎么解決?

    rt-thread studio 手動(dòng)導(dǎo)入bsp 失敗。 版本: 2.2.8 構(gòu)建ID: 202405200930 導(dǎo)入的bsp 是直接從rt-thread 代碼倉(cāng)庫(kù)下載的 .log
    發(fā)表于 10-11 11:07

    2025年RT-Thread開(kāi)發(fā)者巡回培訓(xùn)報(bào)名正式啟動(dòng)!

    親愛(ài)的RT-Thread社區(qū)成員們:新程再啟,共赴熱愛(ài)!2025年RT-Thread開(kāi)發(fā)者巡回培訓(xùn)正式啟動(dòng)報(bào)名!今年,我們選擇了西安、武漢、北京、杭州、深圳、上海、成都這7座城市,為大家?guī)?lái)
    的頭像 發(fā)表于 09-27 10:39 ?1984次閱讀
    2025年<b class='flag-5'>RT-Thread</b>開(kāi)發(fā)者巡回培訓(xùn)報(bào)名正式啟動(dòng)!

    rt-thread studio 2.2.9如何使用最新的RT-Thread v5.2.0 released?

    rt-thread studio2.2.9如何使用最新的RT-Thread v5.2.0 released? 原先以為修改index_all.json,發(fā)現(xiàn)聯(lián)網(wǎng)的時(shí)候,會(huì)自動(dòng)覆蓋 另lastet版本
    發(fā)表于 09-16 06:06

    在Ubuntu上開(kāi)發(fā)基于先楫MCU的RT-Thread應(yīng)用指南

    1、前言RT-ThreadEnv是RT-Thread推出的開(kāi)發(fā)輔助工具,針對(duì)基于RT-Thread操作系統(tǒng)的項(xiàng)目工程,提供編譯構(gòu)建環(huán)境、圖形化系統(tǒng)配置及軟件包管理功能。其內(nèi)置的menuconfig
    的頭像 發(fā)表于 08-29 12:22 ?1806次閱讀
    在Ubuntu上開(kāi)發(fā)基于先楫MCU的<b class='flag-5'>RT-Thread</b>應(yīng)用指南

    【好書(shū)推薦】RT-Thread第20本相關(guān)書(shū)籍!《嵌入式實(shí)時(shí)操作系統(tǒng)RT-Thread原理與應(yīng)用》| 技術(shù)集結(jié)

    01內(nèi)容簡(jiǎn)介ContentSummary本書(shū)為讀者提供了一個(gè)全面、系統(tǒng)的RT-Thread學(xué)習(xí)指南,旨在幫助初學(xué)者及有經(jīng)驗(yàn)的開(kāi)發(fā)者掌握RT-Thread實(shí)時(shí)操作系統(tǒng)和STM32嵌入式微控制器的核心
    的頭像 發(fā)表于 08-24 10:05 ?1044次閱讀
    【好書(shū)推薦】<b class='flag-5'>RT-Thread</b>第20本相關(guān)書(shū)籍!《嵌入式實(shí)時(shí)操作系統(tǒng)<b class='flag-5'>RT-Thread</b>原理與應(yīng)用》| 技術(shù)集結(jié)

    RT-Thread 遇上 Rust:安全內(nèi)核 RusT-Thread 的誕生

    大家好,我們是中國(guó)科學(xué)技術(shù)大學(xué)操作系統(tǒng)原理與設(shè)計(jì)(H)課oooooS小組。這個(gè)項(xiàng)目是我們的課程大作業(yè):參考RT-Thread架構(gòu),使用Rust搭建一個(gè)原生的嵌入式操作系統(tǒng)內(nèi)核。初識(shí)Rust是因?yàn)閤k
    的頭像 發(fā)表于 08-02 11:03 ?3542次閱讀
    <b class='flag-5'>RT-Thread</b> 遇上 Rust:安全內(nèi)核 RusT-<b class='flag-5'>Thread</b> 的誕生

    RT-Thread榮獲2025優(yōu)秀開(kāi)源項(xiàng)目 | 新聞速遞

    6月底,RT-Thread睿賽德受邀參與由上海開(kāi)源信息技術(shù)協(xié)會(huì)主辦的2025上海開(kāi)源創(chuàng)新精英薈。上海市商委副主任張杰出席會(huì)議并致辭。RT-Thread嵌入式操作系統(tǒng)項(xiàng)目憑借其卓越的技術(shù)創(chuàng)新與開(kāi)源生態(tài)
    的頭像 發(fā)表于 07-04 09:04 ?2657次閱讀
    <b class='flag-5'>RT-Thread</b>榮獲2025優(yōu)秀開(kāi)源項(xiàng)目 | 新聞速遞

    深度剖析 RT-Thread 線(xiàn)程調(diào)度流程

    RT-Thread調(diào)度第一個(gè)線(xiàn)程的主要流程分如下:rtthread_startup:RTT的啟動(dòng)函數(shù),主要負(fù)責(zé)板級(jí)驅(qū)動(dòng),調(diào)度器,系統(tǒng)線(xiàn)程初始化,啟動(dòng)調(diào)度的工作
    的頭像 發(fā)表于 06-25 18:24 ?1776次閱讀
    深度剖析 <b class='flag-5'>RT-Thread</b> 線(xiàn)程調(diào)度流程

    揭秘RT-Thread上的AUTOSAR CP系統(tǒng)

    本文探討了RT-Thread與AUTOSARCP的融合,解決車(chē)載ECU開(kāi)發(fā)中實(shí)時(shí)性、安全性與靈活性的平衡問(wèn)題。通過(guò)分層安全內(nèi)核(rt-safetyos/autoos)和工具鏈整合,兼容AUTOSAR
    的頭像 發(fā)表于 06-23 20:22 ?3227次閱讀
    揭秘<b class='flag-5'>RT-Thread</b>上的AUTOSAR CP系統(tǒng)

    玄鐵加入RT-Thread 高級(jí)會(huì)員合作伙伴 | 戰(zhàn)略新篇

    今天起,玄鐵XuanTie正式成為RT-Thread高級(jí)會(huì)員合作伙伴。此次合作標(biāo)志著雙方將在嵌入式操作系統(tǒng)創(chuàng)新、RISC-V生態(tài)構(gòu)建及行業(yè)應(yīng)用落地等領(lǐng)域展開(kāi)深度協(xié)同,加速推動(dòng)開(kāi)源技術(shù)的產(chǎn)業(yè)化進(jìn)程
    的頭像 發(fā)表于 06-23 20:22 ?1124次閱讀
    玄鐵加入<b class='flag-5'>RT-Thread</b> 高級(jí)會(huì)員合作伙伴 | 戰(zhàn)略新篇

    人形機(jī)器人敏捷開(kāi)發(fā)新路徑:RT-Thread以軟件底座破解復(fù)雜系統(tǒng)難題 | 新聞速遞

    5月29日,2025機(jī)器人開(kāi)發(fā)者大會(huì)在上海張江科學(xué)城拉開(kāi)帷幕,RT-Thread睿賽德受邀參會(huì),與宇樹(shù)、智元、傅利葉等企業(yè)共話(huà)機(jī)器人行業(yè)解決方案。在人形機(jī)器人本體專(zhuān)題論壇上,RT-Thread睿賽德
    的頭像 發(fā)表于 06-04 14:03 ?1317次閱讀
    人形機(jī)器人敏捷開(kāi)發(fā)新路徑:<b class='flag-5'>RT-Thread</b>以軟件底座破解復(fù)雜系統(tǒng)難題 | 新聞速遞

    2025 RT-Thread全球技術(shù)大會(huì)議程正式發(fā)布!

    RT-ThreadGlobalTechConference(RT-ThreadGTC,RT-Thread全球技術(shù)大會(huì))是聚焦基礎(chǔ)軟件技術(shù)創(chuàng)新與實(shí)踐的嵌入式技術(shù)盛會(huì),持續(xù)推動(dòng)技術(shù)價(jià)值轉(zhuǎn)化
    的頭像 發(fā)表于 05-27 19:28 ?1378次閱讀
    2025 <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì)議程正式發(fā)布!

    RT-Thread審核團(tuán)招募: 深度參與開(kāi)源RTOS社區(qū)治理與演進(jìn)

    全球開(kāi)發(fā)者招募:RT-Thread審核團(tuán)(ReviewTeam)正式開(kāi)放申請(qǐng)!在開(kāi)源的世界里,代碼審查(CodeReview)是保證軟件質(zhì)量、促進(jìn)技術(shù)交流的關(guān)鍵環(huán)節(jié)。RT-Thread作為全球領(lǐng)先
    的頭像 發(fā)表于 05-21 18:02 ?1269次閱讀
    <b class='flag-5'>RT-Thread</b>審核團(tuán)招募: 深度參與開(kāi)源RTOS社區(qū)治理與演進(jìn)