Hi Jan, Can you verify that problem really was incorrect settings for DTCM in STM32F74x and https://github.com/apache/mynewt-core/pull/3364 fixes your problem?
br Jerzy pt., 24 sty 2025 o 13:16 Jerzy Kasenberg <jerzy.kasenb...@codecoup.pl> napisał(a): > Hi Jan, > > Maybe start with just blinky application to see if problem is build > related. > With blinky you could safely share elf file so I could check if everything > looks ok. > > Maybe you created image from your build with newt tool that added image > header that you don't want since you don't have mcuboot as bootloader. > Try loading elf file with debugger directly without using newt load. > > br > Jerzy > > > > pt., 24 sty 2025 o 11:50 Jan Clement <jan.clem...@cm-electronics.de> > napisał(a): > >> Hey Jerzy, >> >> thanks for your help! >> >> I already changed the adress of slot 0 in the bsp but this didn't >> resolve the problem. I tried using my old linker script, and now the >> problem counter is at least in the right range. Below is my *.map file: >> >> > >> > There are no discarded input sections >> > >> > Memory Configuration >> > >> > Name Origin Length Attributes >> > FLASH 0x08000000 0x000f8000 xr >> > ITCM 0x00000000 0x00004000 xr >> > DTCM 0x20000000 0x00010000 xrw >> > DATA_NO_CACHE 0x20010000 0x00000200 xrw >> > RAM 0x20010200 0x0003fe00 xrw >> > SDRAM 0xc0000000 0x00f80800 xrw >> > *default* 0x00000000 0xffffffff >> > >> > Linker script and memory map >> > >> > START GROUP >> > .... >> > END GROUP >> > LOAD >> C:/msys64/mingw64/bin/../lib/gcc/arm-none-eabi/14.2.1/thumb/v7e-m/nofp\libgcc.a >> > START GROUP >> > LOAD >> C:/msys64/mingw64/bin/../lib/gcc/arm-none-eabi/14.2.1/thumb/v7e-m/nofp\libgcc.a >> > ... >> > END GROUP >> > 0x00000000 _imghdr_size = 0x0 >> > >> > .glue_7 0x08000000 0x0 >> > .glue_7 0x08000000 0x0 linker stubs >> > >> > .glue_7t 0x08000000 0x0 >> > .glue_7t 0x08000000 0x0 linker stubs >> > >> > .vfp11_veneer 0x08000000 0x0 >> > .vfp11_veneer 0x08000000 0x0 linker stubs >> > >> > .v4_bx 0x08000000 0x0 >> > .v4_bx 0x08000000 0x0 linker stubs >> > >> > .SDRAM 0xc0000000 0x0 >> > 0xc0000000 . = ALIGN (0x4) >> > *(.SDRAM) >> > >> > .DATA_NO_CACHE 0x20010000 0x0 >> > 0x20010000 . = ALIGN (0x4) >> > 0x20010000 _s_ram_nocache = . >> > *(.ram_nocache) >> > 0x20010000 . = ALIGN (0x4) >> > 0x20010000 _e_ram_nocache = . >> > >> OUTPUT(C:/Users/admin/git/proj/bin/targets/demo/app/apps/iptest/iptest.elf >> elf32-littlearm) >> > LOAD linker stubs >> >> For testing I changed the flash adress to 0x08000000, in my old setup >> this worked and let me use the system without bootloader. >> >> Do you have any idea what could be wrong? As always I'm very thankful >> for tips and hints, I really have to get this going fast.. >> >> Regards >> Jan >> >> Am 22.01.2025 um 17:52 schrieb Jerzy Kasenberg: >> > Hi Jan, >> > >> > I checked some more. >> > BSP you mentioned has SLOT0 located at 0x08020000, you mentioned >> 0x08010000 >> > as your starting point so you may check this. >> > >> > I also checked that if you specify in your target syscfg.yml (or in >> > application or bsp) >> > INCLUDE_IMAGE_HEADER: 0 >> > it should have same effect as _imghdr_size = 0x0; >> > basically it means that image header (32 bytes for MCUBOOT) is not to be >> > reserved. It can be verified in .map file look for something like that: >> > >> > .image_header >> > *(.image_header) >> > >> > .interrupts 0x08040000 0x1f8 >> > 0x08040000 . = ALIGN (0x4) >> > 0x08040000 __isr_vector = . >> > 0x08040000 __isr_vector_start = >> . >> > >> > This was taken from STM32F767 which has slot0 located at 0x8040000 >> > Following fragment is from build that has INCLUDE_IMAGE_HEADER: 1 >> > >> > .image_header 0x08040000 0x20 >> > *(.image_header) >> > .image_header 0x08040000 0x20 >> > >> H:\msys64\home\Jerzy\work\blinky\bin\targets\nucleo-f767zi-iptest\app\@apache-mynewt-core\mgmt\image_header\@apache-mynewt-core_mgmt_image_header.a(image_header.o) >> > 0x08040000 image_header >> > >> > .interrupts 0x08040020 0x1f8 >> > 0x08040020 . = ALIGN (0x4) >> > 0x08040020 __isr_vector = . >> > 0x08040020 __isr_vector_start = >> . >> > >> > So you can see that interrupt vectors are moved 32 bytes allowing for >> newt >> > to insert image header. >> > >> > In any case if your custom bootloader jumps to 0x8010000 it should not >> work >> > before as well >> > _imghdr_size = 0 means that there is not space for image header but >> > interrupt vectors starting from initial SP are at the very beginning of >> you >> > build. >> > Unless you have something special at 0x8010000 your code should jump to >> > address store in 0x08010004 >> > >> > If your share some fragment of map file I can help you some more. >> > >> > br >> > Jerzy >> > >> > śr., 22 sty 2025 o 16:36 Jerzy Kasenberg <jerzy.kasenb...@codecoup.pl> >> > napisał(a): >> > >> >> Hi Jan, >> >> >> >> Easiest way for you to proceed is to get old linker scripts that worked >> >> for you before >> >> Then instead of having bsp.yml file with line >> >> >> >> bsp.linkerscript: autogenerated >> >> >> >> set bsp.linkerscript to what it was before >> >> >> >> I'll check your case to see how to manage it using autogenerated >> scripts >> >> and let you know later >> >> >> >> br >> >> Jerzy >> >> >> >> śr., 22 sty 2025 o 13:44 Jan Clement <jan.clem...@cm-electronics.de> >> >> napisał(a): >> >> >> >>> Hello Devlist, >> >>> >> >>> during my process of upgrading apache mynewt from 1.9.0 to 1.13.0 I >> now >> >>> face the problem, that the binaries I generate are not running on my >> >>> system. >> >>> >> >>> As a starting point I used the iptest application and the >> >>> stm32f7discovery bsp package. This worked with the old mynewt >> version. I >> >>> run my own bootloader implementation, after booting, it jumps to >> >>> 0x08010000 and starts executing from there. For this to work in the >> old >> >>> implementation I had to set >> >>> >> >>> > _imghdr_size = 0x0; /* size = 0 for direct flashing */ >> >>> in the linker script. >> >>> >> >>> I can't find any corresponding setting in the new version. The only >> >>> thing I found is: >> >>> >> >>> > INCLUDE_IMAGE_HEADER >> >>> which I set to 0. >> >>> >> >>> For testing purposes I also tried to flash the image directly and use >> it >> >>> without the bootloader, this also didn't work. >> >>> >> >>> When I debug my application I get following output: >> >>> >> >>> > xPSR: 00000000 pc: 00000000 msp: 0x96f3b83c >> >>> >> >>> It seems that my program counter is not set correctly. >> >>> >> >>> Any help is greatly appreciated, thanks! >> >>> >> >>> Jan >> >>> >> >> >> > >> >>