Hi Freddie,
ChibiOS already targets flash memory for code flashing and ITCM via ART
accelerator for code execution. This is done to achieve high predicibility
which is almost mandatory in RT applications. Accessing the code via AXIM
the cache will be involved reducing predicibility and performances.

Now, with the previous build of OpenOCD this code works and can be debugged
like a charm. There is any specific reason that makes OpenOCD unable to
read/write the ITCM VMA?
Thanks
RM

On Tue, 2 Apr 2019, 12:25 Freddie Chopin, <[email protected]> wrote:

> On Mon, 2019-04-01 at 14:18 +0200, Rocco Marco Guglielmi wrote:
> > Hi all,
> > this is the first time I am writing to this mailing list and I wasn't
> > able to find such a list of rule or similar so I ask you to notice me
> > if I am doing something wrong.
> >
> > I have built OpenOCD from GIT master using MSYS2 under Windows (Open
> > On-Chip Debugger 0.10.0+dev-00746-g8f518d359 (2019-03-14-17:18)). It
> > works like a charm with many of the targets I usually use. But I have
> > a problem with STM32F746G. OpenOCD is able to recognize the target
> > but is unable to flash and run a .elf file.
> >
> > The procedure is executed using an Eclipse-based IDE known as
> > ChibiStudio. The procedure was working with all the previous versions
> > of OpenOCD built using the same method i.e. MSYS2 + packagebuild from
> > Alex Pux (https://github.com/Alexpux/MINGW-packages.git)
> >
> > Anyway, I have collected some logs using -d3 option maybe this would
> > help you to detect some sort of bug.
> >
> > Aside to find out a solution to provide a working copy of OpenOCD to
> > the ChibiOS community, I hope this could be helpful to OpenOCD
> > developers to improve reliability of this amazing project. I am not
> > inside all the mechanism of building and methodologies used to
> > debug.
> > Anyway, let me know if I can do something else to help you.
> > Ciao,
> > RM
>
> To flash STM32F7 the code has to be linked to 0x8000000 address, not
> the 0x200000. To use the ITCM bus for code execution, you have to use
> separate VMA and LMA addresses - VMA is for execution (0x200000) and
> LMA is for flashing (0x8000000).
>
> For an example, see here:
>
> https://github.com/DISTORTEC/distortos/blob/master/source/board/ST_32F746GDISCOVERY/ST_32F746GDISCOVERY.ld
>
> I've been working with this board and distortos for a while now and I
> use OpenOCD from git too.
>
> It is also a good idea to force hardware breakpoints
> (`gdb_breakpoint_override hard` or `monitor gdb_breakpoint_override
> hard` via GDB) and use hardware breakpoints wherever possible (for
> example `thbreak main` instead of `tbreak main`). Even then - at least
> for me - debugging via GDB only works after I flash the chip in a
> separate step, but this is not such a big inconvenience for me to dig
> deeper.
>
> For a start it will be much easier to just use 0x8000000 for both
> flashing and executution - this way you won't need to deal with all the
> strange things listed above.
>
> Regards,
> FCh
>
>
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to