Yet another newbie "how to get started"

I received a Beaglebone Black to develop a homework project on. I plugged in the board to my USB and installed the Windows driver. I next wanted to develop a simple “Hello world” C project and debug it on this board. I didn’t want to be a Newbie so I researched how to develop programs for this device. So I read. And read. And read more. I read all I could find on the Beaglebone site. I read the TI websites. I read from Linux sites. I read from several individual sites. I found many “This is how I did it” that had many steps and comments on how to set up a development environment. But I could not find concrete, concise steps on how to write and debug a simple program. As far as I could glean from the various sites, this is what I need to do:

  1. Load Putty on my PC.
  2. Establish a SSH terminal session to the board.
  3. Write my program using VIM (a horrible program to drop on a novice, it has a very steep learning curve) or nano (not much better).
  4. Compile and link my program with gcc, after having to learn its command-line interface.
  5. Run my program under the gnu debugger, another command-line tool with a steep learning curve.

It will take days or weeks to learn the tools to develop a 10 minute program. This is how I debugged in the 1980’s. There has got to be a better environment than this. I currently develop under QNX Momentics and TI Code Composer. They are both Eclipse based. Code Composer requires a JTAG module, but QNX uses the GNU Cross Compiler and GNU Debug for program development. Editing and compiling is done on the PC, and for debugging, it copies my executable to the target system and runs it under the debugger using the UI for setting breakpoints, single-stepping viewing registers and variable, etc.

So, now my question. Is there a easy to use, Windows, graphical integrated development environment for developing native Angstrom Linux programs for this board?

It will take days or weeks to learn the tools to develop a 10 minute program. This is how I debugged in the 1980’s. There has got to be a better environment than this.

This is not the fault of the hardware or the designers of the hardware. This is your fault for not knowing the tools. Harsh as it may seem, this is a fact. This is why professional software engineers with the skills to setup / use said tools get paid big money.

I currently develop under QNX Momentics and TI Code Composer. They are both Eclipse based. Code Composer requires a JTAG module, but QNX uses the GNU Cross Compiler and GNU Debug for program development. Editing and compiling is done on the PC, and for debugging, it copies my executable to the target system and runs it under the debugger using the UI for setting breakpoints, single-stepping viewing registers and variable, etc.

This is possible for this hardware as well. All aspects.

So, now my question. Is there a easy to use, Windows, graphical integrated development environment for developing native Angstrom Linux programs for this board?

There are many ways to set this up, and you will most certainly have to set it up yourself. There is no easy to download /install application that will do this for you.

Do also note that on the BBB Angstrom for the most part is depreciated. I would recommend moving to Debian, and various images exist( listed on beagleboard.org ).

murrellr-yWtbtysYrB+LZ21kGMrzwg@public.gmane.org writes:

1. Load Putty on my PC.
2. Establish a SSH terminal session to the board.
3. Write my program using VIM (a horrible program to drop on a
novice, it has a very steep learning curve) or nano (not much
better).
4. Compile and link my program with gcc, after having to learn its
command-line interface.
5. Run my program under the gnu debugger, another command-line tool
with a steep learning curve.

I use Emacs. It's much better than vim. (/me ducks and runs after
trolling a holy war... :stuck_out_tongue: )

So, now my question. Is there a easy to use, Windows, graphical
integrated development environment for developing native Angstrom
Linux programs for this board?

I don't use Eclipse, but those that do AND work on the BeagleBone say
that Derek Molloy has a good tutorial on setting up a GUI IDE:

Hi William;

Look for a couple of Derek Molloy’s videos. He has an excellent one about using Eclipse to cross compile.

If you are familiar with Eclipse, it should be a piece of cake J

Bill

“No one could make a greater mistake than he who did nothing because he could do only a little.”

“All that is necessary for the triumph of evil is that good men do nothing” Edmond Burke (1729 - 1797)

http://www.packtpub.com/building-a-home-security-system-with-beaglebone/book

That blog / Video is meant for the beaglebone white. There will be enough differences with those instructions for the uninitiated to get in way over their head.

e.g. it will lead into another circle of frustration.

Worked ok for me J

Some of the software he installs manually is now included in the Eclipse package manager.

I haven’t tried the remote debugger yet, because I just downloaded it …….

“No one could make a greater mistake than he who did nothing because he could do only a little.”

“All that is necessary for the triumph of evil is that good men do nothing” Edmond Burke (1729 - 1797)

http://www.packtpub.com/building-a-home-security-system-with-beaglebone/book

If you have an editor-of-choice(eg Sublime Text), there’s a handy trick for using it remotely without needing to constantly save->upload your files. This works on Windows using WinSCP:

  1. Open WinSCP and connect to the BBB
  2. Create the empty source file on the BBB(main.c for example)
  3. Right Click on the source file, select “Open”, and the file should open in the editor(if it’s the default program)
  4. Now anytime you save the file, it will automatically upload the saved file to the BBB for you.

My next step is to setup Guard(https://github.com/guard/guard), so that whenever a source file is saved on the BBB in a project directory, it will trigger the gcc compiler automatically.

If you have an editor-of-choice(eg Sublime Text), there’s a handy trick for using it remotely without needing to constantly save->upload your files. This works on Windows using WinSCP:

  1. Open WinSCP and connect to the BBB
  2. Create the empty source file on the BBB(main.c for example)
  3. Right Click on the source file, select “Open”, and the file should open in the editor(if it’s the default program)
  4. Now anytime you save the file, it will automatically upload the saved file to the BBB for you.

That is way to complicated. Just access rootfs via NFS so now you are editing BBB files on your desktop. Now you can use sublime or eclipse projects locally on your desktop. Everything works much quicker.

Regards,
John

John, that’s an even better trick… thanks! I’ll try it out for my next project.

As an alternative to eclipse-based IDEs there is the qt creator. After changing code, with a single command it cross-compiles (gcc-arm), automatically deploys the compiled code on target (though ssh), starts it under the remote gdb server, runs the local gdb client, and I get a full graphical debugger and the remote console on my desktop.

http://en.wikipedia.org/wiki/Qt_Creator

You can also use code::blocks IDE, and setup a custom toolchain. I did this last year with linaro’s WIndows armhf toolchain binary.

This is not the fault of the hardware or the designers of the hardware. This is your fault for not knowing the tools. Harsh as it may seem, this is a fact. This is why professional software engineers with the skills to setup / use said tools get paid big money.

It is very much the responsibility of the hardware vendor to provide an out-of-the-box development environment. Any reputable board supplier will provide multiple OS and stand-alone support tools and documentation. If they don’t, they lose customers. The companies that pay the big monies to their professionals want them to hit the ground running and not waste time spending two weeks trying to get a light to blink.

lol! Sure, we can go back to the days where this board would have cost
$2,500 then you'll get all that.

Regards,

Thanks, Ivan, for giving a plausible solution. My project has to be in ANSI C and not C++. If Qt can accomplish that, I’ll try it.

I’m working with an industrial class board that costs $375 in single quantities. The single-seat QNX development license cost my company $1500, but I was porting code to it in a day.

I'm working with an industrial class board that costs $375 in single
quantities. The single-seat QNX development license cost my company $1500,
but I was porting code to it in a day.

Okay, good for you! You must be a QNX expert, i don't know crap about
that os. But i can bring up debian/linux on a new armhf hardware in
less then a day..

It's all about what you know...

Regards,

Can you put this into an installation package, document it, and get the Beaglebone people to put it on their website?

Or you could create an account, on elinux.org and create it yourself.
You didn't pay us for the hardware, but yet you demand all the
software knowledge from us.

Regards,

Fantastic. Can you bundle this in an installation package targeted for Beaglebone, document it, and put it on the Beaglebone website so all of us can benefit from your expertise?

Already did, "someone" had to create the default debian image. :wink:

http://beagleboard.org/latest-images
http://elinux.org/Beagleboard:BeagleBoneBlack_Debian
http://elinux.org/BeagleBoardDebian
http://elinux.org/BeagleBoardUbuntu
http://eewiki.net/display/linuxonarm/Home

Regards,