Bare metal programming


for an application I’m developing it is required that I remove the linux OS on the processor (please don’t question this part, this is required). I’m trying to find some documentation on programming the sitara AM3358 but I don’t find what I’m looking for.

How do I load my code on the processor when there are no linux drivers to communicate with the processor?

I was thinking about using the serial port, but then my mentor suggested something like JTAG. The problem with JTAG is that I don’t have an emulator and we’re not buying one either.

Just to be clear: no need to debug with JTAG, only to load the necessary files to the AM3358, that makes it execute the code.

For bare-metal programming on TI’s AM335x, you need STARTERWARE-AM335X ( You need a boot loader no matter which ROM-type memory you are going to use (NOR/NAND Flash, MMC/SD, etc.). Please read the documentations came with Starterware.


A question , Do you anyone ever made nand EDO mode work on omap chips ?

I search the linux driver ,seems EDO mode is NOT support ?right ?

In my view, it depends on the NAND chip, not on OMAP/AM335x itself. Is the NAND chip you used supporting the legacy EDO interface?

Thank you,

it says beaglebone does not support NAND. Is this still true for the beagle bone black?

As far as I know, it is. You should put your application on microSD card first without the hassel of adding an additional NAND chip. The bootloader came with Starterware is almost read-to-use and supports MMC/uSD file system. The drivers are already there.You do not need to write you own. You need to get used to how to “flash” your application and boot loader on microSD card.

What I meant “flash” is put a special header (size and RAM address where to move your application from microSD to DDR RAM). There is a Windows-based tool to do that for you. The reason you need a header is boot loader needs that information.

Tyvm for your help,

I only worked with µC before so I’m not used to not having flash memory intern :slight_smile:

Could I make starterware boot from the eMMC on the beagle bone black?

Also, I read that booting starterware has negative consequences for the processor:
“2) Starterware - not really an OS, this may be the ‘closer to the metal’ way of programming (similar to a microcontroller) that you’re looking for, but keep in mind you make a lot of sacrificies by not going with an OS.”

I hope it doesn’t work “slower” by not implementing an OS. I’m even trying to make everything go faster :stuck_out_tongue:

Yes, it is. You can read “Quick Start Guide StarterWare 02.00.XX.XX” for an overview. Beagle Bone boots pretty much the same way as the AM335x Starter Kit. AM335x has it own ROM code (1st-stage boot) that will move the bootloader to internal SRAM first (2nd-stage). Then bootloader will move your application to DDR (3rd-stage),