Difference between revisions of "STM32MPU Embedded Software architecture overview"

[unchecked revision] [quality revision]
m
m (STM32MPU Embedded Software overview)
 

1 STM32MPU Embedded Software overview[edit]

The diagram below shows STM32MPU Embedded Software distribution main components:

  • The OpenSTLinux distribution, running on the Arm® Cortex®-A, including:
    • The OpenSTLinux BSP with:
    • The Linux middleware relies on the BSP to provide API to the Applications that typically interact with the user via the display, the touchscreen, etc.
    • On OP-TEE side, the Trusted Applications (TA) relies on the OP-TEE core for secrets operations (not visible from the Linux and STM32Cube MPU Package)
  • The STM32Cube MPU Package is running on the Arm® Cortex®-M, and so only available on STM32MP15x lines More info.png: it is based on HAL drivers and middlewares, like STM32 microcontrollers, completed with coprocessor management for interaction with the Cortex-A.

The OpenSTLinux distribution is generated with OpenEmbedded build framework : the BSP components are modified open source software components, stored on github, whereas the middleware is directly taken inherited from communities. See our Open Source Software (OSS) philosophy just below for further information.

The figure below is clickable so that the user can directly jump to one of the sub-levels listed above.

STM32CubeMP1 architecture OP-TEE overview TF-A overview U-Boot overview STM32 MPU Linux kernel overview Boot chain overview Linux application frameworks overview OpenSTLinux BSP architecture overview OpenSTLinux architecture overview Category:Platform configuration Security overview Arm Cortex-A7 Arm Cortex-M4 STM32MP13 microprocessor STM32MP15 microprocessor
STM32MPU Embedded Software architecture overview.
OpenSTLinux OE legend.png


2 Open Source Software (OSS) philosophy[edit]

The Open source software source code is released under a license in which the copyright holder grants users the rights to study, change and distribute the software to anyone and for any purpose[1].
STMicroelectronics maximizes the using of open source software and contributes to those communities. Notice that, due to the software review life cycle, it can take some time before getting all developments accepted in the communities, so STMicroelectronics can also temporarily provide some source code on github[2], until it is merged in the targeted repository.

3 References[edit]



== STM32MPU Embedded Software overview ==
The diagram below shows [[STM32MPU Embedded Software distribution]] main components:
* The '''OpenSTLinux distribution''', running on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A, including:
** The '''OpenSTLinux BSP''' with:
*** The [[Boot_chain_overview|boot chain]] based on [[TF-A overview|TF-A]] and [[U-Boot overview|U-Boot]].
*** The [[OP-TEE overview|OP-TEE ]] secure OS running on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A in secure mode.
*** The [[STM32 MPU Linux kernel overview | Linux<sup>&reg;</sup> kernel]] running on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A in non-secure mode.
** The '''Linux middleware''' relies on the BSP to provide API to the '''Applications''' that typically interact with the user via the display, the touchscreen, etc.
** On '''OP-TEE'''  side, the '''Trusted Applications (TA)''' relies on the OP-TEE core for secrets operations (not visible from the Linux and STM32Cube MPU Package)
* The '''STM32Cube MPU Package''' is running on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-M, and so only available on {{MicroprocessorDevice | device=15}}: it is based on HAL drivers and middlewares, like STM32 microcontrollers, completed with [[Coprocessor_management_overview|coprocessor management]] for interaction with the Cortex-A.<br />

The OpenSTLinux distribution is generated with [[OpenEmbedded]] build framework : the BSP components are modified open source software components, stored on github, whereas the middleware is directly takeninherited from communities. See our [[#Open Source Software (OSS) philosophy | Open Source Software (OSS) philosophy]] just below for further information.<br><br>


The figure below is clickable so that the user can directly jump to one of the sub-levels listed above.<br />

{{ImageMap|Image: STM32MPU Embedded Software architecture overview.png{{!}} frame {{!}} center {{!}} STM32MPU Embedded Software architecture overview.
rect 606 111 712 370 [[STM32CubeMP1 architecture]]
rect 152 291 246 349 [[OP-TEE overview]]
rect 254 291 349 349 [[TF-A overview]]
rect 367 291 463 349 [[U-Boot overview]]
rect 471 291 565 349 [[STM32 MPU Linux kernel overview]]
poly 363 267 466 267 466 353 250 353 251 289 363 289 [[Boot_chain_overview|Boot chain overview]]
rect 470 182 565 239 [[Linux application frameworks overview]]
rect 144 262 573 359 [[OpenSTLinux BSP architecture overview]]
rect 133 112 584 370 [[OpenSTLinux architecture overview]]
circle 58 426 33 [[:category:Platform configuration]]
rect 210 387 289 437 [[Security overview]]
rect 151 384 567 440 [[Arm Cortex-A7]]
rect 606 384 712 440 [[Arm Cortex-M4]]
rect 153 459 565 474 [[STM32MP13 microprocessor]]
rect 153 505 700 520 [[STM32MP15 microprocessor]]
}}
[[File:OpenSTLinux OE legend.png|center]]<br />


== Open Source Software (OSS) philosophy ==
The '''Open source software''' source code is released under a license in which the copyright holder grants users the rights to study, change and distribute the software to anyone and for any purpose<ref>https://en.wikipedia.org/wiki/Open-source_software</ref>.<br />

STMicroelectronics maximizes the using of open source software and contributes to those communities. Notice that, due to the software review life cycle, it can take some time before getting all developments accepted in the communities, so STMicroelectronics can also temporarily provide some source code on github<ref>[[STM32MP1 Distribution Package]]</ref>, until it is merged in the targeted repository.

== References ==<references/>

<noinclude>

{{PublicationRequestId | 9172 | 2018-10-26 | AlainF}}
[[Category:Architecture overview|00]]
[[Category:Embedded software components|00]]</noinclude>
Line 9: Line 9:
 
** On '''OP-TEE'''  side, the '''Trusted Applications (TA)''' relies on the OP-TEE core for secrets operations (not visible from the Linux and STM32Cube MPU Package)
 
** On '''OP-TEE'''  side, the '''Trusted Applications (TA)''' relies on the OP-TEE core for secrets operations (not visible from the Linux and STM32Cube MPU Package)
 
* The '''STM32Cube MPU Package''' is running on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-M, and so only available on {{MicroprocessorDevice | device=15}}: it is based on HAL drivers and middlewares, like STM32 microcontrollers, completed with [[Coprocessor_management_overview|coprocessor management]] for interaction with the Cortex-A.<br />
 
* The '''STM32Cube MPU Package''' is running on the Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-M, and so only available on {{MicroprocessorDevice | device=15}}: it is based on HAL drivers and middlewares, like STM32 microcontrollers, completed with [[Coprocessor_management_overview|coprocessor management]] for interaction with the Cortex-A.<br />
The OpenSTLinux distribution is generated with [[OpenEmbedded]] build framework : the BSP components are modified open source software components, stored on github, whereas the middleware is directly taken from communities. See our [[#Open Source Software (OSS) philosophy | Open Source Software (OSS) philosophy]] just below for further information.<br><br>
+
The OpenSTLinux distribution is generated with [[OpenEmbedded]] build framework : the BSP components are modified open source software components, stored on github, whereas the middleware is directly inherited from communities. See our [[#Open Source Software (OSS) philosophy | Open Source Software (OSS) philosophy]] just below for further information.<br><br>
   
 
The figure below is clickable so that the user can directly jump to one of the sub-levels listed above.<br />
 
The figure below is clickable so that the user can directly jump to one of the sub-levels listed above.<br />