Development environment?

JKS, could you describe your development environment? I'm curious what's the best approach to working with the code base, github, and cross-platform debugging with the BeagleBone Black?

Lately I have been using CDT under Eclipse for all my C/C++ cross-platform work. Have you or anyone gone down this path?


-Freeman, N5FPP

Comments

  • Well, I'm the wrong person to be asking about development environments. I'm permanently stuck in 1984. On a decaying six-year-old MacBook Pro I use a text editor (BBEdit), shell commands in a Terminal window, C-language printfs and the school of hard knocks to do all of my development. I tried Eclipse once. For about 10 minutes. Couldn't deal with the culture shock.

    The Makefile allows direct compilation on the Mac, or any other development machine, with compiler optimization turned off to get fast compiles to get the syntax errors out. Then you just rdist the code (or use a shared disk) to the Beagle when you're ready to test. Compiles take longer on the Beagle of course but it's not too bad.

    Gdb works fine on the Beagle and I've also run valgrind to find memory problems, although there are some issues in doing that. The code has some built-in debugging facilities, like a way of capturing printf output into a big circular memory buffer and only printing it on a crash. Very handy for finding timing-related issues where doing an actual printf would interfere.

    Of course I'm forced to use Xilinx Vivado to work with the Verilog for the Artix 7 FPGA. Since it doesn't run on OSX I run Debian inside the VirtualBox PC VM under OSX and a virtual disk to push files back and forth. It's actually not too terrible. A full configuration (4 rx channels, 12 GPS channels) takes maybe 20 minutes to build. Turns the MacBook into a space heater though. You can easily configure the Verilog for fewer channels and get quicker builds for testing.

    One advantage to this simple-minded way of doing things is that it's fairly portable and doesn't have a lot of dependencies. A lot of package source components are included directly in the source (e.g. mongoose web server). The Makefile automatically does an apt-get of FFTW on the Beagle.

Sign In or Register to comment.