HAL TAMP Overview

Introducing TAMP

group TAMP_Introduction

  • This introduction is under development.

Module and files

The following diagram illustrates the TAMP module and its associated files.

Module and files diagram

Component diagram

The following diagram illustrates the software components involved in the TAMP module. It shows the interactions between the user application, HAL drivers, low-level drivers, and the hardware components.



@startuml

!$ppp = "TAMP"

!use_ppp_ll = 1

!use_ppp_isr = 1

!$use_hal_service = 1

!$use_hal_rcc = 0

!$use_hal_dma = 0

!$hal_api_itf = "HAL " + $ppp + " API"

!$appli_itf = "User Callback"

!$ppp_name = "HAL_"+$ppp

!$ppp_ISR = $ppp+" ISR"

!$ll_ppp = "LL_"+$ppp

!$hal_dma_itf = "HAL_DMA_StartDirectXfer()\nHAL_DMA_Abort_IT\ntHAL_DMA_Abort()"

!$hal_rcc_itf = "\t\t\t\tGetClockFreq()\n\t\t\t\tHAL_RCC_"+$ppp+"_EnableClock()"

!$hal_ppp_itf = "DMA CallBacks"

!$hal_generic_itf = "HAL_GetTick()"

!$ll_ppp_itf = "LL " + $ppp +" API"

!$ppp_xIRQ = $ppp+"x_IRQ"

<style>

componentDiagram {

arrow {

FontSize 8

}

interface {

FontSize 8

}

}

</style>



title TAMP Software Component Diagram



Package "Application Layer" #DarkMagenta {

component [Appli]

interface "$appli_itf" as APPLI_Interface

[Appli] -r- APPLI_Interface

}

package "HAL" #DarkOrange {

[$ppp_name]

!if ($use_hal_dma == 1)

interface "$hal_ppp_itf" as HAL_PPP_Interface

[$ppp_name] -d- HAL_PPP_Interface

!endif

interface "$hal_api_itf" as HAL_PPP_APPLI_Interface

[$ppp_name] -u- HAL_PPP_APPLI_Interface

!if ($use_hal_service == 1)

  [HAL_SERVICE]

  interface "$hal_generic_itf" as HAL_Service_Interface

  [HAL_SERVICE] -r- HAL_Service_Interface

  [$ppp_name] -l-( HAL_Service_Interface

!endif

!if ($use_hal_dma == 1)

  [HAL_DMA]

  interface "$hal_dma_itf" as HAL_DMA_Interface

  [HAL_DMA] -u- HAL_DMA_Interface

  [HAL_DMA] -u-( HAL_PPP_Interface

  [$ppp_name] --( HAL_DMA_Interface

!endif

!if ($use_hal_rcc == 1)

  [HAL_RCC]

  interface "$hal_rcc_itf" as HAL_RCC_Interface

  [HAL_RCC] -l- HAL_RCC_Interface

  [$ppp_name] -r-( HAL_RCC_Interface

!endif

}

[Appli] -d-( HAL_PPP_APPLI_Interface

[$ppp_name] -u-( APPLI_Interface

package "Low Layer" #Technology {

!if (use_ppp_ll == 1)

[$ll_ppp]

interface "$ll_ppp_itf" as LL_PPP_Interface

[$ll_ppp] -u- LL_PPP_Interface

!endif

interface "$ppp_ISR" as PPP_ISR



[$ppp_ISR] -U- PPP_ISR

[CMSIS-Devices]

[$ppp_ISR]

!if ($use_hal_dma == 1)

  [DMA ISR]

  interface "DMA ISR" as DMA_ISR

  [DMA ISR] -u- DMA_ISR

!endif

}

package "HW" #LightCyan {

[STM32_HW]

interface "$ppp_xIRQ" as PPPx_IRQ

[STM32_HW] -u- PPPx_IRQ

!if ($use_hal_dma == 1)

interface "DMAx_IRQ_Ch" as DMA_IRQ_CH

[STM32_HW] -u- DMA_IRQ_CH

[DMA ISR] -d-( DMA_IRQ_CH

[HAL_DMA] --( DMA_ISR

!endif

}

!if (use_ppp_ll == 1)

[$ppp_name] -d-( LL_PPP_Interface

[$ll_ppp] .r.> [CMSIS-Devices]: $ppp register def

[STM32_HW] <.u. [$ll_ppp] : $ppp registers R/W

!else

[$ppp_name] .d.> [CMSIS-Devices]: $ppp register def

[STM32_HW] <.l. [$ppp_name] : $ppp registers R/W

!endif

[$ppp_ISR] -d-( PPPx_IRQ

[$ppp_name] -d-( PPP_ISR

@enduml

Configuration table

The following table lists the configuration defines for the HAL TAMP module, specifying their locations, default values, and descriptions:

group TAMP_Configuration_Table

Configuration inside the TAMP driver

Config defines

Description

Default value

Note

USE_HAL_TAMP_MODULE

hal_conf.h

1

When set, HAL TAMP module is enabled

USE_HAL_CHECK_PARAM

hal_conf.h

0

When set, parameters are checked in runtime

USE_ASSERT_DBG_PARAM

PreProcessor env

NA

When defined, enable the params assert