I want to develop a non os application on Beaglebone black. Here are my requirements:
- I dont want U-boot.
- I have the application which can start up and configure the UART.
Now the question I have is how to I flash it on the beaglebone black. From what address beaglebone black starts its execution is it 2000h as mentioned in the AM335x datasheet. If yes then how can I flash my application at 2000h address?
Well use u-boot... You'll have it working by the end of the day..
PS, if this is a project for college, we don't do your hwk problems for you..
Good to know that you are not here to do my homework. I just want to know how I can flash a u-boot like binary in place of u-boot to make it work as I want.
I hope you read my post before posting that I dont want to use U-boot. I know there a many posts around for how to flash U-boot on beaglebone black. But can you run an app without having any software on the board.
Anyway thanks for your deep and content advice. It was really helpful.
Your just forgetting one very big detail. The bootrom just doesn't
boot into u-boot. It searches for and loads a very specific binary
with specific header information. This binary initializes the ddr
memory along with enough features to load the "u-boot.img"
So what seemed like a 'simple' load *.bin to memory and enable usart,
also needs to implement ^...
This is the direction I was looking for. I think I need to do more digging in how U-boot gets executed after flashing on the board and program my app on the same lines.
But the purpose of my question was, how just by reading the datasheet and other resources I come to know where to put which binary to make it work.
For this board I have a u-boot working from which I can reverse engineer things. But what if u-boot was not available, then from where I would have started?
Did you bother to open or glance at the AM335x TRM? There's an entire
chapter on system initialization, covering the *MANY* ways you can
boot the AM335x CPUs.
What questions do you have that aren't covered in the manual?
If you don't have (or can't find) the manual, start at the beginning:
the product page for the AM3359 on the TI website. There's a tab
labeled "Technical documents".
I did read the TRM. Chapter 26 named Initialization. It does have quite a good info which tells how system starts up how many time of booting is there. I thought this forum is to help people rather enhancing the sarcasm skills. I know about the different kind of booting, memory addresses of all exception vectors in RAM and ROM.
My only question is what address I should place my application’s entry point so that at startup my application gets executed.
Thanks for your help anyway Charles.
Section 22.214.171.124 covers the Public RAM memory map.
Section 126.96.36.199 describes the image format header, where you provide
the destination address you would like your startup code to be shadowed.
That’s exactly what I was looking for. Thanks for pointing me in that direction. Now I think I can go ahead with the things. I appreciate yours and Robert’s replies to direct me in right place.
btw, (i always forget about this).. Take a look at TI's StartWare too,
lots of none-os examples, although i believe they use u-boot as the