Mbed compiler - "LPC11U68 not a valid target"

Hi,

New here. Just went through the Hello World tutorial and noted that mbed’s online compiler, as well as the standalone, don’t support LPC11U68 as a valid target. Refuses to compile and generate a bin.

Anybody know how to fix this, or maybe recommend an alternate toolchain? Pretty grumpy since I just bought a Pokitto without testing the toolchain first.

1 Like

Hi,
Search for the Femto IDE in the forum.

1 Like

Thank you for the recommendation. The simulator does not work on Mac (no darwin target), but it at least builds a binary. Will try Windows later.

  1. Since this is just a Chromium app, is there some reason why it’s not hosted online somewhere?)
  2. Is there going to be any effort to update the homepage to include this as the official IDE? It’s generally a bad idea to direct new users to things that don’t work.
  3. Has anyone tried compiling Femto on Raspbian? (Linux executable should be appropriately named for its architecture)

Here I’ve written how I compile on GNU/Linux with GNU ARM toolchain: [Tutorial][Advanced]4.CLI building on GNU/Linux/Unix.

2 Likes

Thanks, I’ll give this a shot on the Pi 400 in a bit!

3 Likes

Welcome!

I am super curious how this goes for you, I’ve been keeping an eye on that since launch. How do you like it?

I briefly took a look at doing this on aarch64, but didn’t get too far because I wasn’t sure how to work with Electron on aarch64 (my Pinebook Pro) But I will look again when I get more time.

Femto IDE is my tool of choice which I use on my desktop. There are more details: https://talk.pokitto.com/t/tool-femtoide/

Hope to see you around.

Thanks for the recommendation, but this fails with quite a few errors.

Initially, I had to update:
COMPILE_FLAGS += -std=gnu++17

Then, there were a number of broken includes within the Pokitto library itself. I had to change a number of headers to point to the files directly. I don’t know why this would happen (e.g. #include 'POKITTO_LIBS/LibAudio/LibAudio' instead of #include <LibAudio>)

I got tired of messing with it, here’s the last result from make:

make error output
/home/pi/Downloads/gccarm/gcc-arm-none-eabi-9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld: PokittoLib/POKITTO_CORE/PokittoDisplay.o: in function `Pokitto::Display::fillRect(short, short, short, short)':
/home/pi/Projects/pokitto-hw/BUILD/../PokittoLib/POKITTO_CORE/PokittoDisplay.cpp:488: undefined reference to `Pokitto::Display::fillRectangle(int, int, int, int)'
/home/pi/Downloads/gccarm/gcc-arm-none-eabi-9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld: /home/pi/Projects/pokitto-hw/BUILD/../PokittoLib/POKITTO_CORE/PokittoDisplay.cpp:488: undefined reference to `Pokitto::Display::fillRectangle(int, int, int, int)'
/home/pi/Downloads/gccarm/gcc-arm-none-eabi-9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld: PokittoLib/POKITTO_CORE/PokittoDisplay.o: in function `Pokitto::Display::print_char(unsigned char, unsigned char, unsigned char)':
/home/pi/Projects/pokitto-hw/BUILD/../PokittoLib/POKITTO_CORE/PokittoDisplay.cpp:744: undefined reference to `Pokitto::Display::bufferChar(short, short, unsigned short)'
/home/pi/Downloads/gccarm/gcc-arm-none-eabi-9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld: /home/pi/Projects/pokitto-hw/BUILD/../PokittoLib/POKITTO_CORE/PokittoDisplay.cpp:744: undefined reference to `Pokitto::Display::bufferChar(short, short, unsigned short)'
/home/pi/Downloads/gccarm/gcc-arm-none-eabi-9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld: /home/pi/Projects/pokitto-hw/BUILD/../PokittoLib/POKITTO_CORE/PokittoDisplay.cpp:744: undefined reference to `Pokitto::Display::bufferChar(short, short, unsigned short)'
/home/pi/Downloads/gccarm/gcc-arm-none-eabi-9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld: /home/pi/Projects/pokitto-hw/BUILD/../PokittoLib/POKITTO_CORE/PokittoDisplay.cpp:744: undefined reference to `Pokitto::Display::bufferChar(short, short, unsigned short)'
/home/pi/Downloads/gccarm/gcc-arm-none-eabi-9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld: /home/pi/Projects/pokitto-hw/BUILD/../PokittoLib/POKITTO_CORE/PokittoDisplay.cpp:744: undefined reference to `Pokitto::Display::bufferChar(short, short, unsigned short)'
/home/pi/Downloads/gccarm/gcc-arm-none-eabi-9-2020-q2-update/bin/../lib/gcc/arm-none-eabi/9.3.1/../../../../arm-none-eabi/bin/ld: PokittoLib/POKITTO_CORE/PokittoDisplay.o:/home/pi/Projects/pokitto-hw/BUILD/../PokittoLib/POKITTO_CORE/PokittoDisplay.cpp:744: more undefined references to `Pokitto::Display::bufferChar(short, short, unsigned short)' follow
collect2: error: ld returned 1 exit status
make[1]: *** [/home/pi/Projects/pokitto-hw/Makefile:348: game.elf] Error 1
make: *** [Makefile:27: all] Error 2

@torbuntu: Yep, Femto on Windows is currently is the only option! I gave a quick shot running Femto via npm’s http-server but no luck. Must be something I am missing.

2 Likes

Hello @shram86 and welcome

The problem with the mbed online library started pretty recently. I am working on it.

I noticed you joining the Pokitto team on mbed and was ready for this. I’ll try to get this sorted asap.

3 Likes

That makefile is for a much older version of the PokittoLib. It needs to add LibAudio (and probably a few other paths as well) to the compiler’s includes list. It also doesn’t know about cpp and s files that were added later, so those will be missing when the linker is called.

Electron = Chromium + NodeJS. It’s not just a webpage, the nodejs part is necessary to access the file system, call gcc/gdb/nm, and communication with the emulator. While there were plans to support running in a browser with the compiler in the cloud (similar to PyInSky or ProjectABE), they were dropped.

Replacing the x86 binaries (Electron, arm-none-eabi-gcc, emulator) with a build for Raspberry Pi should result in a working IDE. It would probably be a good idea to delete the lsp.js plugin to speed things up and consume less RAM. The only real problem is that Electron doesn’t have official support for it, last I checked.

At least the emulator works on Mac, you can use that instead.
Hey @tuxinator2009, did you ever document your work on Mac support for the simulator? Was it ready for a PR?

3 Likes

Thanks for the detailed response! I appreciate it. :slight_smile:

3 Likes

I have asked @brendonnxp about this. Let’s see if he can help.

Meanwhile, I am continuing to look at this

1 Like

I got it to build. Haven’t tested if works yet

EDIT: did not run in emulator, not looking good

1 Like

I still haven’t figured out the security issue on Mac. I discovered xcode is needed cause gcc doesn’t provide nm on Mac. I got it to build and run but everytime its recompiled you have to try launching it, then go into Mac’s security settings and allow the program to run, then you have to launch the program directly not through the IDE. This has to be done everytime the binary gets built making it too much of a hassle to mark as “useable”.

2 Likes

I’ve pinged Arm about it and they are looking at what can be done from here.

5 Likes

Thank you Brendon!!

2 Likes

Whoa! THE Brandon?! Awesome :smiley:

1 Like

Brendon.

1 Like

Argh that’s what I get for typing names on a phone with aggressive auto autowreck :sweat_smile:

2 Likes

Has anyone heard any news about this?

Unfortunately not. We need to change the examples over to FemtoIDE

1 Like