How to read or write peripheral registers

Revision as of 15:26, 18 May 2020 by Registered User


1. Installation

For reading and writing STM32MP1 registers, we will use Devmem tool. There are two ways for install it on your board:

  • If you have an internet access on your board through apt-get
  • Else through bitbake

1.1. With apt-get

Just enter the following commands:

 sudo apt-get update
 sudo apt-get install devmem2

1.2. With bitbake

Enter the following commands:

 bitbake devmem2
 echo 'IMAGE_INSTALL_append += "devmem2"' >> meta-st/meta-st-openstlinux/recipes-st/images/st-image-weston.bbappend
 bitbake st-image-Weston

Then you just have to flash the generated image on your board with CubeProgrammer.

2. Use of Devmem

To use Devmem, enter the following command:

devmem2 [address] [type] [data]

Where:

  • [address] corresponds to the register address you want to read
  • [type] corresponds to the output value size you want (b, h, w or l, respectively byte, halfword, word or long). Assigning a type is not necessary if you only read the register and the default output will be a word.
  • [data] corresponds to the data value you want to set on the register, assigning a type is mandatory in this case . If you don't assign a data, it will only read the register.

3. Examples of Devmem use