diff --git a/bsp/tms320f28379d/.config b/bsp/tms320f28379d/.config index 6792c2d65cd40fffbb635ab0e4fc7eb491620e9d..adeabca77edb50ced9f7af3a305d0e8376d586dd 100644 --- a/bsp/tms320f28379d/.config +++ b/bsp/tms320f28379d/.config @@ -89,7 +89,9 @@ CONFIG_ARCH_CPU_STACK_GROWS_UPWARD=y # RT-Thread Components # CONFIG_RT_USING_COMPONENTS_INIT=y -# CONFIG_RT_USING_USER_MAIN is not set +CONFIG_RT_USING_USER_MAIN=y +CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048 +CONFIG_RT_MAIN_THREAD_PRIORITY=4 # CONFIG_RT_USING_LEGACY is not set CONFIG_RT_USING_MSH=y CONFIG_RT_USING_FINSH=y @@ -207,19 +209,19 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 # # IoT - internet of things # +# CONFIG_PKG_USING_LWIP is not set +# CONFIG_PKG_USING_LORAWAN_DRIVER is not set # CONFIG_PKG_USING_PAHOMQTT is not set +# CONFIG_PKG_USING_UMQTT is not set # CONFIG_PKG_USING_WEBCLIENT is not set # CONFIG_PKG_USING_WEBNET is not set # CONFIG_PKG_USING_MONGOOSE is not set # CONFIG_PKG_USING_MYMQTT is not set -# CONFIG_PKG_USING_MQTTCLIENT is not set +# CONFIG_PKG_USING_KAWAII_MQTT is not set +# CONFIG_PKG_USING_BC28_MQTT is not set # CONFIG_PKG_USING_WEBTERMINAL is not set -# CONFIG_PKG_USING_CJSON is not set -# CONFIG_PKG_USING_JSMN is not set # CONFIG_PKG_USING_LIBMODBUS is not set # CONFIG_PKG_USING_FREEMODBUS is not set -# CONFIG_PKG_USING_LJSON is not set -# CONFIG_PKG_USING_EZXML is not set # CONFIG_PKG_USING_NANOPB is not set # @@ -239,10 +241,12 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 # CONFIG_PKG_USING_COAP is not set # CONFIG_PKG_USING_NOPOLL is not set # CONFIG_PKG_USING_NETUTILS is not set +# CONFIG_PKG_USING_CMUX is not set # CONFIG_PKG_USING_PPP_DEVICE is not set # CONFIG_PKG_USING_AT_DEVICE is not set # CONFIG_PKG_USING_ATSRV_SOCKET is not set # CONFIG_PKG_USING_WIZNET is not set +# CONFIG_PKG_USING_ZB_COORDINATOR is not set # # IoT Cloud @@ -251,10 +255,14 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 # CONFIG_PKG_USING_GAGENT_CLOUD is not set # CONFIG_PKG_USING_ALI_IOTKIT is not set # CONFIG_PKG_USING_AZURE is not set -# CONFIG_PKG_USING_TENCENT_IOTHUB is not set +# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set # CONFIG_PKG_USING_JIOT-C-SDK is not set # CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set +# CONFIG_PKG_USING_JOYLINK is not set +# CONFIG_PKG_USING_EZ_IOT_OS is not set +# CONFIG_PKG_USING_IOTSHARP_SDK is not set # CONFIG_PKG_USING_NIMBLE is not set +# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set # CONFIG_PKG_USING_OTA_DOWNLOADER is not set # CONFIG_PKG_USING_IPMSG is not set # CONFIG_PKG_USING_LSSDP is not set @@ -262,40 +270,110 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 # CONFIG_PKG_USING_LIBRWS is not set # CONFIG_PKG_USING_TCPSERVER is not set # CONFIG_PKG_USING_PROTOBUF_C is not set -# CONFIG_PKG_USING_ONNX_PARSER is not set -# CONFIG_PKG_USING_ONNX_BACKEND is not set # CONFIG_PKG_USING_DLT645 is not set # CONFIG_PKG_USING_QXWZ is not set # CONFIG_PKG_USING_SMTP_CLIENT is not set # CONFIG_PKG_USING_ABUP_FOTA is not set # CONFIG_PKG_USING_LIBCURL2RTT is not set # CONFIG_PKG_USING_CAPNP is not set -# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set # CONFIG_PKG_USING_AGILE_TELNET is not set +# CONFIG_PKG_USING_NMEALIB is not set +# CONFIG_PKG_USING_PDULIB is not set +# CONFIG_PKG_USING_BTSTACK is not set +# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set +# CONFIG_PKG_USING_WAYZ_IOTKIT is not set +# CONFIG_PKG_USING_MAVLINK is not set +# CONFIG_PKG_USING_BSAL is not set +# CONFIG_PKG_USING_AGILE_MODBUS is not set +# CONFIG_PKG_USING_AGILE_FTP is not set +# CONFIG_PKG_USING_EMBEDDEDPROTO is not set +# CONFIG_PKG_USING_RT_LINK_HW is not set +# CONFIG_PKG_USING_LORA_PKT_FWD is not set +# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set +# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set +# CONFIG_PKG_USING_HM is not set +# CONFIG_PKG_USING_SMALL_MODBUS is not set +# CONFIG_PKG_USING_NET_SERVER is not set +# CONFIG_PKG_USING_ZFTP is not set # # security packages # # CONFIG_PKG_USING_MBEDTLS is not set -# CONFIG_PKG_USING_libsodium is not set +# CONFIG_PKG_USING_LIBSODIUM is not set +# CONFIG_PKG_USING_LIBHYDROGEN is not set # CONFIG_PKG_USING_TINYCRYPT is not set # CONFIG_PKG_USING_TFM is not set +# CONFIG_PKG_USING_YD_CRYPTO is not set # # language packages # + +# +# JSON: JavaScript Object Notation, a lightweight data-interchange format +# +# CONFIG_PKG_USING_CJSON is not set +# CONFIG_PKG_USING_LJSON is not set +# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set +# CONFIG_PKG_USING_RAPIDJSON is not set +# CONFIG_PKG_USING_JSMN is not set +# CONFIG_PKG_USING_AGILE_JSMN is not set +# CONFIG_PKG_USING_PARSON is not set + +# +# XML: Extensible Markup Language +# +# CONFIG_PKG_USING_SIMPLE_XML is not set +# CONFIG_PKG_USING_EZXML is not set +# CONFIG_PKG_USING_LUATOS_SOC is not set # CONFIG_PKG_USING_LUA is not set # CONFIG_PKG_USING_JERRYSCRIPT is not set # CONFIG_PKG_USING_MICROPYTHON is not set +# CONFIG_PKG_USING_PIKASCRIPT is not set +# CONFIG_PKG_USING_RTT_RUST is not set # # multimedia packages # + +# +# LVGL: powerful and easy-to-use embedded GUI library +# +# CONFIG_PKG_USING_LVGL is not set +# CONFIG_PKG_USING_LITTLEVGL2RTT is not set +# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set +# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set + +# +# u8g2: a monochrome graphic library +# +# CONFIG_PKG_USING_U8G2_OFFICIAL is not set +# CONFIG_PKG_USING_U8G2 is not set # CONFIG_PKG_USING_OPENMV is not set # CONFIG_PKG_USING_MUPDF is not set # CONFIG_PKG_USING_STEMWIN is not set # CONFIG_PKG_USING_WAVPLAYER is not set # CONFIG_PKG_USING_TJPGD is not set +# CONFIG_PKG_USING_PDFGEN is not set +# CONFIG_PKG_USING_HELIX is not set +# CONFIG_PKG_USING_AZUREGUIX is not set +# CONFIG_PKG_USING_TOUCHGFX2RTT is not set +# CONFIG_PKG_USING_NUEMWIN is not set +# CONFIG_PKG_USING_MP3PLAYER is not set +# CONFIG_PKG_USING_TINYJPEG is not set +# CONFIG_PKG_USING_UGUI is not set + +# +# PainterEngine: A cross-platform graphics application framework written in C language +# +# CONFIG_PKG_USING_PAINTERENGINE is not set +# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set +# CONFIG_PKG_USING_MCURSES is not set +# CONFIG_PKG_USING_TERMBOX is not set +# CONFIG_PKG_USING_VT100 is not set +# CONFIG_PKG_USING_QRCODE is not set +# CONFIG_PKG_USING_GUIENGINE is not set # # tools packages @@ -304,36 +382,115 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 # CONFIG_PKG_USING_EASYFLASH is not set # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set +# CONFIG_PKG_USING_SEGGER_RTT is not set # CONFIG_PKG_USING_RDB is not set -# CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_ULOG_EASYFLASH is not set +# CONFIG_PKG_USING_ULOG_FILE is not set +# CONFIG_PKG_USING_LOGMGR is not set # CONFIG_PKG_USING_ADBD is not set # CONFIG_PKG_USING_COREMARK is not set # CONFIG_PKG_USING_DHRYSTONE is not set +# CONFIG_PKG_USING_MEMORYPERF is not set # CONFIG_PKG_USING_NR_MICRO_SHELL is not set # CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set # CONFIG_PKG_USING_LUNAR_CALENDAR is not set # CONFIG_PKG_USING_BS8116A is not set +# CONFIG_PKG_USING_GPS_RMC is not set +# CONFIG_PKG_USING_URLENCODE is not set +# CONFIG_PKG_USING_UMCN is not set +# CONFIG_PKG_USING_LWRB2RTT is not set +# CONFIG_PKG_USING_CPU_USAGE is not set +# CONFIG_PKG_USING_GBK2UTF8 is not set +# CONFIG_PKG_USING_VCONSOLE is not set +# CONFIG_PKG_USING_KDB is not set +# CONFIG_PKG_USING_WAMR is not set +# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set +# CONFIG_PKG_USING_LWLOG is not set +# CONFIG_PKG_USING_ANV_TRACE is not set +# CONFIG_PKG_USING_ANV_MEMLEAK is not set +# CONFIG_PKG_USING_ANV_TESTSUIT is not set +# CONFIG_PKG_USING_ANV_BENCH is not set +# CONFIG_PKG_USING_DEVMEM is not set +# CONFIG_PKG_USING_REGEX is not set +# CONFIG_PKG_USING_MEM_SANDBOX is not set +# CONFIG_PKG_USING_SOLAR_TERMS is not set +# CONFIG_PKG_USING_GAN_ZHI is not set +# CONFIG_PKG_USING_FDT is not set +# CONFIG_PKG_USING_CBOX is not set +# CONFIG_PKG_USING_SNOWFLAKE is not set +# CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set +# CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set # # system packages # -# CONFIG_PKG_USING_GUIENGINE is not set + +# +# enhanced kernel services +# +# CONFIG_PKG_USING_RT_MEMCPY_CM is not set +# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set +# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set + +# +# acceleration: Assembly language or algorithmic acceleration packages +# +# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set +# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set +# CONFIG_PKG_USING_QFPLIB_M3 is not set + +# +# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard +# +# CONFIG_PKG_USING_CMSIS_5 is not set +# CONFIG_PKG_USING_CMSIS_RTOS1 is not set +# CONFIG_PKG_USING_CMSIS_RTOS2 is not set + +# +# Micrium: Micrium software products porting for RT-Thread +# +# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set +# CONFIG_PKG_USING_UCOSII_WRAPPER is not set +# CONFIG_PKG_USING_UC_CRC is not set +# CONFIG_PKG_USING_UC_CLK is not set +# CONFIG_PKG_USING_UC_COMMON is not set +# CONFIG_PKG_USING_UC_MODBUS is not set +# CONFIG_PKG_USING_RTDUINO is not set +# CONFIG_PKG_USING_FREERTOS_WRAPPER is not set # CONFIG_PKG_USING_CAIRO is not set # CONFIG_PKG_USING_PIXMAN is not set -# CONFIG_PKG_USING_LWEXT4 is not set # CONFIG_PKG_USING_PARTITION is not set -# CONFIG_PKG_USING_FAL is not set +# CONFIG_PKG_USING_PERF_COUNTER is not set +# CONFIG_PKG_USING_FLASHDB is not set # CONFIG_PKG_USING_SQLITE is not set # CONFIG_PKG_USING_RTI is not set -# CONFIG_PKG_USING_LITTLEVGL2RTT is not set -# CONFIG_PKG_USING_CMSIS is not set # CONFIG_PKG_USING_DFS_YAFFS is not set # CONFIG_PKG_USING_LITTLEFS is not set +# CONFIG_PKG_USING_DFS_JFFS2 is not set +# CONFIG_PKG_USING_DFS_UFFS is not set +# CONFIG_PKG_USING_LWEXT4 is not set # CONFIG_PKG_USING_THREAD_POOL is not set # CONFIG_PKG_USING_ROBOTS is not set # CONFIG_PKG_USING_EV is not set # CONFIG_PKG_USING_SYSWATCH is not set +# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set +# CONFIG_PKG_USING_PLCCORE is not set +# CONFIG_PKG_USING_RAMDISK is not set +# CONFIG_PKG_USING_MININI is not set +# CONFIG_PKG_USING_QBOOT is not set +# CONFIG_PKG_USING_PPOOL is not set +# CONFIG_PKG_USING_OPENAMP is not set +# CONFIG_PKG_USING_LPM is not set +# CONFIG_PKG_USING_TLSF is not set +# CONFIG_PKG_USING_EVENT_RECORDER is not set +# CONFIG_PKG_USING_ARM_2D is not set +# CONFIG_PKG_USING_MCUBOOT is not set +# CONFIG_PKG_USING_TINYUSB is not set +# CONFIG_PKG_USING_CHERRYUSB is not set +# CONFIG_PKG_USING_KMULTI_RTIMER is not set +# CONFIG_PKG_USING_TFDB is not set +# CONFIG_PKG_USING_QPC is not set # # peripheral libraries and drivers @@ -342,19 +499,29 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 # CONFIG_PKG_USING_REALTEK_AMEBA is not set # CONFIG_PKG_USING_SHT2X is not set # CONFIG_PKG_USING_SHT3X is not set +# CONFIG_PKG_USING_ADT74XX is not set +# CONFIG_PKG_USING_AS7341 is not set # CONFIG_PKG_USING_STM32_SDIO is not set +# CONFIG_PKG_USING_RTT_ESP_IDF is not set # CONFIG_PKG_USING_ICM20608 is not set -# CONFIG_PKG_USING_U8G2 is not set # CONFIG_PKG_USING_BUTTON is not set # CONFIG_PKG_USING_PCF8574 is not set # CONFIG_PKG_USING_SX12XX is not set # CONFIG_PKG_USING_SIGNAL_LED is not set # CONFIG_PKG_USING_LEDBLINK is not set # CONFIG_PKG_USING_LITTLED is not set +# CONFIG_PKG_USING_LKDGUI is not set +# CONFIG_PKG_USING_NRF5X_SDK is not set +# CONFIG_PKG_USING_NRFX is not set # CONFIG_PKG_USING_WM_LIBRARIES is not set + +# +# Kendryte SDK +# +# CONFIG_PKG_USING_K210_SDK is not set # CONFIG_PKG_USING_KENDRYTE_SDK is not set # CONFIG_PKG_USING_INFRARED is not set -# CONFIG_PKG_USING_ROSSERIAL is not set +# CONFIG_PKG_USING_MULTI_INFRARED is not set # CONFIG_PKG_USING_AGILE_BUTTON is not set # CONFIG_PKG_USING_AGILE_LED is not set # CONFIG_PKG_USING_AT24CXX is not set @@ -368,40 +535,123 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8 # CONFIG_PKG_USING_RPLIDAR is not set # CONFIG_PKG_USING_AS608 is not set # CONFIG_PKG_USING_RC522 is not set +# CONFIG_PKG_USING_WS2812B is not set # CONFIG_PKG_USING_EMBARC_BSP is not set +# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set +# CONFIG_PKG_USING_MULTI_RTIMER is not set +# CONFIG_PKG_USING_MAX7219 is not set +# CONFIG_PKG_USING_BEEP is not set +# CONFIG_PKG_USING_EASYBLINK is not set +# CONFIG_PKG_USING_PMS_SERIES is not set +# CONFIG_PKG_USING_CAN_YMODEM is not set +# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set +# CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_PAJ7620 is not set +# CONFIG_PKG_USING_AGILE_CONSOLE is not set +# CONFIG_PKG_USING_LD3320 is not set +# CONFIG_PKG_USING_WK2124 is not set +# CONFIG_PKG_USING_LY68L6400 is not set +# CONFIG_PKG_USING_DM9051 is not set +# CONFIG_PKG_USING_SSD1306 is not set +# CONFIG_PKG_USING_QKEY is not set +# CONFIG_PKG_USING_RS485 is not set +# CONFIG_PKG_USING_RS232 is not set +# CONFIG_PKG_USING_NES is not set +# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set +# CONFIG_PKG_USING_VDEVICE is not set +# CONFIG_PKG_USING_SGM706 is not set +# CONFIG_PKG_USING_STM32WB55_SDK is not set +# CONFIG_PKG_USING_RDA58XX is not set +# CONFIG_PKG_USING_LIBNFC is not set +# CONFIG_PKG_USING_MFOC is not set +# CONFIG_PKG_USING_TMC51XX is not set +# CONFIG_PKG_USING_TCA9534 is not set +# CONFIG_PKG_USING_KOBUKI is not set +# CONFIG_PKG_USING_ROSSERIAL is not set +# CONFIG_PKG_USING_MICRO_ROS is not set +# CONFIG_PKG_USING_MCP23008 is not set +# CONFIG_PKG_USING_BLUETRUM_SDK is not set +# CONFIG_PKG_USING_MISAKA_AT24CXX is not set +# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set +# CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_BL_MCU_SDK is not set +# CONFIG_PKG_USING_SOFT_SERIAL is not set +# CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_CW2015 is not set +# CONFIG_PKG_USING_RFM300 is not set +# CONFIG_PKG_USING_IO_INPUT_FILTER is not set + +# +# AI packages +# +# CONFIG_PKG_USING_LIBANN is not set +# CONFIG_PKG_USING_NNOM is not set +# CONFIG_PKG_USING_ONNX_BACKEND is not set +# CONFIG_PKG_USING_ONNX_PARSER is not set +# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set +# CONFIG_PKG_USING_ELAPACK is not set +# CONFIG_PKG_USING_ULAPACK is not set +# CONFIG_PKG_USING_QUEST is not set +# CONFIG_PKG_USING_NAXOS is not set # # miscellaneous packages # + +# +# project laboratory +# + +# +# samples: kernel and components samples +# +# CONFIG_PKG_USING_KERNEL_SAMPLES is not set +# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set +# CONFIG_PKG_USING_NETWORK_SAMPLES is not set +# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set + +# +# entertainment: terminal games and other interesting software packages +# +# CONFIG_PKG_USING_CMATRIX is not set +# CONFIG_PKG_USING_SL is not set +# CONFIG_PKG_USING_CAL is not set +# CONFIG_PKG_USING_ACLOCK is not set +# CONFIG_PKG_USING_THREES is not set +# CONFIG_PKG_USING_2048 is not set +# CONFIG_PKG_USING_SNAKE is not set +# CONFIG_PKG_USING_TETRIS is not set +# CONFIG_PKG_USING_DONUT is not set +# CONFIG_PKG_USING_COWSAY is not set # CONFIG_PKG_USING_LIBCSV is not set # CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_FASTLZ is not set # CONFIG_PKG_USING_MINILZO is not set # CONFIG_PKG_USING_QUICKLZ is not set +# CONFIG_PKG_USING_LZMA is not set # CONFIG_PKG_USING_MULTIBUTTON is not set # CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set # CONFIG_PKG_USING_CANFESTIVAL is not set # CONFIG_PKG_USING_ZLIB is not set +# CONFIG_PKG_USING_MINIZIP is not set +# CONFIG_PKG_USING_HEATSHRINK is not set # CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_KENDRYTE_DEMO is not set # CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_UPACKER is not set # CONFIG_PKG_USING_UPARAM is not set - -# -# samples: kernel and components samples -# -# CONFIG_PKG_USING_KERNEL_SAMPLES is not set -# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set -# CONFIG_PKG_USING_NETWORK_SAMPLES is not set -# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set # CONFIG_PKG_USING_HELLO is not set # CONFIG_PKG_USING_VI is not set -# CONFIG_PKG_USING_NNOM is not set -# CONFIG_PKG_USING_LIBANN is not set -# CONFIG_PKG_USING_ELAPACK is not set +# CONFIG_PKG_USING_KI is not set # CONFIG_PKG_USING_ARMv7M_DWT is not set -# CONFIG_PKG_USING_VT100 is not set -# CONFIG_PKG_USING_ULAPACK is not set # CONFIG_PKG_USING_UKAL is not set +# CONFIG_PKG_USING_CRCLIB is not set +# CONFIG_PKG_USING_LWGPS is not set +# CONFIG_PKG_USING_STATE_MACHINE is not set +# CONFIG_PKG_USING_DESIGN_PATTERN is not set +# CONFIG_PKG_USING_CONTROLLER is not set +# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set +# CONFIG_PKG_USING_MFBD is not set +# CONFIG_PKG_USING_SLCAN2RTT is not set +# CONFIG_PKG_USING_SOEM is not set diff --git a/bsp/tms320f28379d/.cproject b/bsp/tms320f28379d/.cproject index 801e7f7584ab8556d35ce8c3e5486ea6d605e469..3646eff869e3a2df2c0212fbb2cffffaf55d0b2f 100644 --- a/bsp/tms320f28379d/.cproject +++ b/bsp/tms320f28379d/.cproject @@ -15,30 +15,30 @@ - - - + @@ -165,6 +166,207 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bsp/tms320f28379d/.gitignore b/bsp/tms320f28379d/.gitignore index fe82e2fd6f26f5833580ae2e9e1d410a23850c6b..e335ff02f99c99072cfda5fa6616f42e972d1f97 100644 --- a/bsp/tms320f28379d/.gitignore +++ b/bsp/tms320f28379d/.gitignore @@ -1 +1,3 @@ -.launches/ \ No newline at end of file +.launches/ +/FLASH/ +/RAM/ diff --git a/bsp/tms320f28379d/.settings/org.eclipse.core.resources.prefs b/bsp/tms320f28379d/.settings/org.eclipse.core.resources.prefs index 00c00f182f0d9d031a3fc441898f6c169a61bbeb..9436acf25a7e9b7049a06c4984218a53a7bbc8f0 100644 --- a/bsp/tms320f28379d/.settings/org.eclipse.core.resources.prefs +++ b/bsp/tms320f28379d/.settings/org.eclipse.core.resources.prefs @@ -24,3 +24,53 @@ encoding//Debug/objects.mk=UTF-8 encoding//Debug/sources.mk=UTF-8 encoding//Debug/subdir_rules.mk=UTF-8 encoding//Debug/subdir_vars.mk=UTF-8 +encoding//FLASH/DeviceDrivers/ipc/subdir_rules.mk=UTF-8 +encoding//FLASH/DeviceDrivers/ipc/subdir_vars.mk=UTF-8 +encoding//FLASH/DeviceDrivers/subdir_rules.mk=UTF-8 +encoding//FLASH/DeviceDrivers/subdir_vars.mk=UTF-8 +encoding//FLASH/Kernel/subdir_rules.mk=UTF-8 +encoding//FLASH/Kernel/subdir_vars.mk=UTF-8 +encoding//FLASH/applications/subdir_rules.mk=UTF-8 +encoding//FLASH/applications/subdir_vars.mk=UTF-8 +encoding//FLASH/c28x/subdir_rules.mk=UTF-8 +encoding//FLASH/c28x/subdir_vars.mk=UTF-8 +encoding//FLASH/drivers/subdir_rules.mk=UTF-8 +encoding//FLASH/drivers/subdir_vars.mk=UTF-8 +encoding//FLASH/finsh/subdir_rules.mk=UTF-8 +encoding//FLASH/finsh/subdir_vars.mk=UTF-8 +encoding//FLASH/libraries/common/source/subdir_rules.mk=UTF-8 +encoding//FLASH/libraries/common/source/subdir_vars.mk=UTF-8 +encoding//FLASH/libraries/headers/cmd/subdir_rules.mk=UTF-8 +encoding//FLASH/libraries/headers/cmd/subdir_vars.mk=UTF-8 +encoding//FLASH/libraries/headers/source/subdir_rules.mk=UTF-8 +encoding//FLASH/libraries/headers/source/subdir_vars.mk=UTF-8 +encoding//FLASH/makefile=UTF-8 +encoding//FLASH/objects.mk=UTF-8 +encoding//FLASH/sources.mk=UTF-8 +encoding//FLASH/subdir_rules.mk=UTF-8 +encoding//FLASH/subdir_vars.mk=UTF-8 +encoding//RAM/DeviceDrivers/ipc/subdir_rules.mk=UTF-8 +encoding//RAM/DeviceDrivers/ipc/subdir_vars.mk=UTF-8 +encoding//RAM/DeviceDrivers/subdir_rules.mk=UTF-8 +encoding//RAM/DeviceDrivers/subdir_vars.mk=UTF-8 +encoding//RAM/Kernel/subdir_rules.mk=UTF-8 +encoding//RAM/Kernel/subdir_vars.mk=UTF-8 +encoding//RAM/applications/subdir_rules.mk=UTF-8 +encoding//RAM/applications/subdir_vars.mk=UTF-8 +encoding//RAM/c28x/subdir_rules.mk=UTF-8 +encoding//RAM/c28x/subdir_vars.mk=UTF-8 +encoding//RAM/drivers/subdir_rules.mk=UTF-8 +encoding//RAM/drivers/subdir_vars.mk=UTF-8 +encoding//RAM/finsh/subdir_rules.mk=UTF-8 +encoding//RAM/finsh/subdir_vars.mk=UTF-8 +encoding//RAM/libraries/common/source/subdir_rules.mk=UTF-8 +encoding//RAM/libraries/common/source/subdir_vars.mk=UTF-8 +encoding//RAM/libraries/headers/cmd/subdir_rules.mk=UTF-8 +encoding//RAM/libraries/headers/cmd/subdir_vars.mk=UTF-8 +encoding//RAM/libraries/headers/source/subdir_rules.mk=UTF-8 +encoding//RAM/libraries/headers/source/subdir_vars.mk=UTF-8 +encoding//RAM/makefile=UTF-8 +encoding//RAM/objects.mk=UTF-8 +encoding//RAM/sources.mk=UTF-8 +encoding//RAM/subdir_rules.mk=UTF-8 +encoding//RAM/subdir_vars.mk=UTF-8 diff --git a/bsp/tms320f28379d/2837x_FLASH_lnk_cpu1.cmd b/bsp/tms320f28379d/2837x_FLASH_lnk_cpu1.cmd index fca203c4f89ee74a5c9c94e49c613dd40215fc28..9787987d302895aae6d7f951a339d7ad5082b9e6 100644 --- a/bsp/tms320f28379d/2837x_FLASH_lnk_cpu1.cmd +++ b/bsp/tms320f28379d/2837x_FLASH_lnk_cpu1.cmd @@ -1,4 +1,4 @@ - +___heap_end = 0x010000; MEMORY { PAGE 0 : /* Program Memory */ @@ -6,14 +6,8 @@ PAGE 0 : /* Program Memory */ /* BEGIN is used for the "boot to Flash" bootloader mode */ BEGIN : origin = 0x080000, length = 0x000002 - RAMLS0 : origin = 0x008000, length = 0x000800 - RAMLS1 : origin = 0x008800, length = 0x000800 - RAMLS2 : origin = 0x009000, length = 0x000800 - RAMLS3 : origin = 0x009800, length = 0x000800 - RAMLS4 : origin = 0x00A000, length = 0x000800 - RAMGS14 : origin = 0x01A000, length = 0x001000 - RAMGS15 : origin = 0x01B000, length = 0x001000 RESET : origin = 0x3FFFC0, length = 0x000002 + RAMGS8_15 : origin = 0x013000, length = 0x009000 /* Flash sectors */ FLASHA : origin = 0x080002, length = 0x001FFE /* on-chip Flash */ @@ -33,31 +27,10 @@ PAGE 0 : /* Program Memory */ PAGE 1 : /* Data Memory */ /* Memory (RAM/FLASH) blocks can be moved to PAGE0 for program allocation */ - BOOT_RSVD : origin = 0x000002, length = 0x000120 /* Part of M0, BOOT rom will use this for stack */ - RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */ - RAMD1 : origin = 0x00B800, length = 0x000800 RAMM0 : origin = 0x000122, length = 0x0002DE - RAMD0 : origin = 0x00B000, length = 0x000800 - - RAMLS5 : origin = 0x00A800, length = 0x000800 - - RAMGS0 : origin = 0x00C000, length = 0x001000 - RAMGS1 : origin = 0x00D000, length = 0x001000 - RAMGS2 : origin = 0x00E000, length = 0x001000 - RAMGS3 : origin = 0x00F000, length = 0x001000 - RAMGS4 : origin = 0x010000, length = 0x001000 - RAMGS5 : origin = 0x011000, length = 0x001000 - RAMGS6 : origin = 0x012000, length = 0x001000 - RAMGS7 : origin = 0x013000, length = 0x001000 - RAMGS8 : origin = 0x014000, length = 0x001000 - RAMGS9 : origin = 0x015000, length = 0x001000 - RAMGS10 : origin = 0x016000, length = 0x001000 - RAMGS11 : origin = 0x017000, length = 0x001000 - RAMGS12 : origin = 0x018000, length = 0x001000 - RAMGS13 : origin = 0x019000, length = 0x001000 - - + RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */ + EBSS : origin = 0x008000, length = 0x008000 /* RAMLS0-4, 5*0x0800 */ CPU2TOCPU1RAM : origin = 0x03F800, length = 0x000400 CPU1TOCPU2RAM : origin = 0x03FC00, length = 0x000400 } @@ -66,15 +39,15 @@ PAGE 1 : /* Data Memory */ SECTIONS { /* Allocate program areas: */ - .cinit : > FLASHB PAGE = 0, ALIGN(4) - .pinit : > FLASHB, PAGE = 0, ALIGN(4) - .text : >> FLASHB | FLASHC | FLASHD | FLASHE PAGE = 0, ALIGN(4) + .cinit : > FLASHF PAGE = 0, ALIGN(4) + .pinit : > FLASHF, PAGE = 0, ALIGN(4) + .text : >> FLASHE PAGE = 0, ALIGN(4) codestart : > BEGIN PAGE = 0, ALIGN(4) #ifdef __TI_COMPILER_VERSION__ #if __TI_COMPILER_VERSION__ >= 15009000 - .TI.ramfunc : {} LOAD = FLASHD, - RUN = RAMLS0 | RAMLS1 | RAMLS2 |RAMLS3, + .TI.ramfunc : {} LOAD = FLASHF, + RUN = RAMGS8_15, LOAD_START(_RamfuncsLoadStart), LOAD_SIZE(_RamfuncsLoadSize), LOAD_END(_RamfuncsLoadEnd), @@ -83,8 +56,8 @@ SECTIONS RUN_END(_RamfuncsRunEnd), PAGE = 0, ALIGN(4) #else - ramfuncs : LOAD = FLASHD, - RUN = RAMLS0 | RAMLS1 | RAMLS2 |RAMLS3, + ramfuncs : LOAD = FLASHF, + RUN = RAMGS8_15, LOAD_START(_RamfuncsLoadStart), LOAD_SIZE(_RamfuncsLoadSize), LOAD_END(_RamfuncsLoadEnd), @@ -95,25 +68,32 @@ SECTIONS #endif #endif - FSymTab : > RAMD0, PAGE = 1, ALIGN(4) + FSymTab : > RAMM1, PAGE = 1, ALIGN(4) LOAD_START(___fsymtab_start) LOAD_END(___fsymtab_end) - + .rti_fn.0.end : > RAMM1, PAGE = 1 + .rti_fn.0 : > RAMM1, PAGE = 1 + .rti_fn.1 : > RAMM1, PAGE = 1 + .rti_fn.2 : > RAMM1, PAGE = 1 + .rti_fn.3 : > RAMM1, PAGE = 1 + .rti_fn.4 : > RAMM1, PAGE = 1 + .rti_fn.5 : > RAMM1, PAGE = 1 + .rti_fn.1.end : > RAMM1, PAGE = 1 + .rti_fn.6.end : > RAMM1, PAGE = 1 + .rti_fn.6 : > RAMM1, PAGE = 1 /* Allocate uninitalized data sections: */ .stack : > RAMM1 PAGE = 1 - .ebss : >> RAMLS5 | RAMGS0 | RAMGS1 PAGE = 1 - .esysmem : >> RAMGS2 | RAMGS3 | RAMGS4 | RAMGS5 | RAMGS6 | RAMGS7 | RAMGS8 | RAMGS9 | RAMGS10 | RAMGS11 | RAMGS12 | RAMGS13 PAGE = 1 + .ebss : > EBSS, + LOAD_START(___ebss_start), + LOAD_END(___ebss_end), + PAGE = 1 + .esysmem : >> RAMM1 PAGE = 1 /* Initalized sections go in Flash */ - .econst : >> FLASHF | FLASHG | FLASHH PAGE = 0, ALIGN(4) - .switch : > FLASHB PAGE = 0, ALIGN(4) + .econst : >> FLASHF PAGE = 0, ALIGN(4) + .switch : > FLASHF PAGE = 0, ALIGN(4) .reset : > RESET, PAGE = 0, TYPE = DSECT /* not used, */ - - Filter_RegsFile : > RAMGS0, PAGE = 1 - - SHARERAMGS0 : > RAMGS0, PAGE = 1 - SHARERAMGS1 : > RAMGS1, PAGE = 1 /* The following section definitions are required when using the IPC API Drivers */ GROUP : > CPU1TOCPU2RAM, PAGE = 1 diff --git a/bsp/tms320f28379d/2837x_RAM_lnk_cpu1.cmd b/bsp/tms320f28379d/2837x_RAM_lnk_cpu1.cmd new file mode 100644 index 0000000000000000000000000000000000000000..f84001e83d905ea816e201754e569dc76cc99829 --- /dev/null +++ b/bsp/tms320f28379d/2837x_RAM_lnk_cpu1.cmd @@ -0,0 +1,78 @@ +___heap_end = 0x00F000; + +MEMORY +{ +PAGE 0 : + /* BEGIN is used for the "boot to SARAM" bootloader mode */ + + BEGIN : origin = 0x000000, length = 0x000002 + RAMM0 : origin = 0x000122, length = 0x0002DE + RESET : origin = 0x3FFFC0, length = 0x000002 + RAMGS8_15 : origin = 0x013000, length = 0x009000 + +PAGE 1 : + RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */ + BOOT_RSVD : origin = 0x000002, length = 0x000120 /* Part of M0, BOOT rom will use this for stack */ + EBSS : origin = 0x008000, length = 0x007000 /* RAMLS0-4, 5*0x0800 */ + ECONST : origin = 0x00F000, length = 0x004000 /* RAMGS0-2, 3*0x1000 */ + CPU2TOCPU1RAM : origin = 0x03F800, length = 0x000400 + CPU1TOCPU2RAM : origin = 0x03FC00, length = 0x000400 +} + +SECTIONS +{ + codestart : > BEGIN, PAGE = 0 + +#ifdef __TI_COMPILER_VERSION__ + #if __TI_COMPILER_VERSION__ >= 15009000 + .TI.ramfunc : {} > RAMM0, PAGE = 0 + #else + ramfuncs : > RAMM0 PAGE = 0 + #endif +#endif + .text : > RAMGS8_15, PAGE = 0 + .cinit : > RAMM0, PAGE = 0 + .pinit : > RAMM0, PAGE = 0 + .switch : > RAMM0, PAGE = 0 + .reset : > RESET, PAGE = 0, TYPE = DSECT /* not used, */ + .rti_fn.0.end : > RAMM1, PAGE = 1 + .rti_fn.0 : > RAMM1, PAGE = 1 + .rti_fn.1.end : > RAMM1, PAGE = 1 + .rti_fn.6.end : > RAMM1, PAGE = 1 + .rti_fn.6 : > RAMM1, PAGE = 1 + .stack : > RAMM1, PAGE = 1 + .esysmem : > RAMM1, PAGE = 1 + + .ebss : > EBSS, + LOAD_START(___ebss_start), + LOAD_END(___ebss_end), + PAGE = 1 + + .econst : > ECONST, PAGE = 1 + + /* finsh symbol table */ + FSymTab : > RAMM1, PAGE = 1, ALIGN(4) + LOAD_START(___fsymtab_start) + LOAD_END(___fsymtab_end) + + /* The following section definitions are required when using the IPC API Drivers */ + GROUP : > CPU1TOCPU2RAM, PAGE = 1 + { + PUTBUFFER + PUTWRITEIDX + GETREADIDX + } + + GROUP : > CPU2TOCPU1RAM, PAGE = 1 + { + GETBUFFER : TYPE = DSECT + GETWRITEIDX : TYPE = DSECT + PUTREADIDX : TYPE = DSECT + } +} + +/* +//=========================================================================== +// End of file. +//=========================================================================== +*/ diff --git a/bsp/tms320f28379d/Kconfig b/bsp/tms320f28379d/Kconfig index 63b5a0c4919b1b609e77efd25720faf5eb823269..6e4c810c5f4c3e27067a602b86b549ebb8697402 100644 --- a/bsp/tms320f28379d/Kconfig +++ b/bsp/tms320f28379d/Kconfig @@ -22,7 +22,7 @@ config SOC_TMS320F28X bool select ARCH_TIDSP_C28X select RT_USING_COMPONENTS_INIT - # select RT_USING_USER_MAIN + select RT_USING_USER_MAIN default y source "$RTT_DIR/Kconfig" diff --git a/bsp/tms320f28379d/README.md b/bsp/tms320f28379d/README.md index 5fbe825088db8dec728d4e48d629b547bf2455b9..42ffc1ee896d2f481df6e9e6fad26755ec193bd4 100644 --- a/bsp/tms320f28379d/README.md +++ b/bsp/tms320f28379d/README.md @@ -46,10 +46,9 @@ TMS320F28379D 程序的编译和下载要使用的是 TI 官方提供的 Code Co ![import_dia](figures/import_dia.png) ### 2.2 编译工程 -使用 CCS 内置的 C 编译器可以进行工程的编译。CCS 8 需要使用 TI v18.1.3.LTS 编译器。CCS 10 需要使用 TI v20.2.1.LTS 及以上版本编译器(v20.2.0.LTS及以下版本的编译器有bug编译时会出现segmentation fault)。本文使用的是 Code Composer Studio 10.1.1 和 TI v20.2.4.LTS 编译器的组合(已经配置在工程文件中)。导入工程后,在右边的 Project Explorer 列表里可以看到刚刚导入的 rt-thread 工程,右键点击,在弹出的菜单中选择 Build Project 即可开始编译。 - -![build](figures/build.png) - +使用 CCS 内置的 C 编译器可以进行工程的编译。CCS 8 需要使用 TI v18.1.3.LTS 编译器。CCS 10 需要使用 TI v20.2.1.LTS 及以上版本编译器(v20.2.0.LTS及以下版本的编译器有bug编译时会出现segmentation fault)。本文使用的是 Code Composer Studio 10.1.1 和 TI v20.2.4.LTS 编译器的组合(已经配置在工程文件中)。导入工程后,在右边的 Project Explorer 列表里可以看到刚刚导入的 rt-thread 工程。本BSP提供两种编译的方式,分别用于在RAM中执行和在FLASH中执行。 +如图所示可以选择RAM和FLASH进行build。 +![](figures/build.png) ## 3. 烧写及执行 编译完成后,可以开始下载和调试。把开发板和电脑通过 Mini-USB 线连接,使用 CCS 中的烧写功能可直接通过板载 XDS100v2 仿真器烧写并执行。 @@ -94,9 +93,9 @@ TMS320F28379D 程序的编译和下载要使用的是 TI 官方提供的 Code Co ## 6. 联系人信息 -维护人:xuzhuoyi < xzy476386434@vip.qq.com > -qiyu < qiyu_sjtu@163.com > -guyunjie < yunjie.gu1@gmail.com > +维护人: +1. guyunjie < yunjie.gu1@gmail.com > +2. qiyu < qiyu_sjtu@163.com > ## 7. 参考 diff --git a/bsp/tms320f28379d/applications/application.c b/bsp/tms320f28379d/applications/application.c deleted file mode 100644 index 5c7b769a4da93fefbd3cf48c38f6e310ce372602..0000000000000000000000000000000000000000 --- a/bsp/tms320f28379d/applications/application.c +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2006-2018, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2009-01-05 Bernard the first version - * 2014-04-27 Bernard make code cleanup. - */ - -#include -#include - -#ifdef RT_USING_FINSH -#include "shell.h" -#endif - -void rt_init_thread_entry(void* parameter) -{ -#ifdef RT_USING_FINSH - finsh_system_init(); -#endif -} - -int rt_application_init() -{ - rt_thread_t tid; - - tid = rt_thread_create("init", - rt_init_thread_entry, RT_NULL, - 2048, RT_THREAD_PRIORITY_MAX/3, 20); - - if (tid != RT_NULL) - rt_thread_startup(tid); - - return 0; -} diff --git a/bsp/tms320f28379d/applications/startup.c b/bsp/tms320f28379d/applications/startup.c index da5c31e2376e1c44e5500d4981ae4c469aeb85f6..def94440fd1a1a4f91db6aa1741111a5d7e7b326 100644 --- a/bsp/tms320f28379d/applications/startup.c +++ b/bsp/tms320f28379d/applications/startup.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2018, RT-Thread Development Team + * Copyright (c) 2006-2022, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * @@ -7,80 +7,22 @@ * Date Author Notes * 2006-08-31 Bernard first implementation * 2018-09-02 xuzhuoyi modify for TMS320F28379D version + * 2022-08-21 yuqi modify the entry function */ #include #include #include - #include "board.h" - -/*@{*/ - -extern int rt_application_init(void); - - -/******************************************************************************* -* Function Name : assert_failed -* Description : Reports the name of the source file and the source line number -* where the assert error has occurred. -* Input : - file: pointer to the source file name -* - line: assert error line source number -* Output : None -* Return : None -*******************************************************************************/ -void assert_failed(uint16_t* file, uint32_t line) -{ - rt_kprintf("\n\r Wrong parameter value detected on\r\n"); - rt_kprintf(" file %s\r\n", file); - rt_kprintf(" line %d\r\n", line); - - while (1) ; -} - -/** - * This function will startup RT-Thread RTOS. - */ -void rtthread_startup(void) -{ - /* init board */ - rt_hw_board_init(); - - /* show version */ - rt_show_version(); - - /* init timer system */ - rt_system_timer_init(); - - /* init scheduler system */ - rt_system_scheduler_init(); - - /* init application */ - rt_application_init(); - - /* init timer thread */ - rt_system_timer_thread_init(); - - /* init idle thread */ - rt_thread_idle_init(); - - /* start scheduler */ - rt_system_scheduler_start(); - - /* never reach here */ - return ; -} - int main(void) { - /* disable interrupt first */ - rt_hw_interrupt_disable(); - - /* startup RT-Thread RTOS */ - rtthread_startup(); + unsigned long x=10000; - return 0; + while(x) + { + x--; + } } /*@}*/ diff --git a/bsp/tms320f28379d/drivers/board.c b/bsp/tms320f28379d/drivers/board.c index b45b7e82c2ebe6467bcb5285f9c52c520cbc736d..2c9c38eb05cc07776b6a1f197aae3e06173bc45d 100644 --- a/bsp/tms320f28379d/drivers/board.c +++ b/bsp/tms320f28379d/drivers/board.c @@ -8,6 +8,7 @@ * 2009-09-22 Bernard add board.h to this bsp * 2018-09-02 xuzhuoyi modify for TMS320F28379D version * 2022-06-21 guyunjie fix bugs in trap_rtosint and enable interrupt nesting + * 2022-08-21 yuqi adding onboard devices initialization code */ #include #include "board.h" @@ -21,7 +22,6 @@ extern volatile rt_uint8_t rt_interrupt_nest; extern rt_uint32_t rt_thread_switch_interrupt_flag; extern interrupt void RTOSINT_Handler(); - void trap_rtosint() { if(rt_thread_switch_interrupt_flag) @@ -75,6 +75,10 @@ void rt_hw_board_init() InitPieVectTable(); +#ifdef _FLASH + memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (Uint32)&RamfuncsLoadSize); + InitFlash(); +#endif EALLOW; // This is needed to write to EALLOW protected registers PieVectTable.TIMER2_INT = &cpu_timer2_isr; PieVectTable.RTOS_INT = &RTOSINT_Handler; @@ -86,10 +90,12 @@ void rt_hw_board_init() IER |= M_INT14; #ifdef RT_USING_HEAP - rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END); + rt_system_heap_init(&__ebss_end, &(__heap_end)); #endif +#ifdef RT_USING_SERIAL rt_hw_sci_init(); +#endif #ifdef RT_USING_COMPONENTS_INIT rt_components_board_init(); @@ -97,6 +103,19 @@ void rt_hw_board_init() #if defined(RT_USING_CONSOLE) && defined(RT_USING_DEVICE) rt_console_set_device(RT_CONSOLE_DEVICE_NAME); #endif - /*this hook may cause problem for reasons unknown*/ + rt_interrupt_leave_sethook((void (*)(void))trap_rtosint); } + +int _args_main() +{ + /* _args_main is the entry point called by _c_int00. We define it + * here to override the one defined by the compiler in args_main.c */ + + extern int rtthread_startup(); + + /* startup RT-Thread RTOS */ + rtthread_startup(); + /* never reach here*/ + return 0; +} diff --git a/bsp/tms320f28379d/drivers/board.h b/bsp/tms320f28379d/drivers/board.h index 9f2a05785020642d1b6f5bb10b40523cfac9b3d5..1cf7ac71348011d2fe4102b896425d06b5f51488 100644 --- a/bsp/tms320f28379d/drivers/board.h +++ b/bsp/tms320f28379d/drivers/board.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2018, RT-Thread Development Team + * Copyright (c) 2006-2022, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * @@ -14,10 +14,9 @@ #include -#define C28X_SRAM_END 0x00020000 -#define HEAP_BEGIN 0x0000E000 -#define HEAP_END C28X_SRAM_END +extern int __ebss_end; +extern int __heap_end; extern void rt_hw_board_init(void); diff --git a/bsp/tms320f28379d/figures/build.png b/bsp/tms320f28379d/figures/build.png index 4c2515fb83baff591a0ed802a256f475b359ddb6..4f6db2913db0878385c28faaed6284e87f1c432a 100644 Binary files a/bsp/tms320f28379d/figures/build.png and b/bsp/tms320f28379d/figures/build.png differ diff --git a/bsp/tms320f28379d/rtconfig.h b/bsp/tms320f28379d/rtconfig.h index ddeaa7c61f2c6756dfe245c2628ef435d9fb74ac..ce045ed9ce8f2f7ab9fa8ccffbc319bd09fa1072 100644 --- a/bsp/tms320f28379d/rtconfig.h +++ b/bsp/tms320f28379d/rtconfig.h @@ -53,6 +53,9 @@ /* RT-Thread Components */ #define RT_USING_COMPONENTS_INIT +#define RT_USING_USER_MAIN +#define RT_MAIN_THREAD_STACK_SIZE 2048 +#define RT_MAIN_THREAD_PRIORITY 4 #define RT_USING_MSH #define RT_USING_FINSH #define FINSH_USING_MSH @@ -121,24 +124,58 @@ /* language packages */ +/* JSON: JavaScript Object Notation, a lightweight data-interchange format */ + + +/* XML: Extensible Markup Language */ + /* multimedia packages */ +/* LVGL: powerful and easy-to-use embedded GUI library */ + + +/* u8g2: a monochrome graphic library */ + + +/* PainterEngine: A cross-platform graphics application framework written in C language */ + /* tools packages */ /* system packages */ +/* enhanced kernel services */ + + +/* acceleration: Assembly language or algorithmic acceleration packages */ + + +/* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ + + +/* Micrium: Micrium software products porting for RT-Thread */ + /* peripheral libraries and drivers */ +/* Kendryte SDK */ + + +/* AI packages */ + + /* miscellaneous packages */ +/* project laboratory */ /* samples: kernel and components samples */ + +/* entertainment: terminal games and other interesting software packages */ + #include "rtconfig_project.h" #endif diff --git a/include/rtdef.h b/include/rtdef.h index be702a0b26697826101a39d924f6eb6f551061bb..f04c3300b663e8c51a59fa8a06666578bf8dc134 100644 --- a/include/rtdef.h +++ b/include/rtdef.h @@ -208,11 +208,11 @@ typedef __gnuc_va_list va_list; /* The way that TI compiler set section is different from other(at least * GCC and MDK) compilers. See ARM Optimizing C/C++ Compiler 5.9.3 for more * details. */ -#define RT_SECTION(x) -#define RT_USED +#define RT_SECTION(x) __attribute__((section(x))) +#define RT_USED __attribute__((used)) #define PRAGMA(x) _Pragma(#x) -#define ALIGN(n) -#define RT_WEAK +#define ALIGN(n) __attribute__((aligned(n))) +#define RT_WEAK __attribute__((weak)) #define rt_inline static inline #define RTT_API #elif defined (__TASKING__) diff --git a/libcpu/ti-dsp/c28x/context.s b/libcpu/ti-dsp/c28x/context.s index 2b019e0714c6d5265528ea6862b7fc064d81caf1..297b3b2119e13bbbd72257374791226497e48261 100644 --- a/libcpu/ti-dsp/c28x/context.s +++ b/libcpu/ti-dsp/c28x/context.s @@ -10,6 +10,7 @@ ; 2019-07-03 zhaoxiaowei add _rt_hw_calc_csb function to support __rt_ffs. ; 2019-12-05 xiaolifan add support for hardware fpu32 ; 2022-06-21 guyunjie trim pendsv (RTOSINT_Handler) +; 2022-08-24 guyunjie fix bugs in context switching .ref _rt_interrupt_to_thread .ref _rt_interrupt_from_thread @@ -39,7 +40,6 @@ RT_CTX_SAVE .macro - PUSH AR1H:AR0H PUSH XAR2 PUSH XAR3 @@ -90,7 +90,6 @@ RT_CTX_RESTORE .macro POP XAR3 POP XAR2 - MOVZ AR0 , @SP SUBB XAR0, #6 MOVL ACC , *XAR0 @@ -98,7 +97,6 @@ RT_CTX_RESTORE .macro MOV AL, IER MOVL *XAR0, ACC - POP AR1H:AR0H .endm @@ -130,23 +128,19 @@ _rt_hw_interrupt_enable: ; ; void rt_hw_context_switch(rt_uint32 from, rt_uint32 to); -; r0 --> from -; r4 --> to - - +; ACC --> from +; SP[4] --> to +; .asmfunc _rt_hw_context_switch_interrupt: - MOVL XAR0, #0 - MOV AR0, AL + MOVL XAR0, ACC MOVL XAR4, *-SP[4] ; set rt_thread_switch_interrupt_flag to 1 MOVL XAR5, #_rt_thread_switch_interrupt_flag - MOVL XAR6, *XAR5 - MOVL ACC, XAR6 - CMPB AL, #1 - B _reswitch, EQ - MOVL XAR6, #1 - MOVL *XAR5, XAR6 + MOVL ACC, *XAR5 + BF _reswitch, NEQ ; ACC!=0 + MOVB ACC, #1 + MOVL *XAR5, ACC MOVL XAR5, #_rt_interrupt_from_thread ; set rt_interrupt_from_thread MOVL *XAR5, XAR0 @@ -160,23 +154,19 @@ _reswitch: ; ; void rt_hw_context_switch(rt_uint32 from, rt_uint32 to); -; r0 --> from -; r4 --> to - - +; ACC --> from +; SP[4] --> to +; .asmfunc _rt_hw_context_switch: - MOVL XAR0, #0 - MOV AR0, AL + MOVL XAR0, ACC MOVL XAR4, *-SP[4] ; set rt_thread_switch_interrupt_flag to 1 MOVL XAR5, #_rt_thread_switch_interrupt_flag - MOVL XAR6, *XAR5 - MOVL ACC, XAR6 - CMPB AL, #1 - B _reswitch2, EQ - MOVL XAR6, #1 - MOVL *XAR5, XAR6 + MOVL ACC, *XAR5 + BF _reswitch2, NEQ ; ACC!=0 + MOVB ACC, #1 + MOVL *XAR5, ACC MOVL XAR5, #_rt_interrupt_from_thread ; set rt_interrupt_from_thread MOVL *XAR5, XAR0 @@ -189,63 +179,64 @@ _reswitch2: LRETR .endasmfunc - .asmfunc +; +; * void rt_hw_context_switch_to(rt_uint32 to); +; * ACC --> to +; + .asmfunc +_rt_hw_context_switch_to: + ; get to thread + MOVL XAR1, #_rt_interrupt_to_thread + MOVL *XAR1, ACC + + ; set from thread to 0 + MOVL XAR1, #_rt_interrupt_from_thread + MOVL XAR0, #0 + MOVL *XAR1, XAR0 + + ; set interrupt flag to 1 + MOVL XAR1, #_rt_thread_switch_interrupt_flag + MOVL XAR0, #1 + MOVL *XAR1, XAR0 + + TRAP #16 + + ; never reach here! + .endasmfunc + + .asmfunc _RTOSINT_Handler: ; disable interrupt to protect context switch ; DINT ;this is done by hardware so not needed ; get rt_thread_switch_interrupt_flag - MOV AR0, #_rt_thread_switch_interrupt_flag - MOV AL, *AR0 - MOV AR1, AL - CMP AR1, #0 - B rtosint_exit, EQ ; pendsv already handled + MOVL XAR0, #_rt_thread_switch_interrupt_flag + MOVL ACC, *XAR0 + BF rtosint_exit, EQ ; pendsv already handled ; clear rt_thread_switch_interrupt_flag to 0 - MOV AR1, #0x00 - MOV *AR0, AR1 - - MOV AR0, #_rt_interrupt_from_thread - MOV AL, *AR0 - MOV AR1, AL - CMP AR1, #0 - B switch_to_thread, EQ ; skip register save at the first time - -;#if defined (__VFP_FP__) && !defined(__SOFTFP__) -; TST lr, #0x10 ; if(!EXC_RETURN[4]) -; VSTMDBEQ r1!, {d8 - d15} ; push FPU register s16~s31 -;#endif + MOVL XAR1, #0 + MOVL *XAR0, XAR1 - RT_CTX_SAVE ; push r4 - r11 register + MOVL XAR0, #_rt_interrupt_from_thread + MOVL ACC, *XAR0 + BF switch_to_thread, EQ ; skip register save at the first time -;#if defined (__VFP_FP__) && !defined(__SOFTFP__) -; MOV r4, #0x00 ; flag = 0 + RT_CTX_SAVE ; push cpu registers -; TST lr, #0x10 ; if(!EXC_RETURN[4]) -; MOVEQ r4, #0x01 ; flag = 1 - -; STMFD r1!, {r4} ; push flag -;#endif - - MOV AL, *AR0 - MOV AR0, AL + MOVL ACC, *XAR0 + MOVL XAR0, ACC MOVZ AR1, @SP ; get from thread stack pointer - MOV *AR0, AR1 ; update from thread stack pointer + MOVL *XAR0, XAR1 ; update from thread stack pointer switch_to_thread: - MOV AR1, #_rt_interrupt_to_thread - MOV AL, *AR1 - MOV AR1, AL - MOV AL, *AR1 - MOV AR1, AL ; load thread stack pointer - -;#if defined (__VFP_FP__) && !defined(__SOFTFP__) -; LDMFD r1!, {r3} ; pop flag -;#endif + MOVL XAR1, #_rt_interrupt_to_thread + MOVL ACC, *XAR1 + MOVL XAR1, ACC + MOVL ACC, *XAR1 + MOV @SP, AL ; load thread stack pointer - MOV @SP, AR1 - - RT_CTX_RESTORE ; pop r4 - r11 register + RT_CTX_RESTORE ; pop cpu registers rtosint_exit: ; do not restore interrupt here: to be restored according to the @@ -287,38 +278,6 @@ _rt_hw_calc_csb: lretr .endasmfunc -; -; * void rt_hw_context_switch_to(rt_uint32 to); -; * r0 --> to - - .asmfunc -_rt_hw_context_switch_to: - MOV AR1, #_rt_interrupt_to_thread - MOV *AR1, AL - -;#if defined (__VFP_FP__) && !defined(__SOFTFP__) - ; CLEAR CONTROL.FPCA -; MRS r2, CONTROL ; read -; BIC r2, #0x04 ; modify -; MSR CONTROL, r2 ; write-back -;#endif - - ; set from thread to 0 - MOV AR1, #_rt_interrupt_from_thread - MOV AR0, #0x0 - MOV *AR1, AR0 - - ; set interrupt flag to 1 - MOV AR1, #_rt_thread_switch_interrupt_flag - MOV AR0, #1 - MOV *AR1, AR0 - - TRAP #16 - - - ; never reach here! - .endasmfunc - ; compatible with old version .asmfunc _rt_hw_interrupt_thread_switch: diff --git a/libcpu/ti-dsp/c28x/cpuport.c b/libcpu/ti-dsp/c28x/cpuport.c index 8903ea0a408e57466de170466dd9de0205f56f4d..9ffd96d4f745bbf21241c94bb546bd92500971de 100644 --- a/libcpu/ti-dsp/c28x/cpuport.c +++ b/libcpu/ti-dsp/c28x/cpuport.c @@ -76,9 +76,8 @@ rt_uint8_t *rt_hw_stack_init(void *tentry, unsigned long i; stk = stack_addr; - stk = (rt_uint8_t *)RT_ALIGN((rt_uint32_t)stk, 8); - //stk -= sizeof(struct stack_frame); - stk += 1; + stk = (rt_uint8_t *)RT_ALIGN((rt_uint32_t)stk, 2); + stk += 1; /*to work around the stack alignment*/ stack_frame = (struct stack_frame *)stk; diff --git a/src/components.c b/src/components.c index 37519c042a054837f21842a405eca3e32b4b0e74..78eb002214fabff38e8a1f493f271bd74fe4c1a5 100644 --- a/src/components.c +++ b/src/components.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006-2021, RT-Thread Development Team + * Copyright (c) 2006-2022, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * @@ -145,7 +145,6 @@ int $Sub$$main(void) return 0; } #elif defined(__ICCARM__) -extern int main(void); /* __low_level_init will auto called by IAR cstartup */ extern void __iar_data_init3(void); int __low_level_init(void) @@ -194,7 +193,7 @@ void main_thread_entry(void *parameter) extern int $Super$$main(void); $Super$$main(); /* for ARMCC. */ } -#elif defined(__ICCARM__) || defined(__GNUC__) || defined(__TASKING__) +#elif defined(__ICCARM__) || defined(__GNUC__) || defined(__TASKING__) || defined(__TI_COMPILER_VERSION__) main(); #endif }