哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

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

RT-Thread新開發(fā)工具支持:e2studio手把手適配教程 | 技術(shù)集結(jié)

RT-Thread官方賬號(hào) ? 2026-04-02 18:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Titan-RA8P1的芯片是Renensas的RA8P1系列芯片,瑞薩官方使用的IDE是e2studio。本文介紹如何在e2studio中創(chuàng)建工程并結(jié)合RT-Thread的源碼,在e2studio實(shí)現(xiàn)RT-Thread工程的管理和調(diào)試。

目錄


硬件外設(shè)


創(chuàng)建e2studio工程和配置基本外設(shè)


添加BSP模板并修改

1 硬件外設(shè)


使用RT-Thread實(shí)現(xiàn)控制Titan-RA8P1上的三色LED,并輸出log都串口中斷顯示,查看開發(fā)板的原理圖,串口和LED的控制引腳如圖所示。

94731438-2e7b-11f1-ab55-92fbcf53809c.png947da57e-2e7b-11f1-ab55-92fbcf53809c.png

板載外部晶振用于提供系統(tǒng)時(shí)鐘源。

948a28d0-2e7b-11f1-ab55-92fbcf53809c.png

2 創(chuàng)建e2studio工程和配置基本外設(shè)


根據(jù)Titan-RA8P1開發(fā)板的芯片的型號(hào),創(chuàng)建基于芯片型號(hào)的工程,編譯器選擇GCC。

9495f354-2e7b-11f1-ab55-92fbcf53809c.png

選擇工程使用的RTOS類型為No RTOS。

94a2f630-2e7b-11f1-ab55-92fbcf53809c.png

FSP Configurator中的Stacks菜單中添加串口模塊

94adc7c2-2e7b-11f1-ab55-92fbcf53809c.png

設(shè)置串口uart8模塊的參數(shù),指定其名稱為g_uart8,中斷回調(diào)函數(shù)名為usr_uart8_callback

94be2112-2e7b-11f1-ab55-92fbcf53809c.png94ca6468-2e7b-11f1-ab55-92fbcf53809c.png

保存配置只并生成代碼。

3 添加BSP模板并修改


3.1 復(fù)制文件

復(fù)制bsp\renesas\libraries\bsp-template文件夾中的內(nèi)容,到e2studio工程文件夾中。RTThread中使用KConfig工具對(duì)代碼進(jìn)行配置,生成rt_config.h頭文件用于配置不同的軟件組件。

94d47e30-2e7b-11f1-ab55-92fbcf53809c.png

復(fù)制bsp\renesas\中的libraries\HAL_Drivers中的文件夾到工程中。

3.2 修改Kconfig文件

由于存放Kconfig文件夾結(jié)構(gòu)發(fā)生變化,需要修改復(fù)制到e2studio工程中的頂層目錄中的Kconfig文件中的RTT_DIR變量,指定存放RT-Thread代碼的位置。參考官方提供的Titan-RA8P1的工程配置,在其中添加芯片相關(guān)的項(xiàng)目,修改后的內(nèi)容如下。

mainmenu"RT-Thread Configuration"BSP_DIR := .RTT_DIR := ../../rt-thread# you can change the RTT_ROOT default "../.." to your rtthread_root,# example : default "F:/git_repositories/rt-thread"PKGS_DIR := packagesENV_DIR := /source"$(RTT_DIR)/Kconfig"osource"$PKGS_DIR/Kconfig"rsource"libraries/Kconfig"source"$(BSP_DIR)/board/Kconfig"

修改board\Kconifg中的內(nèi)容,在On-chip Peripheral Drivers菜單中添加片上的串口驅(qū)動(dòng),用于支持RT-Thread串口終端功能。同時(shí)根據(jù)libraries\Kconfig文件的存放位置修改文件中的rsource語(yǔ)句參數(shù)。主要的添加內(nèi)容如下。

menu"Hardware Drivers Config" config SOC_R7KA8P1KF bool select SOC_SERIES_R7KA8P1 select SOC_SERIES_R7KA8P1_CORE0 select RT_USING_COMPONENTS_INIT select RT_USING_USER_MAIN defaulty menu"Onboard Peripheral Drivers" endmenu menu"On-chip Peripheral Drivers" rsource"../libraries/HAL_Drivers/drivers/Kconfig" menuconfig BSP_USING_UART bool"Enable UART" defaulty select RT_USING_SERIAL select RT_USING_SERIAL_V2 ifBSP_USING_UART menuconfig BSP_USING_UART8 bool"Enable UART8" defaultn ifBSP_USING_UART8 config BSP_UART8_RX_BUFSIZE int"Set UART8 RX buffer size" range6465535 depends on RT_USING_SERIAL_V2 default256 config BSP_UART8_TX_BUFSIZE int"Set UART8 TX buffer size" range065535 depends on RT_USING_SERIAL_V2 default0 endif endif endmenu menu"Board extended module Drivers" endmenuendmenu

完成添加后,在e2studio工程中使用RT-Thread提供的env工具,在其中運(yùn)行menuconfig指令,驗(yàn)證Kconfig文件修改是否成功,報(bào)錯(cuò)的話根據(jù)提示修改即可。進(jìn)入menuconfig界面,修改RT-Thread Kernel中的shell使用的uart名稱。

94e28714-2e7b-11f1-ab55-92fbcf53809c.png

uart組件驅(qū)動(dòng)使用Serial_V2

94f0fbbe-2e7b-11f1-ab55-92fbcf53809c.png

使能添加的uart8驅(qū)動(dòng)

94feeb0c-2e7b-11f1-ab55-92fbcf53809c.png

保存并退出。

3.3 修改源碼

修改board\board.h中的內(nèi)存大小以及起始位置如下。

#defineRA_SRAM_SIZE 256/* The SRAM size of the chip needs to be modified */#defineRA_SRAM_END (0x22000000 + RA_SRAM_SIZE * 1024)

修改board\port\gpio_cfg.h文件中的內(nèi)容如下,添加外部中端的引腳信息。

/** Copyright (c) 2006-2025, RT-Thread Development Team** SPDX-License-Identifier: Apache-2.0** Change Logs:* Date Author Notes* 2025-04-07 kurisaW first version*//* Number of IRQ channels on the device */#defineRA_IRQ_MAX 32/* PIN to IRQx table */#definePIN2IRQX_TABLE(pin) \{ \ switch (pin) \ { \ case BSP_IO_PORT_01_PIN_05: \ case BSP_IO_PORT_04_PIN_00: \ case BSP_IO_PORT_08_PIN_06: \ case BSP_IO_PORT_09_PIN_02: \ case BSP_IO_PORT_11_PIN_06: \ case BSP_IO_PORT_12_PIN_14: \ return 0; \ case BSP_IO_PORT_01_PIN_01: \ case BSP_IO_PORT_01_PIN_04: \ case BSP_IO_PORT_05_PIN_08: \ case BSP_IO_PORT_09_PIN_03: \ case BSP_IO_PORT_11_PIN_07: \ case BSP_IO_PORT_12_PIN_13: \ return 1; \ case BSP_IO_PORT_01_PIN_00: \ case BSP_IO_PORT_02_PIN_13: \ case BSP_IO_PORT_05_PIN_09: \ case BSP_IO_PORT_07_PIN_12: \ case BSP_IO_PORT_09_PIN_04: \ case BSP_IO_PORT_12_PIN_12: \ return 2; \ case BSP_IO_PORT_02_PIN_08: \ case BSP_IO_PORT_02_PIN_12: \ case BSP_IO_PORT_05_PIN_10: \ case BSP_IO_PORT_07_PIN_11: \ case BSP_IO_PORT_09_PIN_13: \ case BSP_IO_PORT_12_PIN_11: \ return 3; \ case BSP_IO_PORT_02_PIN_01: \ case BSP_IO_PORT_03_PIN_00: \ case BSP_IO_PORT_04_PIN_11: \ case BSP_IO_PORT_10_PIN_10: \ case BSP_IO_PORT_12_PIN_10: \ return 4; \ case BSP_IO_PORT_03_PIN_02: \ case BSP_IO_PORT_04_PIN_10: \ case BSP_IO_PORT_09_PIN_12: \ case BSP_IO_PORT_10_PIN_09: \ case BSP_IO_PORT_12_PIN_09: \ return 5; \ case BSP_IO_PORT_03_PIN_01: \ case BSP_IO_PORT_04_PIN_09: \ case BSP_IO_PORT_05_PIN_03: \ case BSP_IO_PORT_09_PIN_11: \ case BSP_IO_PORT_10_PIN_08: \ return 6; \ case BSP_IO_PORT_04_PIN_08: \ case BSP_IO_PORT_05_PIN_04: \ case BSP_IO_PORT_06_PIN_15: \ case BSP_IO_PORT_07_PIN_06: \ case BSP_IO_PORT_09_PIN_10: \ return 7; \ case BSP_IO_PORT_03_PIN_05: \ case BSP_IO_PORT_04_PIN_15: \ case BSP_IO_PORT_05_PIN_05: \ case BSP_IO_PORT_07_PIN_07: \ case BSP_IO_PORT_09_PIN_05: \ case BSP_IO_PORT_09_PIN_15: \ return 8; \ case BSP_IO_PORT_03_PIN_04: \ case BSP_IO_PORT_04_PIN_14: \ case BSP_IO_PORT_05_PIN_06: \ case BSP_IO_PORT_09_PIN_06: \ case BSP_IO_PORT_09_PIN_14: \ case BSP_IO_PORT_11_PIN_04: \ return 9; \ case BSP_IO_PORT_05_PIN_07: \ case BSP_IO_PORT_07_PIN_09: \ case BSP_IO_PORT_09_PIN_07: \ case BSP_IO_PORT_10_PIN_11: \ case BSP_IO_PORT_11_PIN_00: \ return 10; \ case BSP_IO_PORT_07_PIN_08: \ case BSP_IO_PORT_08_PIN_00: \ case BSP_IO_PORT_08_PIN_07: \ case BSP_IO_PORT_09_PIN_08: \ case BSP_IO_PORT_10_PIN_12: \ case BSP_IO_PORT_11_PIN_02: \ return 11; \ case BSP_IO_PORT_05_PIN_15: \ case BSP_IO_PORT_07_PIN_15: \ case BSP_IO_PORT_08_PIN_01: \ case BSP_IO_PORT_10_PIN_13: \ case BSP_IO_PORT_11_PIN_01: \ return 12; \ case BSP_IO_PORT_00_PIN_15: \ case BSP_IO_PORT_05_PIN_14: \ case BSP_IO_PORT_07_PIN_14: \ case BSP_IO_PORT_10_PIN_14: \ case BSP_IO_PORT_11_PIN_03: \ return 13; \ case BSP_IO_PORT_00_PIN_10: \ case BSP_IO_PORT_00_PIN_13: \ case BSP_IO_PORT_05_PIN_12: \ case BSP_IO_PORT_07_PIN_13: \ case BSP_IO_PORT_08_PIN_04: \ case BSP_IO_PORT_10_PIN_15: \ return 14; \ case BSP_IO_PORT_00_PIN_12: \ case BSP_IO_PORT_05_PIN_11: \ case BSP_IO_PORT_08_PIN_08: \ case BSP_IO_PORT_08_PIN_13: \ case BSP_IO_PORT_08_PIN_15: \ case BSP_IO_PORT_11_PIN_05: \ return 15; \ case BSP_IO_PORT_00_PIN_11: \ case BSP_IO_PORT_01_PIN_03: \ case BSP_IO_PORT_01_PIN_06: \ case BSP_IO_PORT_06_PIN_10: \ case BSP_IO_PORT_08_PIN_14: \ case BSP_IO_PORT_10_PIN_07: \ return 16; \ case BSP_IO_PORT_01_PIN_02: \ case BSP_IO_PORT_06_PIN_11: \ case BSP_IO_PORT_07_PIN_10: \ case BSP_IO_PORT_10_PIN_06: \ case BSP_IO_PORT_13_PIN_07: \ return 17; \ case BSP_IO_PORT_04_PIN_13: \ case BSP_IO_PORT_06_PIN_12: \ case BSP_IO_PORT_08_PIN_02: \ case BSP_IO_PORT_10_PIN_05: \ case BSP_IO_PORT_13_PIN_06: \ return 18; \ case BSP_IO_PORT_01_PIN_11: \ case BSP_IO_PORT_06_PIN_13: \ case BSP_IO_PORT_07_PIN_05: \ case BSP_IO_PORT_08_PIN_03: \ case BSP_IO_PORT_10_PIN_04: \ case BSP_IO_PORT_13_PIN_05: \ return 19; \ case BSP_IO_PORT_01_PIN_10: \ case BSP_IO_PORT_02_PIN_15: \ case BSP_IO_PORT_06_PIN_14: \ case BSP_IO_PORT_08_PIN_09: \ case BSP_IO_PORT_10_PIN_03: \ case BSP_IO_PORT_13_PIN_04: \ return 20; \ case BSP_IO_PORT_02_PIN_14: \ case BSP_IO_PORT_08_PIN_10: \ case BSP_IO_PORT_10_PIN_01: \ case BSP_IO_PORT_12_PIN_07: \ case BSP_IO_PORT_13_PIN_02: \ case BSP_IO_PORT_13_PIN_03: \ return 21; \ case BSP_IO_PORT_04_PIN_07: \ case BSP_IO_PORT_06_PIN_08: \ case BSP_IO_PORT_08_PIN_11: \ case BSP_IO_PORT_10_PIN_00: \ case BSP_IO_PORT_12_PIN_06: \ case BSP_IO_PORT_13_PIN_01: \ return 22; \ case BSP_IO_PORT_01_PIN_09: \ case BSP_IO_PORT_02_PIN_11: \ case BSP_IO_PORT_06_PIN_07: \ case BSP_IO_PORT_08_PIN_12: \ case BSP_IO_PORT_12_PIN_05: \ case BSP_IO_PORT_13_PIN_00: \ return 23; \ case BSP_IO_PORT_01_PIN_08: \ case BSP_IO_PORT_02_PIN_10: \ case BSP_IO_PORT_05_PIN_00: \ case BSP_IO_PORT_06_PIN_06: \ case BSP_IO_PORT_12_PIN_04: \ return 24; \ case BSP_IO_PORT_02_PIN_07: \ case BSP_IO_PORT_02_PIN_09: \ case BSP_IO_PORT_05_PIN_01: \ case BSP_IO_PORT_06_PIN_05: \ case BSP_IO_PORT_12_PIN_03: \ return 25; \ case BSP_IO_PORT_05_PIN_02: \ case BSP_IO_PORT_06_PIN_04: \ case BSP_IO_PORT_07_PIN_04: \ case BSP_IO_PORT_12_PIN_02: \ return 26; \ case BSP_IO_PORT_00_PIN_14: \ case BSP_IO_PORT_01_PIN_12: \ case BSP_IO_PORT_06_PIN_03: \ case BSP_IO_PORT_12_PIN_01: \ return 27; \ case BSP_IO_PORT_00_PIN_07: \ case BSP_IO_PORT_01_PIN_13: \ case BSP_IO_PORT_06_PIN_02: \ case BSP_IO_PORT_12_PIN_00: \ return 28; \ case BSP_IO_PORT_00_PIN_03: \ case BSP_IO_PORT_06_PIN_01: \ case BSP_IO_PORT_06_PIN_09: \ case BSP_IO_PORT_12_PIN_08: \ return 29; \ case BSP_IO_PORT_04_PIN_05: \ case BSP_IO_PORT_06_PIN_00: \ case BSP_IO_PORT_08_PIN_05: \ case BSP_IO_PORT_12_PIN_15: \ return 30; \ case BSP_IO_PORT_01_PIN_07: \ case BSP_IO_PORT_04_PIN_06: \ case BSP_IO_PORT_05_PIN_13: \ case BSP_IO_PORT_10_PIN_02: \ return 31; \ default : \ return -1; \ } \}

修改ra\fsp\src\bsp\cmsis\Device\RENESAS\Source\startup.c中的Reset_Handler函數(shù)如下

voidReset_Handler(void){ /* Initialize system using BSP. */ SystemInit(); /* Call user application. */#ifdefined(__GNUC__) externintentry(void); entry();#elifdefined(__ICCARM__) externvoid__low_level_init(void); __low_level_init();#else /* Jump to main. */ main();#endif while(1) { /* Infinite Loop. */ }}

3.4 鏈接RT-Thread源碼

RT-Thread源代碼使用Scons工具用于管理代碼編譯,不過使用e2studio進(jìn)行管理后,需要開發(fā)者自行將RT-Thread工程需要使用到的代碼添加e2studio的工程代碼管理中。使用新增文件夾的鏈接功能,添加RT-Thread源碼倉(cāng)庫(kù)中的相關(guān)文件夾。使用到的文件夾如下:

components

include

libcpu

src

其中src文件夾與e2studio工程中的src文件夾重名,在鏈接該文件夾時(shí),設(shè)置不同的名稱即可,具體頁(yè)面操作如下。

95107868-2e7b-11f1-ab55-92fbcf53809c.png

在工程屬性的Path and Symbolsinclude菜單中添加RT-Thread源碼的路徑。Assembly選項(xiàng)卡中添加如下。

951f3fd8-2e7b-11f1-ab55-92fbcf53809c.png

GNU C選項(xiàng)卡中添加以下路徑。

952fce34-2e7b-11f1-ab55-92fbcf53809c.png

RT-Thread源碼適配很多場(chǎng)景,其中有很多代碼是不使用的,通過Paths and SymbolsSource location中添加源碼的管理。在其中添加上述提到的源碼文件夾路徑。

95448d1a-2e7b-11f1-ab55-92fbcf53809c.png

其中libcpu中的排除文件如圖。

955067e8-2e7b-11f1-ab55-92fbcf53809c.png

components目錄中的finshlibc中文件排除情況如下

955f5168-2e7b-11f1-ab55-92fbcf53809c.png

components/drivers中的文件包含情況如下

956a25ac-2e7b-11f1-ab55-92fbcf53809c.png

3.4.1 參考RT-Thread示例工程確定源文件

RT-Thread中有大量的文件,如何確定需要排除哪些文件,可以通過參考官方提供的RT-Thread Studio中的示例工程,參考其中的配置信息

9574de02-2e7b-11f1-ab55-92fbcf53809c.png

3.4.2 利用scons生成CMake文件確定需要使用的源文件

也可以通過修改Scons編譯需要用到的文件,利用scons --target=cmake指令,生成CMakeLists.txt文件,獲取構(gòu)建的文本信息。從官方的示例程序中復(fù)制其中的SConstruct、SConscript中的內(nèi)容,根據(jù)RT-Thread源碼的存放位置,修改SConstruct中的RTT_ROOT路徑信息。

ifos.path.exists('rt-thread'): RTT_ROOT = os.path.normpath(os.getcwd() +'/rt-thread')else: RTT_ROOT = os.path.normpath(os.getcwd() +'../../../rt-thread')print(os.path.normpath(os.getcwd() +'../../../rt_thread'))

運(yùn)行scons --target=cmake指令后,通過查看輸出的CMakeLists.txt,其中給出不同模塊中需要添加工程中文件信息,據(jù)此,可以修改e2studio中的源碼exclude項(xiàng)目。

SET(RT_CPU_SOURCES ../../rt-thread/libcpu/arm/common/atomic_arm.c ../../rt-thread/libcpu/arm/common/div0.c ../../rt-thread/libcpu/arm/common/showmem.c ../../rt-thread/libcpu/arm/cortex-m85/context_gcc.S ../../rt-thread/libcpu/arm/cortex-m85/cpuport.c)SET(RT_DEVICEDRIVERS_SOURCES ../../rt-thread/components/drivers/core/device.c ../../rt-thread/components/drivers/ipc/completion_comm.c ../../rt-thread/components/drivers/ipc/completion_up.c ../../rt-thread/components/drivers/ipc/condvar.c ../../rt-thread/components/drivers/ipc/dataqueue.c ../../rt-thread/components/drivers/ipc/pipe.c ../../rt-thread/components/drivers/ipc/ringblk_buf.c ../../rt-thread/components/drivers/ipc/ringbuffer.c ../../rt-thread/components/drivers/ipc/waitqueue.c ../../rt-thread/components/drivers/ipc/workqueue.c ../../rt-thread/components/drivers/pin/dev_pin.c ../../rt-thread/components/drivers/serial/dev_serial_v2.c)SET(RT_DRIVERS_SOURCES libraries/HAL_Drivers/drivers/drv_gpio.c libraries/HAL_Drivers/drivers/drv_usart_v2.c libraries/HAL_Drivers/drv_common.c)SET(RT_FINSH_SOURCES ../../rt-thread/components/finsh/shell.c ../../rt-thread/components/finsh/msh.c ../../rt-thread/components/finsh/msh_parse.c ../../rt-thread/components/finsh/cmd.c)SET(RT_KERNEL_SOURCES ../../rt-thread/src/clock.c ../../rt-thread/src/components.c ../../rt-thread/src/cpu_up.c ../../rt-thread/src/defunct.c ../../rt-thread/src/idle.c ../../rt-thread/src/ipc.c ../../rt-thread/src/irq.c ../../rt-thread/src/kservice.c ../../rt-thread/src/mem.c ../../rt-thread/src/mempool.c ../../rt-thread/src/object.c ../../rt-thread/src/scheduler_comm.c ../../rt-thread/src/scheduler_up.c ../../rt-thread/src/thread.c ../../rt-thread/src/timer.c)SET(RT_LIBC_SOURCES ../../rt-thread/components/libc/compilers/common/cctype.c ../../rt-thread/components/libc/compilers/common/cstdlib.c ../../rt-thread/components/libc/compilers/common/cstring.c ../../rt-thread/components/libc/compilers/common/ctime.c ../../rt-thread/components/libc/compilers/common/cunistd.c ../../rt-thread/components/libc/compilers/common/cwchar.c ../../rt-thread/components/libc/compilers/newlib/syscalls.c ../../rt-thread/src/klibc/kerrno.c ../../rt-thread/src/klibc/kstdio.c ../../rt-thread/src/klibc/kstring.c ../../rt-thread/src/klibc/rt_vsnprintf_tiny.c ../../rt-thread/src/klibc/rt_vsscanf.c)

e2studio工程的src文件夾中的hal_warmstart.c中的代碼和RTThread提供的適配代碼沖突,在源碼控制中將其排除出構(gòu)建即可。

3.5 修改編譯器選項(xiàng)和鏈接腳本以及添加示例源碼

在工程的屬性的Settings菜單中修改編譯器的選項(xiàng)如下,解決編譯時(shí)匯編指令支持的問題。

98790006-2e7b-11f1-ab55-92fbcf53809c.png

修改編譯器的優(yōu)化參數(shù),解決RT-Thread串口輸出亂碼的問題。

98840028-2e7b-11f1-ab55-92fbcf53809c.png

e2studio工程中script文件夾中的fsp.ld鏈接文件中引用兩個(gè)生成的鏈接腳本,為Debug文件夾中的fsp_gen.ldmemory_gen.ld文件,復(fù)制其中的內(nèi)容到fsp.ld文件中。

文件中定位到MCU Vector Table位置,添加以下內(nèi)容

/* MCU vector table */ __flash_vectors988bb5c0-2e7b-11f1-ab55-92fbcf53809c.svgBase = .; _VECTORS = .;? ? ? ? KEEP(*(.fixed_vectors))? ? ? ? KEEP(*(.application_vectors))? ? ? ? __flash_vectors$$Limit = .;? ? ? ? /* section information for finsh shell */? ? ? ? . = ALIGN(4);? ? ? ? __fsymtab_start = .;? ? ? ? KEEP(*(FSymTab))? ? ? ? __fsymtab_end = .;? ? ? ? . = ALIGN(4);? ? ? ? __vsymtab_start = .;? ? ? ? KEEP(*(VSymTab))? ? ? ? __vsymtab_end = .;? ? ? ? /* section information for initial. */? ? ? ? . = ALIGN(4);? ? ? ? __rt_init_start = .;? ? ? ? KEEP(*(SORT(.rti_fn*)))? ? ? ? __rt_init_end = .;? ? ? ? . = ALIGN(4);? ? ? ? KEEP(*(FalPartTable))? ? }> FLASH

另外定位到SDRAM區(qū)域具體可以參考工程中代碼查看,添加以下內(nèi)容

.ram.flat_nsc : { __sau_ddsc_RAM_NSC = .; }> RAM /* This symbol represents the end of user allocated RAM. The RAM after this symbol can be used at run time for things such as ThreadX memory pool allocations. */ __RAM_segment_used_end__ = ALIGN(__sau_ddsc_RAM_NSC ,4);

hal_entry中添加以下代碼,實(shí)現(xiàn)控制EK-RA8P1上LED燈并輸出log的功能。

#include#include"hal_data.h"#include#include#defineDBG_TAG "led"#defineDBG_LVL DBG_LOG#include/* 配置 LED 燈引腳 */#defineLED_PIN_R BSP_IO_PORT_00_PIN_12#defineLED_PIN_B BSP_IO_PORT_00_PIN_13#defineLED_PIN_G BSP_IO_PORT_06_PIN_13/* 定義 LED 亮滅電平 */#defineLED_ON (0)#defineLED_OFF (1)/* 定義 8 組 LED 閃燈表,其順序?yàn)?R B G */staticconstrt_uint8_t_blink_tab[][3] ={ {LED_OFF, LED_OFF, LED_OFF}, {LED_ON, LED_OFF, LED_OFF}, {LED_OFF, LED_ON, LED_OFF}, {LED_OFF, LED_OFF, LED_ON}, {LED_ON, LED_OFF, LED_ON}, {LED_ON, LED_ON, LED_OFF}, {LED_OFF, LED_ON, LED_ON}, {LED_ON, LED_ON, LED_ON},};voidhal_entry(void){ rt_kprintf("\nHello RT-Thread!\n"); rt_kprintf("==================================================\n"); rt_kprintf("This example project is an RGB flicker routine!\n"); rt_kprintf("==================================================\n"); unsignedintcount =0; unsignedintgroup_num =sizeof(_blink_tab)/sizeof(_blink_tab[0]); unsignedintgroup_current; /* 設(shè)置 RGB 燈引腳為輸出模式 */ rt_pin_mode(LED_PIN_R, PIN_MODE_OUTPUT); rt_pin_mode(LED_PIN_G, PIN_MODE_OUTPUT); rt_pin_mode(LED_PIN_B, PIN_MODE_OUTPUT); rt_pin_write(LED_PIN_R, LED_OFF); rt_pin_write(LED_PIN_G, LED_OFF); rt_pin_write(LED_PIN_B, LED_OFF); do { /* 獲得組編號(hào) */ group_current = count % group_num; /* 控制 RGB 燈 */ rt_pin_write(LED_PIN_R, _blink_tab[group_current][0]); rt_pin_write(LED_PIN_B, _blink_tab[group_current][1]); rt_pin_write(LED_PIN_G, _blink_tab[group_current][2]); /* 輸出 LOG 信息 */ LOG_D("group: %d | red led [%-3.3s] | | blue led [%-3.3s] | | green led [%-3.3s]", group_current, _blink_tab[group_current][0] == LED_ON ?"ON":"OFF", _blink_tab[group_current][1] == LED_ON ?"ON":"OFF", _blink_tab[group_current][2] == LED_ON ?"ON":"OFF"); count++; /* 延時(shí)一段時(shí)間 */ rt_thread_mdelay(500); }while(count >0);}

【Titan-RA8P1】e2studio中使用pyocd調(diào)試(https://club.rt-thread.org/ask/article/ee532d8d659ae45b.html)

保存并編譯工程,燒錄到開發(fā)板運(yùn)行,使用串口工具可以看到如下的log輸出。

98970f1a-2e7b-11f1-ab55-92fbcf53809c.png

示例工程如下,需要配合RT-Thread倉(cāng)庫(kù)源碼使用。

Titan_RA8P1_rtthread.zip

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

    關(guān)注

    463

    文章

    54345

    瀏覽量

    468648
  • 硬件
    +關(guān)注

    關(guān)注

    12

    文章

    3619

    瀏覽量

    69147
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1634

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    從安裝到使用,RT-Thread Nano最全教程看完不信你還不會(huì)使用

    RT-Thread Nano發(fā)布以來,小編收到不少開發(fā)者詢問RT-Thread Nano的配套教程實(shí)例,幸得RT-Thread開發(fā)者燕十三
    的頭像 發(fā)表于 09-26 06:39 ?7.2w次閱讀
    從安裝到使用,<b class='flag-5'>RT-Thread</b> Nano最全教程看完不信你還不會(huì)使用

    手把手教你基于RT-Thread Studio使用STM32單片機(jī)的PWM外設(shè)

    目前我使用的是STM32L475系列單片機(jī),是ali當(dāng)時(shí)在PDD 50塊錢賣的一個(gè)開發(fā)板,其他STM32單片機(jī)參考即可,這里會(huì)手把手教大家基于RTT Studio 來使用PWM。
    的頭像 發(fā)表于 09-28 15:12 ?7515次閱讀
    <b class='flag-5'>手把手</b>教你基于<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>使用STM32單片機(jī)的PWM外設(shè)

    RT-Thread Nano硬核移植指南:手把手實(shí)現(xiàn)VGLite圖形驅(qū)動(dòng)適配 | 技術(shù)集結(jié)

    VGLite是NXP提供的輕量級(jí)2D圖形API,本文將手把手帶你實(shí)現(xiàn)VGLite圖形驅(qū)動(dòng)適配RT-Thread。文章分為上、下兩篇,將手把手
    的頭像 發(fā)表于 07-17 14:40 ?3580次閱讀
    <b class='flag-5'>RT-Thread</b> Nano硬核移植指南:<b class='flag-5'>手把手</b>實(shí)現(xiàn)VGLite圖形驅(qū)動(dòng)<b class='flag-5'>適配</b> | <b class='flag-5'>技術(shù)</b><b class='flag-5'>集結(jié)</b>

    手把手教你實(shí)戰(zhàn)RT-Thread Nano,不信都這樣了你還不會(huì)

    手把手教你實(shí)戰(zhàn)RT-Thread Nano,不信都這樣了你還不會(huì)
    發(fā)表于 11-23 10:30

    手把手教你制作RT-Thread Studio開發(fā)支持

    CH32V103R-EVT的BSP提交已經(jīng)合并了,開始制作對(duì)應(yīng)的RT-Thread Studio開發(fā)支持包直接導(dǎo)入BSP工程發(fā)現(xiàn)import支持
    發(fā)表于 04-08 09:59

    帶你玩轉(zhuǎn)RT-Thread,開發(fā)教程匯總(共13篇)

    本教程帶你手把手帶你學(xué)會(huì)玩轉(zhuǎn)RT-Thread,從RT-Thread的內(nèi)核到外設(shè)、傳感器、組件包,應(yīng)用開發(fā),讓對(duì)于剛剛接觸使用RTT的你不再膽怯,開心玩耍
    發(fā)表于 05-11 14:10

    如何使用RT-Thread Studio創(chuàng)建支持HPM6750開發(fā)板的RT-Thread項(xiàng)目

    StudioRT-Thread Studio安裝程序下載頁(yè)面RT-Thread Studio安裝程序下載完成后,運(yùn)行安裝程序,一路下一步即可完成R
    發(fā)表于 06-08 11:22

    請(qǐng)問是RT-Thread Studio工具支持Windows11系統(tǒng)嗎?

    環(huán)境和步驟說明:1、公司新配置的電腦默認(rèn)安裝的是windows11系統(tǒng)2、要進(jìn)行rt-thread支持的一款芯片的開發(fā)工作3、官網(wǎng)下載最新的RT-T
    發(fā)表于 12-14 17:15

    RT-Thread Studio 主要亮點(diǎn)功能

    RT-Thread Studio V1.1.0 快速上手體驗(yàn) RT-Thread Studio 主要包括工程創(chuàng)建和管理,代碼編輯,SDK管理器,RT
    的頭像 發(fā)表于 06-19 11:45 ?7147次閱讀

    RT-Thread Studio配置u8g2點(diǎn)亮OLED SSD1306

    RT-Thread的大佬竟然把它適配RT-Thread平臺(tái)上了,而且通過RT-Thread Studio添加軟件包再稍微操作一下就可以輕松
    的頭像 發(fā)表于 08-03 15:47 ?8545次閱讀
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>配置u8g<b class='flag-5'>2</b>點(diǎn)亮OLED SSD1306

    RT-Thread Studio驅(qū)動(dòng)SD卡

    RT-Thread Studio驅(qū)動(dòng)SD卡前言一、創(chuàng)建基本工程1、創(chuàng)建Bootloader2、創(chuàng)建項(xiàng)目工程二、配置RT-Thread Settings三、代碼分析1.引入庫(kù)
    發(fā)表于 12-27 19:13 ?20次下載
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>驅(qū)動(dòng)SD卡

    RT-Thread已經(jīng)全面支持極海APM32F1系列MCU

    近日,RT-Thread 和其高級(jí)會(huì)員合作伙伴極海半導(dǎo)體宣布:正式完成APM32F4系列MCU的RT-Thread 物聯(lián)網(wǎng)操作系統(tǒng)適配RT-Thread
    發(fā)表于 08-30 09:45 ?1763次閱讀

    基于RT-Thread Studio學(xué)習(xí)

    前期準(zhǔn)備:從官網(wǎng)下載 RT-Thread Studio,弄個(gè)賬號(hào)登陸,開啟rt-thread學(xué)習(xí)之旅。
    的頭像 發(fā)表于 05-15 11:00 ?6594次閱讀
    基于<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>學(xué)習(xí)

    手把手教你在RT-THREAD bsp上運(yùn)行pikascript腳本點(diǎn)亮小燈

    /lt6210925/article/details/130694587 最近有一些結(jié)構(gòu)上的調(diào)整,這篇文章大概介紹一下如何使用。以及開發(fā)過程中需要注意的問題。 這篇文章幾乎適配所有的RT-THREAD
    的頭像 發(fā)表于 05-25 07:45 ?2182次閱讀
    <b class='flag-5'>手把手</b>教你在<b class='flag-5'>RT-THREAD</b> bsp上運(yùn)行pikascript腳本點(diǎn)亮小燈

    試用RT-Thread Studio(VSCode)

    想嘗試RT-Thread studio (VSCode),先下載安裝VSCode,再搜索RT-Thread
    的頭像 發(fā)表于 10-12 10:58 ?2200次閱讀
    試用<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>(VSCode)
    颍上县| 宁南县| 永清县| 卢龙县| 徐水县| 大渡口区| 江永县| 抚州市| 大洼县| 威宁| 定安县| 佳木斯市| 曲水县| 宝应县| 门头沟区| 云阳县| 象山县| 甘孜县| 通河县| 从化市| 科技| 偃师市| 西宁市| 宁安市| 万源市| 兴隆县| 仙桃市| 元谋县| 辛集市| 青冈县| 兰考县| 普宁市| 敦煌市| 正蓝旗| 怀宁县| 济南市| 岑巩县| 水富县| 台南市| 嘉义县| 赤城县|