2022-02-08 01:25 AM
Hi,
I'm using a custom buildroot build (2021.11) with linux 5.15.13, on the stm32mp157f-ev1 board.
I can load an .elf M4 firmware into the M4 core and start it, using /sys/class/remoteproc/remoteproc0
However, I can't use the debugging feature of STM32CubeIDE. I get an error in "final launch sequence".
It works fine when I'm running the standard ST linux distribution however.
Does anybody know, what is required for CubeIDE debugging to work on the M4 core in production mode?
I notice some ST stuff missing from linux 5.15.13, compared to the 5.10.61 linux used in the ST distribution: rproc_srm_core, rproc_srm_dev, tee_remoteproc, rpmsg_tty. Any of this required for CubeIDE debugging?
Solved! Go to Solution.
2022-02-10 04:07 AM
Hi @LudovicR and @Community member ,
I figured out the last detail now.
The MPU SSH was enabled and working ("Open Command Shell" works), but debug still failed.
Under Window -> Preferences -> Remote Development -> Remote Connections -> "Remote Services: SSH" -> "MPU SSH" -> "Advanced", I need to either disable "Use login shell", or change it to /bin/sh.
Now everything works fine!
Probably my issue was that I don't have /bin/bash, but only /bin/sh. Funny that MPU SSH -> Open Command Shell worked fine though.
Thanks for all your help, I'm very happy now! :)
2022-02-08 01:37 AM
Hi @MSven.2 ,
CubeIDE rely on some network service such as ssh, ifconfig and sftp server to load the .elf on target.
Since you are using a more recent / non validated version than the one certified by ST you may encounter few issues around this.
eg could you please display what give ifconfig on your target ?
Olivier
2022-02-08 01:52 AM
Hi Olivier,
Thanks for your help!
ssh is on the target, and scp, but not sftp.
ifconfig:
~ # ifconfig -a
can0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
NOARP MTU:16 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:68
eth0 Link encap:Ethernet HWaddr F2:74:59:89:C6:AE
inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:74 errors:0 dropped:0 overruns:0 frame:0
TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7714 (7.5 KiB) TX bytes:5008 (4.8 KiB)
Interrupt:61 Base address:0xc000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:340 (340.0 B) TX bytes:340 (340.0 B)
2022-02-08 02:12 AM
Hi @MSven.2 ,
ok ifconfig format looks good and CubeIDE might not have problem to grep the Ip address.
You should get green light and address on bottom right corner ( serial target widget ) right ?
sftp good track to follow ..
It's a core service on Yocto side .. I don't know for buildroot.
Olivier
2022-02-08 02:32 AM
Hi @Community member ,
Thanks, I got a bit further now.
I included sftp server in my target build, and now CubeIDE actually transfers the .elf file to the target, in /usr/local/projects/my_project_name.
However, I then get another error:
The m4 program does not start.
But, if I manually run the fw_cortex_m4.sh shellscript that CubeIDE made in /usr/local/projects/my_project_name, it works fine and runs the m4 program (after a "chmod o+x" to make it executable).
2022-02-08 02:36 AM
And once "chmod o+x" done, did you succeed to relaunch witch CubeIDE ?
2022-02-08 02:44 AM
@Community member ,
No, CubeIDE overwrites the script, and sets permissions to owner read/write only, no execute.
I made the script write protected, but CubeIDE still manages to overwrite it.
2022-02-09 02:32 AM
Hello @MSven.2
I understand you have updated your target device with sftp-server so you are able to browse it from an xterm of you Linux PC with "sftp root@192.168.7.1".
Could you please open connections inside STM32CubeIDE using menu:
Window > Show View > Otrhers.. Connections > Connections
and check if "MPU SSH" is present
If not please add it, with New Connection icon.
You should be able to open this connection, and Open Command Shell.
Then, you can try to debug production mode.
Hope this help,
LudovicR
2022-02-09 06:35 AM
@Community member and @LudovicR ,
I have figured out a workaround.
I need to first download the m4 firmware to the target, which creates the /usr/local/project/my_project_name files, including the fw_cortex_m4.sh file. This results in a failure in the STM32CubeIDE, as it can't start the downloaded firmware.
Then I need to "chmod +x fw_cortex_m4.sh", and then change the STM32CubeIDE settings, so the debug process does not download the target firmware. Then it works fine, and the STM32CubeIDE debugger works!
So the issue seems to be that STM32CubeIDE can't set the file permissions on the shellscript correctly to allow execution. But I can do this manually without issue when I log in with sftp. And STM32CubeIDE can do it on the STlinux...
Do you know how STM32CubeIDE sets the file permissions? Is there maybe a script on the STlinux build?
Thanks for all your help!
2022-02-10 02:02 AM
Hi @MSven.2 ,
I guess your issue is linked to "MPU SSH" connnection not present.
Could you try after setting it up?
LudovicR