From 8fa9fde43a2e9cb978b52c0eb536fe2bafcc6e73 Mon Sep 17 00:00:00 2001 From: Yunjie Gu Date: Thu, 20 Oct 2022 04:41:13 +0100 Subject: [bsp][c28x] add support to not disable global interrupt in context-switch to enable zero-latency isr for critical interrupts. --- .../common/source/F2837xD_usDelay.asm | 24 +- bsp/ti/c28x/tms320f28379d/.config | 313 +++------------------ bsp/ti/c28x/tms320f28379d/.cproject | 168 +++++------ bsp/ti/c28x/tms320f28379d/2837x_FLASH_lnk_cpu1.cmd | 58 ++-- bsp/ti/c28x/tms320f28379d/2837x_RAM_lnk_cpu1.cmd | 24 +- bsp/ti/c28x/tms320f28379d/board/board.c | 29 +- bsp/ti/c28x/tms320f28379d/rtconfig.h | 36 --- bsp/ti/c28x/tms320f28379d/rtconfig_project.h | 3 + 8 files changed, 184 insertions(+), 471 deletions(-) (limited to 'bsp') diff --git a/bsp/ti/c28x/libraries/tms320f28379d/common/source/F2837xD_usDelay.asm b/bsp/ti/c28x/libraries/tms320f28379d/common/source/F2837xD_usDelay.asm index 71d3606fd0..f306769ebe 100644 --- a/bsp/ti/c28x/libraries/tms320f28379d/common/source/F2837xD_usDelay.asm +++ b/bsp/ti/c28x/libraries/tms320f28379d/common/source/F2837xD_usDelay.asm @@ -71,12 +71,21 @@ ;// $ ;//########################################################################### - .def _F28x_usDelay - .cdecls LIST ;;Used to populate __TI_COMPILER_VERSION__ macro %{ + #ifdef __TI_EABI__ + #define __EABI__ 1 + #else + #define __EABI__ 0 + #endif %} + .if __EABI__ + .def F28x_usDelay + .else + .def _F28x_usDelay + .endif + .if __TI_COMPILER_VERSION__ .if __TI_COMPILER_VERSION__ >= 15009000 .sect ".TI.ramfunc" ;;Used with compiler v15.9.0 and newer @@ -86,9 +95,20 @@ .endif .global __F28x_usDelay + + .if __EABI__ +F28x_usDelay: + .else _F28x_usDelay: + .endif + SUB ACC,#1 + .if __EABI__ + BF F28x_usDelay,GEQ ;; Loop if ACC >= 0 + .else BF _F28x_usDelay,GEQ ;; Loop if ACC >= 0 + .endif + LRETR ;There is a 9/10 cycle overhead and each loop diff --git a/bsp/ti/c28x/tms320f28379d/.config b/bsp/ti/c28x/tms320f28379d/.config index 670b11aaff..47742f867e 100644 --- a/bsp/ti/c28x/tms320f28379d/.config +++ b/bsp/ti/c28x/tms320f28379d/.config @@ -17,8 +17,7 @@ CONFIG_RT_THREAD_PRIORITY_8=y CONFIG_RT_THREAD_PRIORITY_MAX=8 CONFIG_RT_TICK_PER_SECOND=100 # CONFIG_RT_USING_OVERFLOW_CHECK is not set -CONFIG_RT_USING_HOOK=y -CONFIG_RT_HOOK_USING_FUNC_PTR=y +# CONFIG_RT_USING_HOOK is not set CONFIG_RT_USING_IDLE_HOOK=y CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 CONFIG_IDLE_THREAD_STACK_SIZE=1024 @@ -209,19 +208,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_KAWAII_MQTT is not set -# CONFIG_PKG_USING_BC28_MQTT is not set +# CONFIG_PKG_USING_MQTTCLIENT 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 # @@ -241,12 +240,10 @@ 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 @@ -255,14 +252,10 @@ 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_IOT_EXPLORER is not set +# CONFIG_PKG_USING_TENCENT_IOTHUB 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 @@ -270,110 +263,40 @@ 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_LIBHYDROGEN is not set +# CONFIG_PKG_USING_libsodium 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 @@ -382,115 +305,36 @@ 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 # - -# -# 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_GUIENGINE 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_PERF_COUNTER is not set -# CONFIG_PKG_USING_FLASHDB is not set +# CONFIG_PKG_USING_FAL 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 @@ -499,29 +343,19 @@ 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_MULTI_INFRARED is not set +# CONFIG_PKG_USING_ROSSERIAL 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 @@ -535,126 +369,43 @@ 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_KI 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_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 # # Hardware Drivers Config diff --git a/bsp/ti/c28x/tms320f28379d/.cproject b/bsp/ti/c28x/tms320f28379d/.cproject index d3421753e2..10ca7c720c 100644 --- a/bsp/ti/c28x/tms320f28379d/.cproject +++ b/bsp/ti/c28x/tms320f28379d/.cproject @@ -15,31 +15,31 @@ - - @@ -116,31 +116,31 @@ - - diff --git a/bsp/ti/c28x/tms320f28379d/2837x_FLASH_lnk_cpu1.cmd b/bsp/ti/c28x/tms320f28379d/2837x_FLASH_lnk_cpu1.cmd index 9787987d30..3e880bc24b 100644 --- a/bsp/ti/c28x/tms320f28379d/2837x_FLASH_lnk_cpu1.cmd +++ b/bsp/ti/c28x/tms320f28379d/2837x_FLASH_lnk_cpu1.cmd @@ -1,4 +1,4 @@ -___heap_end = 0x010000; +__heap_end = 0x010000; MEMORY { PAGE 0 : /* Program Memory */ @@ -7,7 +7,7 @@ PAGE 0 : /* Program Memory */ BEGIN : origin = 0x080000, length = 0x000002 RESET : origin = 0x3FFFC0, length = 0x000002 - RAMGS8_15 : origin = 0x013000, length = 0x009000 + RAMGS8_15 : origin = 0x013000, length = 0x009000 /* Flash sectors */ FLASHA : origin = 0x080002, length = 0x001FFE /* on-chip Flash */ @@ -30,7 +30,7 @@ PAGE 1 : /* Data Memory */ BOOT_RSVD : origin = 0x000002, length = 0x000120 /* Part of M0, BOOT rom will use this for stack */ RAMM0 : origin = 0x000122, length = 0x0002DE RAMM1 : origin = 0x000400, length = 0x000400 /* on-chip RAM block M1 */ - EBSS : origin = 0x008000, length = 0x008000 /* RAMLS0-4, 5*0x0800 */ + EBSS : origin = 0x008000, length = 0x008000 /* RAMLS0-4, 5*0x0800 */ CPU2TOCPU1RAM : origin = 0x03F800, length = 0x000400 CPU1TOCPU2RAM : origin = 0x03FC00, length = 0x000400 } @@ -40,37 +40,37 @@ SECTIONS { /* Allocate program areas: */ .cinit : > FLASHF PAGE = 0, ALIGN(4) - .pinit : > FLASHF, PAGE = 0, ALIGN(4) - .text : >> FLASHE PAGE = 0, ALIGN(4) + .init_array : > 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 = FLASHF, RUN = RAMGS8_15, - LOAD_START(_RamfuncsLoadStart), - LOAD_SIZE(_RamfuncsLoadSize), - LOAD_END(_RamfuncsLoadEnd), - RUN_START(_RamfuncsRunStart), - RUN_SIZE(_RamfuncsRunSize), - RUN_END(_RamfuncsRunEnd), + LOAD_START(RamfuncsLoadStart), + LOAD_SIZE(RamfuncsLoadSize), + LOAD_END(RamfuncsLoadEnd), + RUN_START(RamfuncsRunStart), + RUN_SIZE(RamfuncsRunSize), + RUN_END(RamfuncsRunEnd), PAGE = 0, ALIGN(4) #else ramfuncs : LOAD = FLASHF, RUN = RAMGS8_15, - LOAD_START(_RamfuncsLoadStart), - LOAD_SIZE(_RamfuncsLoadSize), - LOAD_END(_RamfuncsLoadEnd), - RUN_START(_RamfuncsRunStart), - RUN_SIZE(_RamfuncsRunSize), - RUN_END(_RamfuncsRunEnd), + LOAD_START(RamfuncsLoadStart), + LOAD_SIZE(RamfuncsLoadSize), + LOAD_END(RamfuncsLoadEnd), + RUN_START(RamfuncsRunStart), + RUN_SIZE(RamfuncsRunSize), + RUN_END(RamfuncsRunEnd), PAGE = 0, ALIGN(4) #endif #endif - FSymTab : > RAMM1, PAGE = 1, ALIGN(4) - LOAD_START(___fsymtab_start) - LOAD_END(___fsymtab_end) + FSymTab : > RAMM1, PAGE = 1 + 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 @@ -81,19 +81,19 @@ SECTIONS .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 : > EBSS, - LOAD_START(___ebss_start), - LOAD_END(___ebss_end), - PAGE = 1 - .esysmem : >> RAMM1 PAGE = 1 + .stack : > RAMM1 PAGE = 1 + .sysmem : > RAMM1 PAGE = 1 + .bss : > EBSS, PAGE = 1 + .data : > EBSS, + LOAD_END(__ebss_end), + PAGE = 1 /* Initalized sections go in Flash */ - .econst : >> FLASHF PAGE = 0, ALIGN(4) + .const : > FLASHF PAGE = 0, ALIGN(4) .switch : > FLASHF PAGE = 0, ALIGN(4) - - .reset : > RESET, PAGE = 0, TYPE = DSECT /* not used, */ + .reset : > RESET, PAGE = 0, TYPE = DSECT /* not used, */ /* The following section definitions are required when using the IPC API Drivers */ GROUP : > CPU1TOCPU2RAM, PAGE = 1 diff --git a/bsp/ti/c28x/tms320f28379d/2837x_RAM_lnk_cpu1.cmd b/bsp/ti/c28x/tms320f28379d/2837x_RAM_lnk_cpu1.cmd index 5eae476e44..e8f30706cd 100644 --- a/bsp/ti/c28x/tms320f28379d/2837x_RAM_lnk_cpu1.cmd +++ b/bsp/ti/c28x/tms320f28379d/2837x_RAM_lnk_cpu1.cmd @@ -1,4 +1,4 @@ -___heap_end = 0x00F000; +__heap_end = 0x00F000; MEMORY { @@ -32,7 +32,7 @@ SECTIONS #endif .text : > RAMGS8_15, PAGE = 0 .cinit : > RAMM0, PAGE = 0 - .pinit : > RAMM0, PAGE = 0 + .init_array : > RAMM0, PAGE = 0 .switch : > RAMM0, PAGE = 0 .reset : > RESET, PAGE = 0, TYPE = DSECT /* not used, */ .rti_fn.0.end : > RAMM1, PAGE = 1 @@ -46,19 +46,17 @@ SECTIONS .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 + .sysmem : > RAMM1, PAGE = 1 + .bss : > EBSS, PAGE = 1 + .data : > EBSS, + LOAD_END(__ebss_end), + PAGE = 1 + .const : > ECONST, PAGE = 1 /* finsh symbol table */ - FSymTab : > RAMM1, PAGE = 1, ALIGN(4) - LOAD_START(___fsymtab_start) - LOAD_END(___fsymtab_end) + FSymTab : > RAMM1, PAGE = 1 + LOAD_START(__fsymtab_start) + LOAD_END(__fsymtab_end) /* The following section definitions are required when using the IPC API Drivers */ GROUP : > CPU1TOCPU2RAM, PAGE = 1 diff --git a/bsp/ti/c28x/tms320f28379d/board/board.c b/bsp/ti/c28x/tms320f28379d/board/board.c index c391a2589e..18f5b213bf 100644 --- a/bsp/ti/c28x/tms320f28379d/board/board.c +++ b/bsp/ti/c28x/tms320f28379d/board/board.c @@ -22,25 +22,7 @@ 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) - { - /* only do pendsv at the end of the last level of interrupt nesting, - * so that threads do not preempt any isrs. */ - if(rt_interrupt_nest == 1) - { - /* rt_interrupt_leave_hook is called before rt_interrupt_nest -- - * in rt_interrupt_leave. We need to do this manually here to indicate - * that all isrs have been cleared before we switch to thread. */ - rt_interrupt_nest --; - asm(" trap #16"); - /* increment rt_interrupt_nest to compensate for the previous decrement. */ - rt_interrupt_nest ++; - } - } -} +extern interrupt void rtosint_handler(); /** * This is the timer interrupt service routine. @@ -50,13 +32,10 @@ interrupt void cpu_timer2_isr(void) { CpuTimer2Regs.TCR.all = 0xC000; - ALLOW_ISR_PREEMPT(); - - /* enter interrupt */ rt_interrupt_enter(); rt_tick_increase(); - /* leave interrupt */ + rt_interrupt_leave(); } @@ -84,7 +63,7 @@ void rt_hw_board_init() #endif EALLOW; // This is needed to write to EALLOW protected registers PieVectTable.TIMER2_INT = &cpu_timer2_isr; - PieVectTable.RTOS_INT = &RTOSINT_Handler; + PieVectTable.RTOS_INT = &rtosint_handler; #ifdef BSP_USING_XINT1 PieVectTable.XINT1_INT = &XINT1_Handler; @@ -127,8 +106,6 @@ void rt_hw_board_init() #if defined(RT_USING_CONSOLE) && defined(RT_USING_DEVICE) rt_console_set_device(RT_CONSOLE_DEVICE_NAME); #endif - - rt_interrupt_leave_sethook((void (*)(void))trap_rtosint); } int _args_main() diff --git a/bsp/ti/c28x/tms320f28379d/rtconfig.h b/bsp/ti/c28x/tms320f28379d/rtconfig.h index 12617588d5..9b79b43fa4 100644 --- a/bsp/ti/c28x/tms320f28379d/rtconfig.h +++ b/bsp/ti/c28x/tms320f28379d/rtconfig.h @@ -13,8 +13,6 @@ #define RT_THREAD_PRIORITY_8 #define RT_THREAD_PRIORITY_MAX 8 #define RT_TICK_PER_SECOND 100 -#define RT_USING_HOOK -#define RT_HOOK_USING_FUNC_PTR #define RT_USING_IDLE_HOOK #define RT_IDLE_HOOK_LIST_SIZE 4 #define IDLE_THREAD_STACK_SIZE 1024 @@ -126,59 +124,25 @@ /* 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 */ - - /* Hardware Drivers Config */ /* Onboard Peripheral Drivers */ diff --git a/bsp/ti/c28x/tms320f28379d/rtconfig_project.h b/bsp/ti/c28x/tms320f28379d/rtconfig_project.h index fb6a3dffbb..2e811726a4 100644 --- a/bsp/ti/c28x/tms320f28379d/rtconfig_project.h +++ b/bsp/ti/c28x/tms320f28379d/rtconfig_project.h @@ -24,4 +24,7 @@ typedef unsigned char uint8_t; /**< 8bit unsigned integer type */ * this macro at the start of preemptible interrupt service routines*/ #define ALLOW_ISR_PREEMPT() __asm(" CLRC INTM") +#define RT_USING_ZERO_LATENCY +#define ZERO_LATENCY_INT_MASK 0x0000 + #endif -- cgit v1.3.1