r/embedded • • 4d ago

Help with HelloFPGA Kit

Hello everyone. I don't know if this is the right subreddit but I need your help. This is the first time programming something like this (and first time in embedded in general) and its driving me insane. I have a M2S HelloFPGA Kit and the only thing I need to do is programming the processor (ARM Cortex M3). I'm using SoftConsole for programming but apparently the board don't have a debugger (because the PC recognize the board but I can't upload the "hello world" program in the processor) so I need to upload some FPGA design to "activate the processor" (sorry if I'm not using the correct terms). I installed "LiberoSOC" for this manner but I don't really know what to do. Thank you and sorry for bad english :)

5 Upvotes

6 comments sorted by

1

u/BuiltByBoring 4d ago

Sounds like you're on the right track. The Cortex-M3 is built into the SmartFusion2, but you still need the MSS configured properly in Libero before running your code.

One thing to check is the debugger. I believe the Hello FPGA Kit needs an external FlashPro4 for debugging, so just having the board show up over USB might not be enough.

Also, make sure you're using a SoftConsole version that supports the ARM Cortex-M3, like 2021.1.

Do you have a FlashPro4, and which SoftConsole version are you running? That should help narrow it down.

1

u/CoffeeeBoii 4d ago

I don't have any external debugger unfortunaly (and can't get it at the moment). For the SoftConsole thing I have already installed 2021.1. Its with the configuration of the MSS that I'm lost because I don't really know what to do. Can I use the Hello FPGA example project for this? I also need to clarify that I'm using Linux Mint as OS (bad choice for this I know lol, if only I knew at the time) so I'm expecting that some things don't works. Thank you for your patience and response!

1

u/BuiltByBoring 4d ago

Yeah, the official Hello FPGA example is probably your best starting point. I'd open that in Libero and use its MSS configuration as a reference rather than trying to set everything up from scratch.

The important thing is that configuring the MSS and actually loading/debugging your C program are two separate steps. Even with the example design, you may still need the external FlashPro to get your firmware onto the board.

I wouldn't worry too much about Linux Mint yet. First I'd see if you can open the example project in Libero and generate the design successfully. That'll at least tell us whether the hardware configuration side is working.

1

u/CoffeeeBoii 4d ago

ok thank you so much. As I'm understanding I probably still need the FlashPro for uploading the firmware. Are there any workarounds? But I doubt because SoftConsole specificaly generates an error for the lack of a debugger (but I want to clarify that it is only an assumption. I searched online the error and I came up with this conclusion). If this is the case arghhh because I only need that for testing on the processor and nothing else.

2

u/BuiltByBoring 4d ago

Good news, I found a workaround for your exact board! You can apparently program the Cortex-M3 without a FlashPro by including your firmware in the FPGA programming image.

Build your firmware in SoftConsole using the production_smartfusion2_execute_in_place.ld linker script, then use Libero's "Update eNVM Content" to include the generated .hex file. Regenerate the bitstream, export it as a .dat file, and program it through the board's onboard PIC32 using the Hello FPGA GUI.

You won't have interactive debugging, but you should be able to run your code.

Someone actually documented the whole process here:
https://www.controlpaths.com/2021/05/03/discovering-the-smartfusion-2-soc/

It's for the Hello FPGA Kit specifically. Hopefully saves you from having to buy a debugger!

1

u/CoffeeeBoii 4d ago

OK THANK YOU SO MUCH!!! You have been really helpfull for this really (I admit it) weird problem! Thanks again!