Jump to content

`Bare Metal` BeagleBone Development in Linux

Recommended Posts



I am trying to get a toolchain setup in Linux so that I can write code directly for the BeagleBone Black.  The programmer I have available is the Segger J-Link.  I have gone down several routes to set up a toolchain with no success.  The Linux environment is Ubuntu 16.0.4.


I first started to get uVision 5 working under Wine, but it looks like uVision doesn't have a processor support package for the Sitara processors.


Then I got TI's CCS working, but the latest release of CCS doesn't come with support for the J-Link (they promise it will in the very next release).  I followed Segger's directions to add support to CCS studio, but the IDE gave me an error saying that some files were missing in a folder, even though I followed the directions to install those files.


Segger has their own IDE, but this also doesn't have a support package for Sitara.  The Segger tech support response was "The absence of support packages just requires that you provided the corresponding system initialization and memory map for your device", which is not something I've ever done.


Lastly I went and got Eclipse running, but the directions provided require the use of the Flyswatter and I didn't see how to adapt it for the J-Link.


Anyone have a recommendation?

Link to post
Share on other sites

Well. Recently I tried setting up CCS for bare betal BBB programming. TI is currently going through a phase of moving their BBB Starterware package to TI-RTOS ProcessorSDK. Unfortunately I ran into too many issues getting their tool chain to work correctly. I gave up and moved to another processor because this project was time critical. There are no readmes for the projects. Build's break and not documented. The learning curve is a bit steep. It is not ready for prime time yet.


Now your issue is more to do with using JLink with CCS on linux. Firstly, JLink will work on CCS for the TivaC family, at least on windows. JLink for BBB on CCS is not supported, even on windows.

I had to buy an XDS200 to get code pushed into the BBB.

Link to post
Share on other sites

What little information there is on this subject is on the beagleboard.org google group, or the TI e2e forums. The thing is, this processor( the AM335x ) is an applications processor, and is meant to run an OS on it. The on die PRU's would probably offer more real-time( deterministic ) behavior.


Maybe that will be enough for pause of thought ? But that is the truth to the matter.

Link to post
Share on other sites

The author here : https://groups.google.com/forum/#!searchin/beagleboard/jlink/beagleboard/MPRe-_2xC0Y/lDbQoVQe4mAJclaims his JLINK was working with CCS. This was the only post I found that truly mentions a working JLINK.


As for you needing a memory map . . . the processors memory map is located in the am335x TRM Around page 128 if I remember right. Processor initialization on the other hand . . . no idea.




Probably the best route for "system initialization" is perhaps uboot. uboot can be used to bring up the board,, and then pass control to your application. Not just pass control to an OS kernel.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...