-
Notifications
You must be signed in to change notification settings - Fork 6.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nucleo_f091rc: Linking issue since "align __data_ram/rom_start/end linker" (65a2de84a9d5c535167951bf1cf610c4f7967ea5) #38591
Comments
@tejlmand Would you mind having a look? |
@tejlmand I've made some investigation on this point. In 65a2de8, you mention:
I can see this is the case on a target not impacted by the change (nucleo_f103rb).
If I'm reading thing correctly:
So the base assumption doesn't work. I'm continuing the analysis, but don't hesitate to get in touch if this rings a bell to you. Edit: Impact of the specific sram vector:
|
@JordanYates It seems you introduced First question, since you disabled |
The PR was cleaning up usage of
As I don't use STM, I wasn't willing to introduce any behavior changes, so section names and symbols were not changed in my PR. Perhaps the act of moving the section declaration caused the issue, but that seems unlikely, and its using the standard |
ok
Sure, your PR was change was introduced earlier than 65a2de8. |
Fixes: zephyrproject-rtos#38591 The commit 65a2de8 aligned the data linker symbol for sections and regions. The data region symbol start has been placed outside the sections thus being defined as the address of the region before alignment of the first section in the data region, usually the `datas` section. The symbol defining the start address of the data section is after section alignment. In most cases the address of the data region start and datas section start will be identical, but not always. The data region symbol is a new linker symbol and existing code has been depending on the old data section start symbol. Thus, the update to the use of the data region start symbol instead of data ram start symbol thus results in a different address when the section is aligned to a different address. To ensure the original behavior in all cases, the data region start address is now moved inside the data section. Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
Fixes: zephyrproject-rtos#38591, zephyrproject-rtos#38207, zephyrproject-rtos#37861 The commit 65a2de8 aligned the data linker symbol for sections and regions. The data region symbol start has been placed outside the sections thus being defined as the address of the region before alignment of the first section in the data region, usually the `datas` section. The symbol defining the start address of the data section is after section alignment. In most cases the address of the data region start and datas section start will be identical, but not always. The data region symbol is a new linker symbol and existing code has been depending on the old data section start symbol. Thus, the update to the use of the data region start symbol instead of data ram start symbol thus results in a different address when the section is aligned to a different address. To ensure the original behavior in all cases, the data region start address is now moved inside the data section. Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
The root cause of zephyrproject-rtos#38591 was region symbols being placed before the section description for data region. Some region start symbols are placed before section description, other region start symbols are placed inside the first section in the region and thus identical to the sections own first symbol. To support both schemes with the linker generator, a new `SYMBOL SECTION` argument has been added to the zephyr_linker_group() function. The ld_script.cmake linker script generator has been updated to support the new argument so that generated ld linker script has identical behavior to the templated ld linker scripts. Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
The root cause of zephyrproject-rtos#38591 was region symbols being placed before the section description for data region. To support both schemes with the linker generator, a new `SYMBOL SECTION` argument has been added to the zephyr_linker_group() function. This commit updates the arm/linker.cmake CMake linker file to use the new `SYMBOL SECTION` argument for the data region group and text region group so that those two groups now behave identical to the behavior when using the cortex_m linker.ld template. Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
Fixes: #38591, #38207, #37861 The commit 65a2de8 aligned the data linker symbol for sections and regions. The data region symbol start has been placed outside the sections thus being defined as the address of the region before alignment of the first section in the data region, usually the `datas` section. The symbol defining the start address of the data section is after section alignment. In most cases the address of the data region start and datas section start will be identical, but not always. The data region symbol is a new linker symbol and existing code has been depending on the old data section start symbol. Thus, the update to the use of the data region start symbol instead of data ram start symbol thus results in a different address when the section is aligned to a different address. To ensure the original behavior in all cases, the data region start address is now moved inside the data section. Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
The root cause of #38591 was region symbols being placed before the section description for data region. Some region start symbols are placed before section description, other region start symbols are placed inside the first section in the region and thus identical to the sections own first symbol. To support both schemes with the linker generator, a new `SYMBOL SECTION` argument has been added to the zephyr_linker_group() function. The ld_script.cmake linker script generator has been updated to support the new argument so that generated ld linker script has identical behavior to the templated ld linker scripts. Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
The root cause of #38591 was region symbols being placed before the section description for data region. To support both schemes with the linker generator, a new `SYMBOL SECTION` argument has been added to the zephyr_linker_group() function. This commit updates the arm/linker.cmake CMake linker file to use the new `SYMBOL SECTION` argument for the data region group and text region group so that those two groups now behave identical to the behavior when using the cortex_m linker.ld template. Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
Fixes: zephyrproject-rtos#38591, zephyrproject-rtos#38207, zephyrproject-rtos#37861 The commit 65a2de8 aligned the data linker symbol for sections and regions. The data region symbol start has been placed outside the sections thus being defined as the address of the region before alignment of the first section in the data region, usually the `datas` section. The symbol defining the start address of the data section is after section alignment. In most cases the address of the data region start and datas section start will be identical, but not always. The data region symbol is a new linker symbol and existing code has been depending on the old data section start symbol. Thus, the update to the use of the data region start symbol instead of data ram start symbol thus results in a different address when the section is aligned to a different address. To ensure the original behavior in all cases, the data region start address is now moved inside the data section. Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
The root cause of zephyrproject-rtos#38591 was region symbols being placed before the section description for data region. Some region start symbols are placed before section description, other region start symbols are placed inside the first section in the region and thus identical to the sections own first symbol. To support both schemes with the linker generator, a new `SYMBOL SECTION` argument has been added to the zephyr_linker_group() function. The ld_script.cmake linker script generator has been updated to support the new argument so that generated ld linker script has identical behavior to the templated ld linker scripts. Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
The root cause of zephyrproject-rtos#38591 was region symbols being placed before the section description for data region. To support both schemes with the linker generator, a new `SYMBOL SECTION` argument has been added to the zephyr_linker_group() function. This commit updates the arm/linker.cmake CMake linker file to use the new `SYMBOL SECTION` argument for the data region group and text region group so that those two groups now behave identical to the behavior when using the cortex_m linker.ld template. Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
Describe the bug
Since merge of 65a2de8,
Some tests are not booting on nucleo_f091rc platform.
Reverting this commit gets the board booting again
Similar issue seen on : nucleo_l073rz
To Reproduce
Steps to reproduce the behavior:
The text was updated successfully, but these errors were encountered: