Registered User No edit summary |
Registered User mNo edit summary Tag: 2017 source edit |
||
(8 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{ApplicableFor | <noinclude>{{ApplicableFor | ||
|MPUs list=STM32MP13x, STM32MP15x | |MPUs list=STM32MP13x, STM32MP15x, STM32MP25x | ||
|MPUs checklist=STM32MP13x, STM32MP15x | |MPUs checklist=STM32MP13x, STM32MP15x, STM32MP25x | ||
}} | }} | ||
</noinclude> | |||
== Article purpose == | == Article purpose == | ||
This article introduces the '''Hardware Debug Port''' which allows the observation of internal signals. By using multiplexers, up to 16 signals of each of 8 | This article introduces the '''Hardware Debug Port''' which allows the observation of internal signals. By using multiplexers, up to 16 signals of each of 8 output can be observed. The article explains: | ||
* How to configure, use and debug the driver | * How to configure, use and debug the driver | ||
* | * Where the source code can be found. | ||
== Short description == | == Short description == | ||
* 8 | * 8 ports that emit a signal simultaneously | ||
* One of 16 | * One of 16 signals selectable per port (including one software-programmable signal) | ||
* Disabling outputs via safety signal | |||
* | |||
[[File:HDP_overview.png|thumb|center|766px|alt=Alternate text|HDP Block Diagram]] | [[File:HDP_overview.png|thumb|center|766px|alt=Alternate text|HDP Block Diagram]] | ||
Line 20: | Line 20: | ||
== Configuration == | == Configuration == | ||
=== Kernel configuration === | === Kernel configuration === | ||
The '''HDP''' is enabled and ready to be used in all STM32MPU Embedded Software Distributions, via the Linux<sup>®</sup> kernel configuration ''' | The '''HDP''' is enabled and ready to be used in all STM32MPU Embedded Software Distributions, via the Linux<sup>®</sup> kernel configuration '''CONFIG_PINCTRL_STM32_HDP''', set to disabled by default. | ||
Symbol: ''' | Symbol: '''PINCTRL_STM32_HDP''' | ||
Location: | Location: | ||
Device Drivers | Device Drivers | ||
Pin controllers | |||
STMicroelectronics STM32 Hardware Debug Port (HDP) pin control | |||
Please refer to the [[Menuconfig or how to configure kernel]] article for instructions on modifying the configuration, and recompiling the Linux kernel image in the Distribution Package context. | Please refer to the [[Menuconfig or how to configure kernel]] article for instructions on modifying the configuration, and recompiling the Linux kernel image in the Distribution Package context. | ||
Line 32: | Line 32: | ||
Refer to the [[HDP device tree configuration]] article when configuring the HDP Linux kernel driver. | Refer to the [[HDP device tree configuration]] article when configuring the HDP Linux kernel driver. | ||
== How to | == How to monitor signals == | ||
The HDP signals can be observed with an oscilloscope or any other tools that allow for the observation of signal variations. | |||
It is also possible to use the gpioget and gpiomon tools. | |||
Refer to the [[HDP_Linux_driver#Device_tree|device tree]] section to select your signals. | |||
See the HDP chapter in the reference manual <ref>[[STM32 MPU resources#Reference manuals|STM32MPU reference manuals]]</ref> for further register details. | |||
== Source code location == | |||
The HDP Linux driver source code is composed of: | |||
* {{CodeSource | Linux kernel | drivers/pinctrl/stm32/pinctrl-stm32-hdp.c}} : handle common resources: registers, clock. | |||
=== Debug the driver === | |||
Refer to the [[How_to_use_the_kernel_dynamic_debug]] article when debuging the HDP Linux kernel driver. | |||
==References== | ==References== | ||
Line 55: | Line 55: | ||
[[Category:Embedded trace and debug]] | [[Category:Embedded trace and debug]] | ||
{{PublicationRequestId | 10412 | 2019-01-24 | PhilipS}} | {{PublicationRequestId | 10412 | 2019-01-24 | PhilipS}} | ||
{{ArticleBasedOnModel | | {{ArticleBasedOnModel | OpenSTLinux drivers article model}} | ||
</noinclude> | </noinclude> |
Latest revision as of 17:51, 21 May 2024
1. Article purpose
This article introduces the Hardware Debug Port which allows the observation of internal signals. By using multiplexers, up to 16 signals of each of 8 output can be observed. The article explains:
- How to configure, use and debug the driver
- Where the source code can be found.
2. Short description
- 8 ports that emit a signal simultaneously
- One of 16 signals selectable per port (including one software-programmable signal)
- Disabling outputs via safety signal
3. Configuration
3.1. Kernel configuration
The HDP is enabled and ready to be used in all STM32MPU Embedded Software Distributions, via the Linux® kernel configuration CONFIG_PINCTRL_STM32_HDP, set to disabled by default.
Symbol: PINCTRL_STM32_HDP
Location:
Device Drivers
Pin controllers
STMicroelectronics STM32 Hardware Debug Port (HDP) pin control
Please refer to the Menuconfig or how to configure kernel article for instructions on modifying the configuration, and recompiling the Linux kernel image in the Distribution Package context.
3.2. Device tree
Refer to the HDP device tree configuration article when configuring the HDP Linux kernel driver.
4. How to monitor signals
The HDP signals can be observed with an oscilloscope or any other tools that allow for the observation of signal variations. It is also possible to use the gpioget and gpiomon tools.
Refer to the device tree section to select your signals.
See the HDP chapter in the reference manual [1] for further register details.
5. Source code location
The HDP Linux driver source code is composed of:
- drivers/pinctrl/stm32/pinctrl-stm32-hdp.c : handle common resources: registers, clock.
5.1. Debug the driver
Refer to the How_to_use_the_kernel_dynamic_debug article when debuging the HDP Linux kernel driver.
6. References