= Tms570 = ||BSP Information ||BSP_name || TMS570 (TMS570LS3137 HDK) ||Manufacturer || Texas Instruments ||image || TMS570LS31x_HDK_Kit.jpg ||caption || TMS570LS31x HDK Kit ||Board_URL || http://www.ti.com/tool/tmds570ls31hdk ||Architecture || ARM Cortex-R (big-endian) ||CPU_model || Texas Instruments Cortex-R TMS570LS3137 microcontroller ||Monitor || None, simple HW setup or XCP loader ||Simulator || No. ||Aliases || tms570ls3137_hdk, tms570ls3137_hdk_intram, tms570ls3137_hdk_sdram ||RAM || 256 kB ECC SRAM internal + 8 MB SDRAM ||NVMEM || 3 MB ECC Flash ||Serial || 2 x UARTs (1 with LIN), 1 x I2C, 3 x CAN, 1 x 2ch FlexRay, 3+2 x SPI ||NICs || 1 x 10/100 Ethernet ||Dimensions || 125 x 110 mm ||Other || 2 x N2HET timing coprocessor, 2 x ADC = Overview = The TMS570LS3137 device is a high-performance automotive-grade microcontroller family for safety systems. = Features = * Texas Instruments TMS570LS3137 MCU: * Dual CPUs in lockstep * CPU and memory Built-In Self-Test (BIST) logic * ECC on both the flash and the data SRAM * Parity on peripheral memories * Loopback capability on peripheral I/Os = BSP Status = The basic TMS570 support has been included in RTEMS mainline sources ([http://git.rtems.org/rtems/commit/?id=4407ee675cb22e8bb870a76eafc590eb6e754315 commit]) in August 2014. Support for initial hardware setup and basic system selftest has been included in RTEMS mainline in September 2016 ([https://git.rtems.org/rtems/commit/?id=29430a3a106c98d2027b29d074d5db85ddb49c39 commit]) Development of the BSP started as Premysl Houdek's GSoC 2014 project at [http://industrialinformatics.cz/ Industrial Informatics group of Czech Technical University in Prague] Development version of RTEMS with BSP sources is available from GitHub in tms570-bsp branch * https://github.com/AoLaD/rtems/tree/tms570-bsp The LwIP driver sources with TMS570 EMAC driver and RTEMS port included can be obtained from our other project repository * http://sourceforge.net/p/ulan/lwip-omk/ci/master/tree/ The application for testing of RTEMS with the LwIP port is included in our RTEMS OM template repository * http://rtime.felk.cvut.cz/gitweb/rtems-devel.git/tree/refs/heads/master:/rtems-omk-template/applwiptest = Tool-chain = arm-rtems4.12-gcc (GCC) 6.1.1 20160526 + Newlib 2.4.0.20160527 + Binutils 2.26.20160125 When GCC build outside of RTEMS Source Builder then next setup is equivalent to RSB for RTESM-4.12 {{{ ../../../src/gcc-6.1/configure --target=arm-rtems4.12 --prefix=/usr \ --build=x86_64-pc-linux-gnu \ --enable-languages=c,c++ \ --disable-libstdcxx-pch \ --with-gnu-ld \ --with-gnu-as \ --enable-threads \ --enable-target-optspace \ --with-system-zlib \ --verbose \ --disable-nls --without-included-gettext \ --disable-win32-registry \ --with-newlib \ --enable-plugin \ --enable-newlib-io-c99-formats \ --enable-version-specific-runtime-libs \ --enable-newlib-iconv \ --disable-lto \ --enable-libgomp \ --enable-newlib-iconv \ --enable-newlib-iconv-encodings="iso_8859_1,utf_8" \ }}} Next patches has been used during development to add Cortex-R and big-endian ARM support * Enable big-endian multilib variant for GCC (included in GCC mainline now) * http://lists.rtems.org/pipermail/devel/2014-July/007244.html * Newlib memchr ARM profile correction (included in Newlib mainline now) * https://sourceware.org/ml/newlib/2014/msg00193.html * RTEMS common Newlib sigaltstack patch applied * http://git.rtems.org/rtems-tools/plain/tools/4.11/newlib/newlib-sys-signal-20130532.diff The first target is soft-float RTEMS Cortex-R support. Next GCC options are used {{{ -mbig-endian -march=armv7-r -mthumb }}} for future hard float alternative {{{ -mbig-endian -mthumb -march=armv7-r -mfpu=vfpv3-d16 -mfloat-abi=hard }}} = Execution = We have not used any generic bootloader nor initial complex CPU and peripherals initialization and self test is implemented and included in RTEMS BSP. We use simple Ti's HalCoGen generated application to setup board and then download RTEMS image over OpenOCD to internal ECC SRAM or external SDRAM. Setup application code is available there * https://github.com/hornmich/tms570ls3137-hdk-sdram = Debugging = OpenOCD support with GDB and DDD frontend setup can be found there * https://github.com/AoLaD/rtems-tms570-utils/tree/master/openocd = Test Reports = The hello world, ticker and most of the other tests are running from internal SRAM, Flash and external SDRAM. Loader or other HW configuration is required to run code from external SDRAM. Running from Flash with complete hardware initialization included in RTEMS application image requires to configure RTEMS BSP build with TMS570_USE_HWINIT_STARTUP option set to 1. {{{ TMS570_USE_HWINIT_STARTUP=1 }}} = References = * http://www.ti.com/tool/tmds570ls31hdk * http://www.ti.com/product/tms570ls3137 * https://rtime.felk.cvut.cz/hw/index.php/TMS570LS3137