AnsweredAssumed Answered

ARM mbed semihosting fs with stm32

Question asked by Campbell.Aaron.001 on Dec 15, 2016
Latest reply on Dec 22, 2016 by tarekb

One of the unique things about ARM mbed-enabled boards (such as my 32F746GDISCOVERY) is that they have a small storage area that is shows up in Windows or Linux when the board is connected by USB. An executable can be flashed to the board by dropping in onto the USB device.


This storage area is also accessible from the device itself using ARM semi-hosting, with the mbed "LocalFileSystem" (LocalFileSystem - Handbook | mbed ). I'm using FreeRTOS--not ARM mbed OS--but I want to use this semi-hosting file system for testing purposes.


I have used code from the files mbed-os/semihost_api.h and mbed-os/mbed_semihost_api.c to make this happen. It compiles fine and runs fine until it hits the semi-host breakpoint (assembly "bkpt 0xAB"), as which point it hangs. I assume it is waiting for something else, maybe even the host PC, to fulfill the semi-host request, and maybe it hangs because I haven't set up the board to handle it correctly...? I have read posts that describe how to enable semi-hosting to communicate with GDB, but I'm not sure if/how those apply here.


Am I on a wild goose chase? Does ARM mbed OS do something special to enable its LocalFileSystem that isn't available on other RTOS's? Or does anyone know of a step I could be missing here?