F29H85X-SDK is the Core SDK providing collection of all foundational software components required to accelerate application development . It includes device-specific drivers, bit-fields, libraries (math, DSP, Control, Calibration, Communication, Flash API and Security client), peripheral examples, utilities, hardware files, and documentation. Application specific software and hardware files are delivered through additional Software Development Kits (SDK). For more information, visit F29-SDK
Device Support
The following devices are supported with this release
- MCU's
- F29H85x
- F29P58X (Limited support using device emulation and Syscfg support)
- F29P32X (Limited support using device emulation and Syscfg support)
- Hardware Platforms :
What is Supported
In Release 1.00.00.00
- Driverlib
- Driverlib for F29H85X
- Driverlib for C29 CPU1, CPU2 and CPU3 peripherals
- Safety and Security Unit (SSU) examples
- Supports HSSE build configuration used for HSSE device type
- Single core examples on HSFS device type
- Multi core examples between CPU1 and CPU3 for IPC, ESM, Flash, SSU on HSFS device type
- SysConfig
- Support for Peripheral configuration for Control, Analog,System and Communication Peripherals
- Support for RTDMA
- Support for XBAR
- Support for Board Components
- Support for freeRTOS Configuration
- Support for Memory Configuration
- Support for Driver Porting Layer (DPL)
- Support for System Security Configuration
- Support for MCU Mission Control and Transfer (BETA)
- Support for Configurable Logic Block (CLB)
- Support for C29 and Third Party Libraries
- Support for Custom Board Migration
- Universal Project Support Examples (Easy migration support across C2000 using SysCfg)
- Bitfields
- Kernel:
- FreeRTOS kernel for C29 CPU1 and demos on F29H85X
- DPL kernels for nortos and FreeRTOS
- EtherCAT:
- C29 CPU1 EtherCAT HAL drivers and test examples for F29H85X
- C29 CPU1 Stack Configuration file for Beckhoff’s Slave Stack Code Tool for F29H85X
- C29 CPU1 Slave Stack demo examples for F29H85X
- EtherCAT - FoE example for C29 CPU1
- Real-time libraries – source and examples for Control, DSP, and FastMath operations. In general, APIs are F28x compatible
- DCL – Floating-point Digital Control Library
- DSP – Floating-point FFT (CFFT/RFFT), FIR, and IIR
- FastMath – CRC and TMU (floating-point)
- IQMath – Fixed-point math library
- Scale Factor Optimization (SFO) Library
- Migrated to use driverlibs instead of bitfields
- PMBus slave stack
- Master/slave example demonstrating PMBus v1.2 capability
- Flash API
- C29 Flash API library EABI only
- 128-bit flash api example for Bank Mode 0 & 2
- 512-bit flash api example for Bank Mode 0 & 2
- EEPROM example on data flash
- UART flash kernel example
- Tools and Utilities
- CLB Tool
- ClockTree support in SysConfig
- System Security Configuration Tool (SSU)
- Certificate generation for the C29 example binaries
- Security Configuration (SECCFG) checker Tool
- SECCFG binary generation Tool
New in Release 1.01.00.00
- Examples
- Benchmarks
- Motor control signal chain benchmark example
- Communication
- Ethercat examples
- cia402
- echoback
- foe download
- Driverlib
- Multicore examples
- RTDMA between CPU1 and CPU2
- SSUMODE3 support for SSU IPC examples
- SSU IPC example between CPU1 and CPU2
- Simplified SSU IPC example between CPU1 and CPU3
- Empty example for multi core
- Empty example for multi core using dummy certificate
- Single core examples
- EMIF
- 16 bit SDRAM
- 32 bit SDRAM
- 16 bit ASRAM
- Empty examples
- Create static library
- Security module
- Dummy certificate
- Flash
- 128-bit Flash API programming example for BANKMODEs 1 and 3
- 512-bit Flash API programming example for BANKMODEs 1 and 3
- Flash based UART SBL with FOTA
- CPU3 support for UART Flash kernel
- Bankmode switch for FOTA (Supports bankmode switch from any mode to either mode 1 or 3)
- LED blinky example Launchpad
- LED blinky example for F29P58X and F29P32X device emulation
- Kernel
- Multicore examples
- FreeRTOS Asymmetric Multi Processing (AMP) between CPU1 and CPU3
- Single core examples
- IPC HAL example for CPU3
- This example shall be tested on CPU3 while AUTOSAR stack is running on CPU1
- RTlibs
- Fastmath examples (Matrix, Binary LUT Search, TMU (expf, logf))
- Driverlib
- EMIF driver
- Device emulation support for F29P58X and F29P32X device
- Mandatory MISRA-C violation fix
- Syscfg
- EMIF syscfg support
- Ethercat syscfg support
- Flash syscfg support
- SSU tool bug fixes and enhancements
- Flash API library
- BANKMODEs 1 and 3 supported (in addition to 0 and 2)
- Support for CPU3 programming (in addition to CPU1)
New in Release 1.02.00.00
- Added support for Power Management IC (PMIC)
- TPS653860XX on SOM EVM
- TPS65036XX on Launchpad
- Integrated Software Diagnostic Library (SDL) layer
- Support for peripheral instance filter based on GPN variants
- Added support for dummy certificate with crypto unlock for the examples in HSFS device state
- Removes dependency on Python and openSSL
- Migrated to 2.0.0.STS C29 Code Gen Tool (CGT)
- Added Crypto drivers and examples
- Added Flash based CAN SBL
- Added Resource Allocator Tool
- Set SoC-level configurations and allocate HW resources to multiple cores in a centralized view, and enforce these allocations to configure CPUs independently.
- Added Syscfg board views
- Examples
- Driverlib
- Single Core Examples
- Crypto examples
- AES CBC 128
- AES CBC 256
- AES CFB
- AES CMAC 128
- AES CMAC 256
- AES CTR
- AES ECB 128
- AES ECB 256
- HMAC SHA 256
- HMAC SHA 512
- SHA 256
- SHA 512
- SM3
- Flash examples
- PMBUS examples
- I2C mode controller
- I2C mode target
- WADI examples
- Duty cycle and frequency capture
- Deadband check
- Moving window frequency capture
- Signal to signal frequency capture
- Signal frequency with SSS
- Pulse width measurement with DMA trigger
- Multi Core Examples
- IPC between CPU1 and CPU3 with CPU3 code load to flash and run from RAM
- Resource Allocator examples
- LED example between CPU1 and CPU3
- RTDMA example between CPU1 and CPU3
- SSU RTDMA example between CPU1 and CPU2
- PMIC examples
- TPS653860XX
- User configuration
- Q&A Watchdog
- TPS65036XX
- User configuration
- Q&A Watchdog
- Software trigger Watchdog
- SDL examples
- DCC
- ESM
- LCM
- Memss
- SIC
- Sysctl
- Driverlib
- Syscfg
- Added PMIC syscfg support
- Added Resource Allocator tool
- Peripheral instance filter based on GPN variants
- Supports F29H85X, F29P58X and F29P32X variants
- Added Syscfg board views
- F29H85X SOM EVM
- HSEC180ADAPEVM F29H85X SOM
- F29H85X Launchpad
- Libraries
- PMIC TPS653860XX library
- PMIC TPS65036XX library
- SDL library (beta)
New in Release 1.02.01.00
- Bug fixes in Flash based UART SBL for proper TIFS functionality
- Bug fixes in RAM based UART SBL for proper TIFS functionality
What Is NOT Supported
- Syscfg
- Link Time Optimization (LTO) compiler option for the libraries and examples
Known Issues And Limitations
There are few limitations and known issues associated with this release
Limitations
Sl. No | Description | Workaround |
1 | Limited F29P58X and F29P32X device support
- Only one example is provided which demonstrates F29H85X device emulation as F29P58X or F29P32X
| The device emulation may be extended to other examples as required The below driverlib function to be called in the example 'main' function to emulate as F29P58X and F29P32X respectively:
- SysCtl_emulateDevice(SYSCTL_EMULATE_F29P589DU5Q);
- SysCtl_emulateDevice(SYSCTL_EMULATE_F29P329SM2Q);
Import example project into CCS and switch to desired GPN variant:
GPN variant Switch
|
2 | FreeRTOS: Support for task-specific FPU register saves has been removed | FPU registers are now always saved for all tasks. Any usage of vPortTaskUsesFPU() can be omitted. |
3 | Only Windows build is supported for the the Transfer examples | None. |
4 | SDL: Testing of the SDL has not been performed with the F29P58x and F29P32x emulation modes. Testing on using the SDL on CPUs other than CPU1 has also been limited. Testing will be expanded in future releases. | None. |
5 | SDL: The sdl_dcc_example has a dependency on a SYSCLK configured using a clock source of a 25 MHz X1 which is not available on some EVMs. To run the example, you will either need a newer version of the SOM (such as MCU144A-003) with X1 connected, or your own board with a similar external oscillator setup. | Without this hardware dependency, you can update the .syscfg file with alternative SYSCLK settings and adjust the tests in the DCC_Test_UseCaseArray in sdl_dcc_example.h to use the 10 MHz INTOSC2 instead of XTAL or remove the XTAL test cases altogether. |
6 | Ram based UART SBL does not exist for F29P32x device today. | Code provisioning needs to be done as F29H85x. |
7 | Flash based UART SBL does not exist for F29P32x device today. | Firmware updates need to be done as F29H85x. |
Known Issues
Sl. No | Description | Workaround |
1 | DCL NLPID fails in RAM_FASTMATH build configuration due to errors greater than threshold | None |
2 | The Resource Allocator examples fail to build out of the box in CCS v20.3.0 | When importing the Project in CCS 20.3.0, do verify if the Resource allocation specific flags are set.
If not, update the Project Properties -> Build -> Tools -> SysConfig -> Miscellaneous -> Other flags to include the appropriate flag.
- For projects having the .syscfg file in "Define Resource Allocations" mode, add the following flag:
- "--enableResourceAllocationSetup"
- For CPUx projects having .syscfg files in "Configure using Predefined Resource Allocations" mode, add the following flag:
- "--resourceAllocation <path_to_resourceAllocation.json_file>"
- for example, "--resourceAllocation ..\..\rtdma_ex2_cpu1_cpu3_multi_ra\RA\syscfg\resourceAllocation.json"
|
3 | Fastmath TMU Expf example doesn't generate right output for all input values. Some due to errors greater than threshold. | None |
Dependencies
This release has dependency on the following tools.