The first step
Build environment, RTEMS compilation environment needs to use the Newlib library, so Ubuntu comes with GCC is not possible, I am referring to the following blog to compile successfully, before going a lot of detours.
Http://blog.sina.com.cn/s/blog_70dd169101013d4c.htm
Step Two
Compile rtems, I use the 4.10.2, and the reference blog use is 4.11 (blog Some places are not clear to see the following blog), the difference should be some, but can be successful burn write.
Fishonfly's http://blog.csdn.net/wuhzossibility/article/details/9262055
Bloggers have the following content, I am not very clear, and then I added the Start.s inside the BSS code:
***********************************************************************
7.0. Modify the first phase of hardware initialization, the extreme assembly dependent
In Start.s, complete the work:
1 Disable all unshielded interrupts;
2 Filling the uninitialized data segment with ~0~ ~.BSS;
3 Initialization of the ~c~ program call stack;
4 Copy the initialization data from ~rom~ to ~ram~;
5 Call the ~boot_card~ function.
7.0.6. See annex for details
***********************************************************************
Here is the code I added in Start.s, referring to the Cedar blog http://blog.csdn.net/coolbacon/article/details/6092927:
/* Zero the BSS * /LDR R1, =_bss_end_ ldr r0, =_bss_start_ _bss_init: mov r2, #0 CMP r0, R1 strlot R2, [r0], #4 blo _bss_init/ * Loop while R0 < R1 * *
After the modification is completed is the compilation work, please refer to cedar this blog's bottom section http://blog.csdn.net/coolbacon/article/details/6101754 or Fishonfly's HTTP/s Blog.csdn.net/wuhzossibility/article/details/9262055#reply, the main difference is some configuration of the Configure, The latter compilation generates an example of Ticker.exe, which is hello.exe and then converts the exe file to a bin file by command.
Step Three
Burn Write
The author first used the bin file provided by tekkamanninja (searched on the Internet), but it seems that its burning position is obviously wrong (0x30008000).
Specifically, please see the two articles, the two Daniel on the burning of the location of the study, want to know the truth on the look at it:
The http://blog.csdn.net/coolbacon/article/details/6262776 of Cedar
A leaf http://blog.csdn.net/rickleaf/article/details/6260292 in the autumn of knowing
The author finally decided to refer to the method of autumn one leaf, the file burning to write to 0x30000100 (the author is lazy, do not want to change like cedar).
Burn Write method has a lot, but Tekkamanninja provide uboot.bin seems to burn write position conflict, the author every time burning write to 0x30000100 will burn not to go in, burn to 0x30008000 can burn in but go 0x30008000 no response. So the author cruel use of bare metal burning write, fortunately recently newly bought friendly arm mini2440 has superboot this artifact, operation is very easy (see its manual, use is minitools this tool). Choose logic program, burn write location is 0x30000100, burn write success! haha ~
The author is a big rookie, a little complacent, but there are a lot of problems still do not understand, the next will try to use Uboot to load, if found will continue to update the said!
Rtems transplant on mini2440 (Ubuntu)