Looking for recommendation for BBB cross-compile toolchain and IDE for Windows

Hi,

I’m new in development for BeagleBone Black.
Can you, please, recommend good cross-compile toolchain and IDE for Windows ?

Thanks in advance

For which programming language(s) ?

Which OS will you be running on the BBB?

— Graham

BBB runs Debian 7
For C++/C

My personal favorite C/C++ IDE is Eclipse, with the C/C++ Development and Remote System Explorer (RSE) environment packages. I use the GCC cross compiler.

A reference on how to set this up, although needing some updating, due to newer current versions of Debian and Eclipse, is Derek Molloy’s book, website, and youtube videos.

Since the target system is Linux/Debian, things will run a lot smoother if you run Eclipse and the appropriate GCC cross compiler under Linux, rather than Windows. I use either a separate computer running Ubuntu, or Ubuntu running on a VM under Windows.

Setting up Eclipse on the Beaglebone for C++ Development …
http://derekmolloy.ie/beaglebone/setting-up-eclipse-on-the-beaglebone-for-c-development/
by Derek Molloy

Google: Eclipse, beaglebone, RSE, GCC ARM Crosscompiler

— Graham

Since no one addressed the question, but instead talked arounf it . . .

The only known( at least to me ) toolchain for the armhf software ABI, and WIndows binaries is offered by Linaro.

https://releases.linaro.org/14.11/components/toolchain/binaries/

Here is you read the release notes text it says which are Windows binaries. But since mingw is not required for Linux, you can pretty much rest assured that any toolchain with “mingw” in the file name is in reference to Windows binaries.

As for IDE’s . . . The two most flexible for setting up with a Custom toolchain would be Code::Blocks, and Eclipse. Personally, I prefer Code::Blocks because it’s run as a native executable versus Eclipes’ JRE requirement . . .

Just remember, you only want a tool chain that is abihf ( ARMv7 ) compatible.

Additionally. If you can live with using Linux. The default toolchains supplied with Ubuntu 14.04 work very well too. D.R. Derek Molloy has youtube videos on setup under Ubuntu, for a suitable toolchain and using Eclipse - I think.

William, Graham - thanks a lot for valuable inputs.

I’m sure that under Linux it will run better. But environment should comply with some existed IT infrastructure .

So, William, I’ll try your suggestion.

ivbsd1,

I would like to point out that I use Windows on a daily basis, and have since the 90’s. However I will also mention that I consider Windows a really bad choice of a development platform for this hardware.

For really simple applications, or probably even reasonably complex applications, cross compiling form Windows will work fine.

However, you will very soon start noticing problems. How do you get Linux API headers into Windows? How do you compile anything complex on Windows, like Qt, Nodejs, wireshark, or better still a Linux kernel, or kernel module ? The list goes on, and on and . . .

So, I think it would behoove you, or anyone to figure out how to get a Linux system for a development system. Here, I would like to point out that if you have a beaglebone, you already have one. So no need to cross compile, just compile natively on the Beaglebone. This will work fine for 99% of projects out there.

Additionally, if you’re worried about writing too much to flash media ( emmc or sdcard ), just create a 128M ramdisk, and compile your projects in that. You can also setup an NFS share, LInked with a Samba share so you can edit these files easily from within Windows . . . there are a ton of options out there . . .

William,

Thanks for input about using BBB itself.
But I am worried about scalability of this solution. Software tends to grow very quickly.
Is BBB powerful enough to compile relatively significant source code amount ?

And which IDE do you recommend to work natively on BBB? The same as you mentioned above ?

William,

Thanks for input about using BBB itself.
But I am worried about scalability of this solution. Software tends to grow very quickly.

What software tends to grow quickly ? You really need to think about what you’re doing. But if you’re writing all the code yourself, and maybe using some form of a Linux libc, and / or standard Linux API calls. You program is not going to be so large the Beaglebone can’t compile it.

Give me an example of what you plan on doing though . . .

Is BBB powerful enough to compile relatively significant source code amount ?

It depends, see above.

And which IDE do you recommend to work natively on BBB? The same as you mentioned above ?

I recommend no IDE. I use gcc from the cmd line, and I use several different text editors to write my code. My setup is a little different than many. I have an NFS server that shares a directory to the Beaglebone. On the beaglebone this is where I compile my code, if not in a ramdisk. The NFS server also run Samba, and exports this same directory out so I can connect to it from Windows. Then, I use Visual Studio Code, Sublime text 3, or whatever text editor I like in Windows to write code ( live ) on / for the Beaglebone. Then it’s just a matter of . . .

$ gcc somefile.c -o somefile -Wall /* and whatever other options I want and need /
$ chmod +x ./somefile /
File needs to be given executable permissions /
$ ./somefile /
Then the application does its thing . . .*/

$ gcc somefile.c -o somefile -Wall /* and whatever other options I want and need /
$ chmod +x ./somefile /
File needs to be given executable permissions /
$ ./somefile /
Then the application does its thing . . .*/

For larger projects though when using multiple C / header files. Using Make is probably a good idea.

Thanks for info.
I understand the mode of your work with BBB.

Hi William,

I’d like to take your advice and use native compilation on BBB but try to use some IDE anyway.
As I know, Visual Studio can be such IDE. VS can automatically copy and remote build your sources and launch your application with the debugger on target.
Are you familiar with non-commercial tool which is able to do this ?

Thanks

Hi ivbsd1!

Hi William,

I’d like to take your advice and use native compilation on BBB but try to use some IDE anyway.
As I know, Visual Studio can be such IDE. VS can automatically copy and remote build your sources and launch your application with the debugger on target.
Are you familiar with non-commercial tool which is able to do this ?

I use Geany, an OpenSource, lightweight IDE supporting a bunch of languages. You can configure any command to compile and run the binary (I don’t use this feature, I prefer to SSH to the target).
You can run it on the PC or at the BBB.

Willaim Hermanns:

Using Make is probably a good idea.

Since a lot of projects migrate from Make to CMake, checking this first is propably a better idea.

BR

Eclipse is a good solution. It supports remote file management and remote debugging. Search Google and Youtube for examples. I prefer to use TFTP and NFS so my BBB filesystem is hosted on my Ubuntu Desktop. I then use Eclipse for modifying the kernel as I can index the entire ARM kernel, so that I can jump directly to kernel functions with a simple CTRL Click. Search Google on how to setup Eclipse for Linux Kernel Indexing. Using GDBServer, you can use Eclipse to debug userspace apps. Once again, Google has several references on how to set this up. Derek Molly also has good material to help you with this:

http://derekmolloy.ie/beaglebone/

Regards,
John

Hi William,

I’d like to take your advice and use native compilation on BBB but try to use some IDE anyway.
As I know, Visual Studio can be such IDE. VS can automatically copy and remote build your sources and launch your application with the debugger on target.
Are you familiar with non-commercial tool which is able to do this ?

Thanks

Visual Studio used to be my favorite IDE many years ago before it got so bloated it became a pain for me to use. I do not like applications that are not instantly responsive and that describes VS currently, to put it nicely.

With that said, I have not used visual studio in a few years. Instead I use Visual Studio Code, which is completely different. Anyway, Visual Studio is not a friendly IDE when it comes to using anything other than Microsoft’s C/C++ compiler. So, you’re forced to know how, and write a plugin, or your forced to create, and use a make project within VS to use a gcc compiler.

I’ve never written a plug in for VS for this purpose. It seems overly complex, and I really never wanted to deal with that. However, I have used custom compilers with VS through make file projects. I have to say that it can work ‘ok’, but it’s not a complete solution.

As for compiling remotely through VS . . . never used or even knew that feature existed. But I’ve seen a similar feature in Eclipse . . .

But I have to ask. Why are you so determined to use an IDE anyway ? Are you afraid to learn how to use the toolchain you really should be learning to use ? IDEs make us lazy, less informed, and they also slow us down . . . there is a time and a place for IDE’s but I honestly do not think this is one such situation. Especially when all you need to learn is how to execute gcc from the command line, and which cmd line switches to use. Seriously, it’s not that hard.

What feature does an IDE give you that you absolutely can not live without ?

Guys, thanks for all for excellent inputs.

Today I succeeded to set environment of Visual Studio with Visual GDB for native compilation on BBB. For now, it answers my needs.

TJF, thanks for idea about Geany. I’ll check this because I have to move to open source IDE when team will be bigger.

William, you ask philosophical questions about IDE. I don’t intend to discuss this.
Everyone has own requirements and what is good for one case may be bad for other.

William, you ask philosophical questions about IDE. I don’t intend to discuss this.

Everyone has own requirements and what is good for one case may be bad for other.

Actually, no, I asked no such questions.