Closed AndreyBondarev closed 4 years ago
Hi @AndreyBondarev !
IMU383 debugging can be done only with old OOCD driver. Workaround - debug in OpenIMU330 mode.
Can you please describe the problem in more detail? What does OpenIMU330 mode
mean? If I recall correctly we downgraded the OOCD package because L432 target didn't work with the latest OOCD on your machine.
OpenIMU330 direct code loading via ST-Link probe fails with old OOCD. Only works with debugger.
Does this board have a bootloader? Because according to the linker script the firmware is uploaded at address ORIGIN = 0x08000000
but at the same time, there is an offset specified in the board manifest. Which one is correct?
Hi Valerii.
OpenIMU330 and IMU383 is essentially same platform but different applications. IMU383 has bootloader and OpenIMU330 does not since application size is big and bootloader just does not fit. Potentially IMU383 can be debugged without bootloader (code relocated to 0x08000000) and then built for bootloader configuration but it’s not optimal solution since application interacts with bootloader and this part cannot be debugged. Downgraded OOCD driver allows to debug with bootloader. But If I’m not mistaken downgraded version is not part of the standard installation (unless it changed).
Thank you.
Andrey
From: Valerii Koval [mailto:notifications@github.com] Sent: Monday, October 7, 2019 5:01 AM To: Aceinna/platform-aceinna_imu platform-aceinna_imu@noreply.github.com Cc: Andrey Bondarev abondarev@aceinna.com; Mention mention@noreply.github.com Subject: Re: [Aceinna/platform-aceinna_imu] IMU383 debugging can be done only with old OOCD driver (#11)
Hi @AndreyBondarevhttps://github.com/AndreyBondarev !
IMU383 debugging can be done only with old OOCD driver. Workaround - debug in OpenIMU330 mode.
Can you please describe the problem in more detail? What does OpenIMU330 mode mean? If I recall correctly we downgraded the OOCD package because L432 target didn't work with the latest OOCD on your machine.
OpenIMU330 direct code loading via ST-Link probe fails with old OOCD. Only works with debugger.
Does this board have a bootloader? Because according to the linker scripthttps://github.com/Aceinna/platform-aceinna_imu/blob/develop/examples/OpenIMU330BI/IMU/ldscripts/stm32l431cb.ld the firmware is uploaded at address ORIGIN = 0x08000000 but at the same time, there is an offset specified in the board manifesthttps://github.com/Aceinna/platform-aceinna_imu/blob/develop/boards/OpenIMU330.json#L28. Which one is correct?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/Aceinna/platform-aceinna_imu/issues/11?email_source=notifications&email_token=AIOSZ3RUTCA3OC3FJXSK2HLQNMQG5A5CNFSM4I5SSZG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAQB3SA#issuecomment-538975688, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AIOSZ3QKPZG6CJXYSYH6FGTQNMQG5ANCNFSM4I5SSZGQ.
I deleted the flash_offset
field from the OpenIMU330BI manifest (now the firmware is uploaded to the correct location), but the application still doesn't start. Experimentally I found that if I compile the firmware in debug mode (simply with flags -Og, -ggdb) it works as expected. Is it possible that there is undefined behavior somewhere in the code or maybe the compiler optimized something out?
Looks like compiler optimizes things the way that code does not properly start (somwhere on low level). -Og optimization works well.
Working now