cancel
Showing results for 
Search instead for 
Did you mean: 

How do I port the SBSFU to the H757 board?

AKhri.1
Associate II

For the past few weeks I have been trying to port the NUCLEO-H753ZI SBSFU implementation to the H757 and have run into several problems. My development environment is linux.

First of all, I could not build the binaries succesfully without massive modifications to the project. First I had to install python modules and point the scripts to the proper python version (python3). Second, I had to fix paths that were misspelled within the projects' settings. Finally, I had to fix an issue where the makefile of the user application included the se_interface_app.o file twice in the same command, resulting in an error.

Only after all of this was I able to produce a binary that was programmable onto the board, but even after all this when I would try to send a .sfb file through minicom the SBSFU would still throw an error by saying the firmware was too big.

I have read the integration guide many times over and I still don't understand what steps I need to make to adapt the project to the H757. I find the writing to be jumping between many topics, but never seems to describe in detail what needs to be done.

For example, the board I am working on is a dual-bank board, the guide mentions that the NUCLEO-L476RG implementation has an example of the low level dual bank Flash interface, but the guide never really tells you what to do and glosses over this point of information.

If anyone has ever done work adapting the SBSFU could you please help me understand what exactly needs to be done to adapt a project to a board?

Thank you in advance.

1 ACCEPTED SOLUTION

Accepted Solutions
Jocelyn RICARD
ST Employee

Hello,

The SBSFU had some few issues when it comes to build in Linux environment.

There are sometimes some "\" remaining from windows ...

About Python, I don't get your point. This is just needed to manage crypto operations to prepare the binaries

The issue with se_interface_app.o came with last release of STM32CubeIDE because of a change to fix another important linker issue.

To be able to use MINICOM, you have to set specific flag in the code. This usually works fine except on old Linux release.

For the porting, all you need to change is located in the Target directory. And you need to understand all the points.

1- flash write/erase: if starting from project with single bank, you need to manage dual bank. For this you usually have example in the STM32CubeFW. But here both are dual bank, so very probably nothing to do

2- the USART/button/led: but this I guess this is no big deal

3- the security setting: you need to adapt it to your target and needs: for this you need to compare option bytes between original project on your target and see if something is relevant to manage. The MPU settings may need to be adapted if you change the SBSFU mapping. Here what is important in your case is the dual core support. You have a small chapter in the integration guide (3.3 dual core adaptation)

Anyway is is difficult to have a complete documentation covering all the cases.

Best regards

Jocelyn

View solution in original post

1 REPLY 1
Jocelyn RICARD
ST Employee

Hello,

The SBSFU had some few issues when it comes to build in Linux environment.

There are sometimes some "\" remaining from windows ...

About Python, I don't get your point. This is just needed to manage crypto operations to prepare the binaries

The issue with se_interface_app.o came with last release of STM32CubeIDE because of a change to fix another important linker issue.

To be able to use MINICOM, you have to set specific flag in the code. This usually works fine except on old Linux release.

For the porting, all you need to change is located in the Target directory. And you need to understand all the points.

1- flash write/erase: if starting from project with single bank, you need to manage dual bank. For this you usually have example in the STM32CubeFW. But here both are dual bank, so very probably nothing to do

2- the USART/button/led: but this I guess this is no big deal

3- the security setting: you need to adapt it to your target and needs: for this you need to compare option bytes between original project on your target and see if something is relevant to manage. The MPU settings may need to be adapted if you change the SBSFU mapping. Here what is important in your case is the dual core support. You have a small chapter in the integration guide (3.3 dual core adaptation)

Anyway is is difficult to have a complete documentation covering all the cases.

Best regards

Jocelyn